Journey Of Code - Logic Gates

Logic gates are made up of transistors. Transistors are used along with other electronic devices and are setup on a silicon wafer. They are called the Integrated Circuits or the ICs. Transistors setup in a specific way, results in what are called logic gates.

The logic gates, as the name tells, performs logical operations like NOT, AND, OR and few others. Logic gates form the basic units that would give chip level units - logic units, arithmetic units, memory units.

Technology StackThe different Logic gates are listed below. There are a few more than the list given.

  • NOT
  • AND
  • OR
  • XOR
  • NAND
  • NOR

The inputs to these gates are electronic signals. They are either high or low. The high state is said to be ‘1′ and the low state is said to be ‘0′. You may notice that we are slipping into the world of binary information as opposed to the analog information present in electronic signal. This is a layer of abstration, that will be repeated many times in the next technology layers.

NOT

NOT Truth Table

The NOT gate is one of the basic gates. It has one input and one output. Its fuction is to invert the input. If it is a ‘1′, its output is ‘0′. If the input is ‘0′, then the ouptut is ‘1′.

The rest of the logical gates take more than one inputs. Let us, for sake of illustration, see the input to output mapping for gates with two inputs.
Read the rest of this entry »

Creating Websites - Roundup

The past series had been on creating websites.  Let me just summarize them and have the links in one place to each of them.

  • Creating Websites - Options - When you intend to create websites, you need to be aware of your options.  To help you choose one of the options, you need to plan out the purpose and various cavets about it.
  • Creating Websites - Personal Online Presence - If you want to just create a personal websites, you have several free choices (in terms of budget) available for you.  There are webpage hosters, blog hosters and forum hosters.  The choice again would be based on the purpose of your personal website.
  • Creating Websites - Paid Web Host Service - If you need to create a business website, then you would usually need to go for a paid hosting service. The choice of the service provider would be based on reliability, cost, and technology requried.
  • Creating Websites - Ways To Build Webpages - Once you are settled with your options, the choice of how you build the webpages is narrowed down.  Webpage hosting service providers usually provide you with option to build pages out of templates.  If you are hosting it yourselves, then you have several options like simple HTML pages, blogging engines, forum softwares and general CMS.

Journey Of Code - Transistors - Work Horses Of Gates

When we try to recursively understand the working of each piece of code, we come to a point where the software gradually moves to the world of hardware.  The transistors form the notable, if not the only important unit of this hardware world - the realm of electronics.

Technology StackLet us abstain from dwelling into the history of transistors.  It had a journey of its own from vacuum tubes to the solid-state devices or the semiconductors.  And more over, this realm of electronics is the home for number of equations that try and model the behavior. They are a headache we can avoid when we try to understand how the transistors do their part the workings of a software system.

The structure of transistors is composed of three parts - Emitter, Base and Collector.  Again, we will steer clear of the actual physical structure or the mathematical models.  To understand the origins of these names would require us to go into the history and look at how the vacuum tubes performed.

In a nut shell, we will look at how the transistor is used as a switch, which would then be used to perform logic operations (NOT, AND, OR, XOR).

In the most common setup of a transistor in an electronic circuit, signal is applied between Base and Emitter, an output is tapped out of Emitter and Collector.  The behavior of the transistor can be understood by plotting a graph of this output against a given input. Read the rest of this entry »

Journey Of Code

We tend to take the complexity and amount of tasks the computers, and in specific the programs or applications do for granted.  We are blissfully unaware of the several layers of abstraction, Of course, that is what abstractions are supposed to do, so that we can ponder over complex issues like OOP or AOP.

It is though, alway good to know, a little bit more on how deep the journey can take us.  In the following few days, we will look at each of these levels that let us bother with complex tasks.  It will not be a journey back into time.  It will not be about the punch card machines and how computers evolved to what they are today.  Let us look at it from a different prespective - over the technology line and see how deep we can go.

Technology StackIn terms of the technology stack, it can be generalized as follows:

  • Application Level
  • Machine Language Level
  • Processor Level
  • Chip Level Logic
  • Gate Level
  • Transistor Level

Going down the technology stack, takes us on a journey through the application of abstration at various levels.  Again, I would state that this technology stack, is pretty generalized and the possible paths is more of a web that an point to point flow.

The Application Level is everything that sits above the machine it controls.  It includes the operating systems, the drivers, the applications, that control the flow of data from one point to another in the machine.  When you see a webpage in your browser, it is the data that is sent over the network, manipulated and copied over to the video memory of the monitor.

The Machine Language Level is a kind of the mutant between the physical world and the ’soft’ world.  It represents the higher level code in the most basic form - the binary, which has direct control over what the processor must be doing with all its bits and parts.
Read the rest of this entry »

Degenration Of Writing Skills

Chat Box Mock Up - Language DegenerationI am not sure what are the factors - chat, email, forums, text messages, or just the fact that people do not have time. There does not seem to be an effort to write properly, leave alone beautifully. There seems to be not much of an effort put into spelling and grammar.

As I write this, I know I feel more like my father than myself. But even then, when I grumbled and went on to correct my mistakes he found in something I wrote, I used to learn. I am sure, many of us would have done the same. There was a genuine effort put into learning the correct way of using the language, and learning new words.

Few would also have dictionaries next to them when they were reading some book they got from the library. Language, and the way we communicate, was something that was given the same importance as the ideas we wanted to communicate.

Going through the forums, the mailing lists, and even the forwards that I get in the mail box, are filled with language which has been abused to the extent that when you use correct language, it is seen archaic. It is seen as something that came out of a time machine.

The effect of all this is a general language degeneration, and also degeneration of writing skills.

It would all seem like there is no hope, but a recent fad seems to have contributing to turning the tide around. We may not be able to point to any particular product of Internet to blame for the degeneration of the writing skills, but I feel we can blame another product of Internet for contributing to improve the writing skills of the people. That would be blogs.

Blogs, in its struggle to take the online role of journalism, has attempted to emulate the writing skills of the journalists. We all have to agree, that no matter how obnoxious they might turn out to be, they have good skills in terms of writing, either by practice or by education.  We were all told to read the newspapers (not the tabloids) to improve our language skills. Blogs, in their struggle to be recognized have driven the bloggers to write better.

It all is now left on time, to see how these bloggers effect the rest of the Internet savvy crowd towards improving writing skills.

Creating Websites - Ways To Build Webpages

As part of the ‘Creating Websites’ series, we have looked at the different reasons one would want to start a website, the different options one would have depending on these reasons in terms of budget (time and money). Assuming, you have these figured out by now, let us look at the different technological options you have in building or creating the actual webpages.

Before we go into that, let me briefly explain what these webpages are. If you notice, all web address start with a ‘http’. For example, the URL for this blog is:

http://www.wisetome.com/splat

The http, if you do not already know, stands for ‘Hyper Text Transfer Protocol‘. It is a protocol to transfer hyperlinked text. When one types an address into the address bar of their browser, a request is made to the server, with the help of domain names, and the server returns with a HTML document. HTML stands for Hyper Text Markup Language. So, it is that simple. To have a website, you just need to place the HTML documents in a place from where the server can pick it up and send it to who ever is requesting it.

You can do this in several ways.

  • Static Pages
    • Hand Coded
    • WYSIWYG Editors
  • Dynamic Pages

Let me explain a few of them briefly. Read the rest of this entry »