Now of days writing code isn't just about making money. Sometimes, we as programmers get so taken away with the day to day functions of writing code that we forget what it is we are really doing. How many programmers do you know think about the actual bits that are going through their processor a billions of cycles per second.
Well lets figure this out then by using a little common sense. Your computer monitor, 120Hz or 120 Hertz or 120 Frames Per Second. Let's say that your screen resolution is 1920 x 1080 pixels. What does this mean? It means that your computer screen 1080 rows of 1920 pixels. Which means that you have an array of 2,073,600 pixels each pixel is continuous from 1 - 2,073,600. You would just take the width of 1920 and everytime you reach a multiple of 1920 the pixel would display on a new line. This way each pixel comes through as one continous value. So to get your display to show up you need to store 8 bits of data for each pixel for the RGB value #00 00 00 - #FF FF FF. So that means we are really storing 16,588,800 bits of data to display the information.
Who cares one might add the computer is fast enough. Well when you think of this as 16 and a half million individual pieces of data. That actually needs to be processed 120 times per second, this actually becomes quite substantial. It just looks easy because it works and has been mass produced. The picture displays correctly each time. So lets count this out we need to process 1,990,656,000 bits per second to display all of the pixels on your monitor. So this means that to create the mathematics in order to do image processing, we need to go from one pixel to the next using faster and faster mathematics to process how you are going from one pixel to the next. Than you must program in various ways that pixels can change from one pixel to the next, or how a grid of pixels in one image is transformed into a single pixel in another image. In one image you might have to scale it down so that every box of 5 pixels in one grid is translated into a single pixel in another image.
So if we want to look for common shapes in a live pixel feed. Really all your are doing is looking for a significant change in the pixel value over a consistent range of pixels. So you could create a function that says, go to each pixel. look at all of the pixels that touch it, if there is a change between the pixel and the pixel next to it, turn and look at the next pixel around it clockwise, and see if that is the same color, if it is keep going if not turn again. Than you store a map of all of the pixels that are located along boundaries. Than you have a data set of all of the pixels that are located along boundries. That you can look at all of your boundry information, than find other patterns independent of it.
So it does take a significant amount of data processing to process all of the data for the pixels on the screen. So think of 2 billion little tiny electrons that your computer needs to keep track of every second, just to display the data on the screen.
Who needs to worry about pixels when we have software like photo shop that allows us to edit the pixels with tools that look like paint brushes. However, the reality is that there is a mathematical equation underneath it that is making that manipulation to the pixels possible. However, it is relatively easy to create your own image manipulation software by writing the code by hand. Photoshop and those type of image manipulation software that are available to the general public are powerful tools. However, there is no more of a powerful tool than a programmer who can do direct mathematical conversions to images creating custom image filters. When you write code you can perform any mathematical image manipulation that you like to any pixel. You can create a custom anything filter. You can perform a custom pixel conversions which means you can basically write the code behind any pixel manipulation component that you want.
So some of these experimental prototypes get you right down to the "Working With What The Computer Actual Is" a lot of people have a lot of theories about how the computer works. From some of the programming language communities that they learn to program from. Like PHP programmers like myself, its a big community but its not. Than Python community, its a small community, only its not. However, sometimes you have to get down there and take out your mircoscope and look at the actual bits of information going through your computer and figure out a way to make sure that billion of bits per second are correct.
In case you don't have time to do that math. I've already done the math for you have put it into an email and sent it off to you. So in order for a human being to be able to verify that every bit going through their computer is correct. They would need to be able to count 2 billion electrons per second. So there is no possible way to do that. When an error occurs it needs to be substantial enough that it effects a substantial amount of output. Enough so that you are able to detect that an error is occurring. Some errors are so small that they are undetectable until they are massive. Other errors quickly trigger massive cascading that produces large numbers of turncations immediately. The point is, is that all you can do is sample the data. As long as the data that we sample is correct, there isn't much to be done to detect a problem. Maybe just need a new detector who knows.
Counting the pixels in your screen and learning how to move through a pixelated space is a great thing to become familiar with. Because essentially all of reality can also be describe with pixels they can go infinitely deeper and deeper and be used to construct realities. You also have to know how pixels work to make screens and work with a lot of different micro devices and machine level image processing devices. As an embedded developer sometimes I find it useful to create articles like this to help graphics designers to understand more about how different image manipulation tools work and how to get them working in a real time shared enviornment.
Experimental prototyping is a different type of investment. Someone needs to know how to make a computer screen. Someone needs to know how to put together a computer. Programming the computer and having users who know how to operate computer systems. Is a part of the computer infrastructure. However the idea to bring powerful internet connected devices into the hands of everyone on earth keeps the people on earth more protected than what developers get credit for. Everyone I guess has a job and the power of the free people. Some choose not to use it. Some people make great friends with 100,000 on the internet. Some people make enemies with 100,000 on the internet. It's a double edged sword. For every 1,000 friends you make 10 enemies. That's if your lucky. So there comes a time where you have to become familiar with numbers up in the billions. Counting 2 billion bits is one of those occasions. We hope one one day in stead of counting billions of bits we can figure out a way to turn the bits into dollars. Want to know something funny. I already developed a method for counting money and the bits are the actual money. It's actually a very accurate system and there is no room for error. The bits are either in the users account or the bits are not in the users account. The bits represent the actual money. This is different than bit coin. Which is built on another level. This system has a decentralized locations of bit mines. Well maybe I can explain the bit mine system to the first person who calls with some cash to invest. Prototyping means you have to build devices that are worth money before you build them. You have to sell the idea to enough people who want to buy it before you build it. You can't just get the money to build it and they will come.
You'd be shocked at the amount of code that I have saved up from over the years. I wonder how many lawsuits it would generate if I made a mashup of all of the code on my web servers. Than collectively sold the code and made millions of dollars. You would probably make millions and millions. However, most big big companies are run by lawyers and all of their deal making is conducted attorney to attorney. I know for me I just represent myself and my goal is to just create something that will help millions of people. You know what if you could create the next miracle pill that saves the lives of millions of people. Maybe the next safety device that it so fast that it can deflect a bullet in thin air. Hell maybe we can create a new universe inside the computer. I know one things for certain it doesn't hurt to give it a try and create new technologies that can change the world.
However, you would be suprised at what great lengths that people will go through to supress the release of technology as well. Technology brings to light errors that wouldn't otherwise be in the light. So when we create new and better technology criminals and people like that become worried because your inventions might also be used to identify information that people were trying to hide. For instance, to bring on a new web developer to work on a computer system that someone has stolen millions of dollars through. Those, types of people see the computer guy coming and go running for the hills. However, the computer can read data now of days from places that you would have never through possible. Take a look at the medical field and the technology that they use to save lives. The reality is that medical technology is not as advanced as we would like to think it is. Especially, with the technology that is available today. We should have access to all of the technology that is available. Does open access mean that everyone and their brother should have the ability to go a State funded labratory and have use of an electron microscope? Or should we only allow people access to such tools who are friends with someone who has one that they can use? I find that working in science can sometimes generate responses that are quite invigorating. Discovering a transistor and a music festival are 2 completely different types of events. Yet its clear how much technology plays a roll in converting everything into pixels that can be transmitted through electrical signals. Sometimes, when I get down there and use my data analyzer to look at packets of information, I am just amazed by how something so big and huge is really something that if very small and tiny. I mean so tiny I need to figure out where I am going to get an electron microscope just to be able to say that I've actually seen it rather than in theory.