Sunday, March 20, 2011

Go Ahead, Reinvent The Wheel

A friend of mine is always telling me that I'm someone who loves to "reinvent the wheel." The other day I was browsing through the almost 900 page spec of the Intel processor instruction set. My mind started racing. How cool would it be to hook up an Intel processor to a microcontroller and have it execute some instructions? I'm not planning on trying that FYI but the thought was there. Then I started reading more about processors and the North and South bridges on a motherboard and how to write a bootloader and starter OS for a PC. My friend would say "Why on Earth would you write a PC bootloader or OS? Here you go reinventing the wheel."

Why "Reinvent the Wheel"

So why do I "reinvent the wheel" sometimes? One word, education. I know I'm not going to create the next Linux or Windows or the next great whatever it is I'm reinventing. That's not the point. The point is to learn something new. The thing I love the most about my educational background is that I can explain, with fairly decent detail, how a computer works down to the physics of the billions of transistors. It's not magic fairies to me like it is for a large percentage of people. But this isn't just limited to computers. Whenever you dig into the "guts" of how something works I guarantee you will learn something new. It can give you ideas for projects you are working on. It will give you a deeper understanding of the technology.

Black Box? More Like a Coffin

The people who rely on the black box encapsulation are fine until that black box fails on them. Then what? They turn to the person that knows what's going on inside that black box. Be that person. That desire for learning, that insatiable need to know how things tick; you can't outsource that. So to all you wheel reinventers out there I say "Go ahead, reinvent that wheel and all the other wheels you can find."

Thanks for the Votes

Finally, I'd like to thank all those who voted for my FMBomb Codeproject article. I won first place in the Beginner's Hardware Competition. Thanks for the support.

1 comment:

  1. Back when PCs first came out, there were no real graphics-capable machines, but you could program the CRT controller via the controller port addresses using assembly. CRTs had black and white (or green, or orange) pixel states that were either on or off. IBM put out data sheets for all the chips in the original PC and those companies that provided clones followed IBM's example. This was my first real experience with hardware programming using the Intel assembly instruction set.
    Then Things got more complicated, graphics controllers developed their own command set and high level compilers made things easier, but put up barriers making it difficult to directly access the chips.

    So your Code Project "FMBomb - A Beginner's Approach to Hardware Programming" was a delight.


Keep it clean and civil. That's all I ask.