Posts tagged: commentary

The Hacker Mentality

authorKeithius | April 28, 2007

I’ve got a little story to share, about computers and hackers, and some stuff that eventually relates back to who I am and how I see the world - as well as, I’m sure, how a bunch of other people out there see the world. If you’re not one of these people (as you probably aren’t, since there are very few of these people, comparatively) then perhaps this will give you some insight or at least amuse you for a while, and maybe even enlighten you a little bit.

One of the last courses I took in college was an electronics class where we built a computer. Now, to some people, “building” a computer means buying a few parts (maybe from a store, but more recently probably from some on-line retailer or something) and putting them together.

That’s not how we built the computer.

Our computer was a very simple 4-bit computer - not even the 8 bits of the first IBM-compatible computers that people love to remember. We built it entirely from scratch, on a “breadboard,” where you could plug in wires and resistors and so forth. The only thing we didn’t build entirely from scratch was the arithmetic chip itself (the “cpu” if you will) and the 8-bar LED display (like the one you see in digital clocks that lets you display a single number). Everything else was built by us.

We had to design the bus that would transfer bits (really just pulses of electricity) around between components, the interface to the LED display, the interface between a once-writable flash ROM chip (the “bios” for our simple computer), and the timing circuit that would keep it all working.

A timing circuit was necessary because computers don’t think like we do - in streams of thought that just “flow.” Computers think in discrete steps, one thing at a time, much like, say, a mechanical clock. A mechanical clock doesn’t “know” that it is any one given time (say, 1:01 pm) - it only “knows” that gear #1 has tooth number 42 meshed with cog #4 at position 3 or something equally obscure like that. The position of those gears and cogs is all the clock “knows” (if it can be said to “know” anything). The fact that we recognize those positions as a time is strictly because we built the system to work that way - the position of the gears and cogs has meaning to us because we designed it to be so - we abstracted the concept of “time” as the relationship of seconds, minutes, and hours, into a set of physical objects - the gears - in such a way that they would represent “time” as we understand it. To the clock, none of that matters. It just moves the gears in the way it was designed, over and over again. If the gears were designed improperly, the time would be wrong, but the clock doesn’t care (again, if a clock can even be said to “care” about anything - we just use emotions as a metaphor for machines because that’s how we work, and how our language works) - it just continues to move the gears and cogs in the way that it was made.

A computer works the same way. The electronic “clock” is really just a pulse of electricity that is regular - it pulses in a set pattern, say once every 1/10 of a second (our example was a very slow computer). And on every pulse of that clock, electricity would pulse down wires and through resistors and transistors and diodes and so forth, in a very precise and controlled manner. And those pulses would have effects on certain things - a pulse through a certain diode would have the mechanical, electrical effect of changing the path for electricity to flow through the system. This change would be take effect during the next pulse, when electricity would move in a slightly different way, and so on, again and again - just like the gears and cogs in a mechanical clock.

However, since electrical components are very small, we were effectively creating a very, very complex mechanical clock, with lots of gears and cogs inter-meshing in different ways. Some of these different ways we (as humans) interpreted as ones and zeros - the “binary” language on which all computers are built. (We use binary in computers because it’s easy; computers work with electricity, and it’s easy to design electrical components to work one way or another, which is to say, on or off, and that is, effectively, binary. Designing components to work 3 or more ways is really, really hard, and often imprecise, which is why we don’t do it.)

So, building on this foundation of electrical pulses, controlled by a clock signal (really just a regular, timed pulse of electricity), we built up the idea of binary code - ones and zeros. We had an adding chip that would interpret these pulses, 4 at a time, into representations of numbers. It would then - according to a fairly simple design internally, but more complex than we could build in our lab - produce an output of signals that were different from the input it received. This output was interpreted by us as numbers that had been added together (again, because we -that is to say, humans - built it that way, again, just like our mechanical clock).

Once we had a circuit that could, metaphorically, add numbers together, we had the basic requirements for a computer. We looped circuits back onto one another, so that the output of some numbers added together would influence the next “operation,” and through some complex manipulation (mostly just building electrical paths in such a way that they followed the rules of logic as set out by us), we had a computer.

We programmed another chip - called a PROM, for “programmable read only memory,” with some numbers that we had put together on paper. These numbers were (according to a code designed by humans) representations of “instructions,” abstract concepts that we used to simplify working with the computer. We wrote the instructions to do something, translated the instructions into their numerical equivalents (you’ll understand now why the first computers were built by governments to make and break codes), and then used electricity to “burn” those numbers into the PROM, so that when we were done, and electricity was applied to the PROM, our numbers would come out the other end (again, as just pulses of electricity). These would be interpreted by our adding unit, which would “execute” our instructions (computing is just full of abstractions like this - abstractions and metaphors build on top of one another) and send out signals representing the “results” of our “instructions” which would be interpreted by another circuit, which would send the appropriate signals to our single LED block. If we had done our work right, the LED block would light up in a certain pattern which we would interpret as numbers or (if we had a better LED), letters.

This was really monumental, although you might not think so. The thing we built was butt-ugly, with wires popping out all over the place. It could only display one digit at a time on the LED, and to program it, you had to go through all those steps and make the PROM - which, once made, could never be changed. If you made a mistake, you had to throw out the PROM and make a new one. Compared to the computer on which I’m writing this (or to the one you are using to read this), our computer was about as sophisticated as smoke signals are to a Ferrari. (A bad analogy, I know, but somehow appropriate, when you think about it.)

What was important here was not the practical applications of this exercise - we certainly weren’t going to go out and work for Intel and design their next big chip or anything. Modern computers are so phenomenally more complex that it’s not even worth making an analogy. Just trust me on this one - they are way more complex. But the important thing is that they still operate in the same basic way, using the same basic rules. By building this 4-bit monstrosity, we now had a deep, fundamental understanding of how a “real” computer worked, on a very low level. It’s like a car, really (how I love car analogies) - anyone can learn to drive it, but a good driver, a really good driver, knows a bit about everything in the car. He may not be able to build one on his own, but he knows (generally) how the engine works, how the steering is designed, how the wheels interact with the road, and so on. By knowing these things, he can use the car more effectively. Likewise, by knowing these things about how a computer worked, we (as computer science students, mostly destined to be computer programmers in life, as I am) could use computers more effectively. It was no longer just a black box that did things - it was “real” to us. We understood it. There was meaning, logic, and sense there. I may not need to know (in fact, I don’t need to know) how my CPU works to write a program in VB or PHP or some other high-level language - but by knowing, generally, how it works, I can program it more effectively.

This is where the essence of a hacker comes into play.

An average person might be satisfied to know, very basically, how a computer works - maybe they know that there’s a CPU and it’s the “brain” of the computer, but that’s about it. They then quite happily use their computer to write documents, manage photos, listen to music, and do other stuff. But to a hacker, that’s not enough. A hacker wants to know how it works - and not just in some general, vague sense. A regular person might be bored with that class that I took - they might think, “yeah, this is all fine and dandy, but I’ll never use this, so why do I need to do it?” A hacker, on the other hand, would be excited by that class, he’d think “yes, now I’ll finally understand how an APU works and its relationship to the rest of the CPU architecture, as well as why assembly language works!”

Now, let me get to the point I wanted to make since the beginning of this story.

I am a hacker. I loved that class that I took back in college. I always want to know how things work. I may be a computer programmer, but I know more about how various things in my world work than most people because I have a hacker mentality. I know a bunch of stuff about how bodies work, about how oxygen is transported in blood by the binding of molecules, I know how many chemical steps are needed for blood to clot, I know how the inner workings of my car’s engine work, and how the feedback loops created therein create a working, modern engine, that has power in a certain RPM range. I know how this article I’m typing right now will get transmitted through a vast network of computers to your screen. I know all sorts of things about how systems work - governments, engines, plumbing, biology - all these things. I’ll never use many of them, but I had to know - because I’m a hacker. This mentality permeates every aspect of my life, and affects how I interact with the world around me. It’s not enough for me to know at the checkout that I owe $16.26; I want to know why and how. The scanner that scans my merchandise, the systems that track prices and inventory for the store, the anti-theft security tags on expensive merchandise that beep annoyingly at you if a cashier forgets to take them off what you bought. It’s not just the background of life to me - it’s part of the world, an amazing and complex place that I simply must understand, even if its only a little bit in some places.

In my opinion, that sort of inquisitiveness, that sort of curiosity about the world, is what leads to a well-rounded individual. Not just taking a few classes about psychology and world history to fill a requirement, but actually wanting to know something about subjects that are new to me, even if they are completely unrelated to computers.

That’s what makes a hacker - whether they hack computers, sound equipment, music, sculpture, cars, wood, or whatever. They’re the people that want to know - not just automatons following instructions, but curious, intelligent people with a desire to know things so that they can understand them and use them more effectively. In my opinion, they’re the best people in the world - and there are far too few of them, if you ask me.

But maybe now that you’ve read this, there will be one more.

Peace out, yo.

I Hate Daylight Saving Time

authorKeithius | March 11, 2007

Spring has always been my least favorite season, and Daylight Saving Time (DST) has been one of the reasons I hate it - I hate loosing an hour of sleep!

Although it’s not technically spring yet, thanks to the arrogance of the US Congress, DST came early this year (as you’re probably already aware).

This has been a HUGE pain in my ass.

I maintain a lot of systems, both professionally and for other people (I’m a computer guy, people come to me for help, what can I say). This DST change is going to cost companies more than we are ever going to “save” from switching early - I can assure you of that. It’s already driving me into an early grave!

Updating systems, updating servers… all of it is a huge, massive, fucking pain. Just search Google for stories of people trying to update calendar systems, cell phones, blackberries, palm pilots, and so forth. They ALL need to be updated to reflect the new time zone data.

I can tell you one thing - this week, a lot of people are going to miss appointments, be late, and so on. All because Congress felt the need to fuck around with time itself.

Thanks a lot, guys.

Why I Won’t Upgrade to Vista

authorKeithius | February 12, 2007

Three letters: DRM.

I’ve seen it in action. Vista spends more processor cycles doing shit-all than any other Windows version yet produced. After spending my hard-earned dollars on an expensive, fancy, dual-core processor, I don’t want those processor cycles wasted on checking whether I have the right to play a particular MP3 file (or video, or whatever).

I happen to like the way my computer runs now - we’ve got an older, (fairly) stable OS running on hardware that’s evolved way beyond it - which is GOOD! When the hardware outpaces the software, things run FAST. When the software outpaces the hardware, things run S…L…O…W…

Check out this article, and be sure to follow the links it includes. Here’s a snippet that really gets my blood boiling:

Here’s another blatant lie:

Will Windows Vista content protection features increase CPU resource consumption?

Yes. However, the use of additional CPU cycles is inevitable, as the PC provides consumers with additional functionality. Windows Vista’s content protection features were developed to carefully balance the need to provide robust protection from commercial content while still enabling great new experiences such as HD-DVD or Blu-Ray playback.

For those of you running Windows Vista, start Windows Media Player and play a random MP3 audio file. Go into Task Manager and look for a process called “mfpmp.exe” with description “Media Foundation Protected Pipeline EXE.” Notice how much CPU it uses. On my machine it fluctuates between 10% and 20% CPU time. Other users are seeing even larger consumption of CPU resources, just check out this comment.

And now the question for Microsoft: Why exactly is mfpmp.exe needed to play an MP3 file, when you say the content protection technology is there for HD-DVD and Blu-Ray?? What additional functionality am I getting, exactly, from mfpmp.exe when I play an MP3 file? As it is now, the content protection technology just uses more resources while providing no benefits at all to the user, just like Peter Guttman wrote in his paper and we’ve all argued before. No wonder there are sometimes gaps in the audio on my PC, which by the way ran much faster on Windows XP. I thought Vista was about more robust video and audio playback?? Even high end systems have these issues. I find myself using VLC to play video files more often now because Media Player feels so slow and bloated. Even when playing MP3 files, VLC uses much less CPU resources compared to mfpmp.exe and wmplayer.exe combined!

Indeed!

Lessons from 1984

authorKeithius | January 30, 2007

We all know about George Orwell’s 1984, right? Well, I was re-reading it the other day (for perhaps the 100th time), and thought I’d post some relevant bits from the “Afterward” section, written by Erich Fromm. It’s relevant because it talks about the idea of constant war or aggression against an enemy that you can’t destroy (can we say “terrorism?”). Although he mentions atomic weapons and an arms race, the same idea can be applied to today’s world. (Emphasis is mine.)

Orwell’s picture is so pertinent because it offers a telling argument against the popular idea that we can save freedom and democracy by continuing the arms race and finding a “stable” deterrent. This soothing picture ignores the fact that with increasing technical “progress” … the whole society will be forced to live underground, … that the military will become dominant (in fact, if not in law), that fright and hatred of a possible aggressor will destroy the basic attitudes of a democratic, humanistic society.

Another section touches on “doublethink,” something that we tend to think doesn’t exist in the mainstream, but in fact - it does.

If I work for a big corporation which claims that its product is better than that of all competitors, the question whether this claim is justified or not in terms of ascertainable reality becomes irrelevant. What matters is that as long as I serve this particular corporation, this claim becomes “my” truth, and I decline to examine whether it is an objectively valid truth. In fact, if I change my job and move over to the corporation which was until now “my” competitor, I shall accept the new truth, that its product is the best, and subjectively speaking, this new truth will be as true as the old one. It is one of the most characteristic and destructive developments of our own society that man, becoming more and more of an instrument, transforms reality more and more into something relative to his own interest and functions. Truth is proven by the consensus of millions; to the slogan “how can millions be wrong” is added “and how can a minority of one be right.”

In case it isn’t clear to you how this applies to today’s society, I have only to point to the rhetoric of our own political parties for proof. They (meaning the people who represent the party and its ideas/beliefs/platform/etc.) exhibit this exact form of “doublethink,” or accepting “truth” without objective facts. Just think of the people who think that global warming isn’t real, or (to use a slightly less pleasant example) the people who claim the holocaust never happened, and you will see modern “doublethink” in action. It is a frightening trend to someone who thinks rationally and objectively considers the facts.

Let me continue with another quote, one that resonates with me in regards to all the “security” measures taken lately by our government - especially the “REAL ID” thing (emphasis mine):

Thus, for instance, if he has surrendered his independence and his integrity completely, if he experiences himself as a thing which belongs either to the state, the party or the corporation, then two plus two are five, or “Slavery is Freedom,” and he feels free because there is no longer any awareness of the discrepancy between truth and falsehood.

It goes without saying that I think these are all troubling signs, but what is to be done? The only thing I can think of is to subtly resist such change where possible (don’t give in to REAL ID; write your representatives in Congress; refuse to be afraid of unseen enemies) and to try to help others see things objectively as much as possible. I’m not talking about trying to spread an ideology here - the ideology is already spread; people are just giving it up for an easier, but less “free” one.

So do your duty. Talk with someone about these issues. Spend some time thinking about the implications of what you see & hear in the news, rather than just accepting the views given by those in power (both politically and in the mainstream media). You may be a minority of one, but as of yet, a minority of one can still be right.

Peace out, yo.

Peculiarities of Australia

authorKeithius | December 20, 2006

Let’s spend some time talking about what’s just a little bit different down here - different enough to spend some time talking about it, at least.

First: Driving. My favorite subject, usually. But down here, it’s different. I’ve seen aggressive city drivers before - I’ve driven in Boston, after all - but this is a whole different level of rage. Nearly everyone drives like their life depends on getting ahead of every single car on the road, making them the first one to get to the lights or whatever. It’s absolutely insane. People weaving in and out of lanes, riding right up each other’s bumpers, tailgating like you’ve never seen… and then there’s the starting & stopping.

Actually, it’s more just the stopping. People here don’t stomp on the gas & burn rubber like they do in America - but that’s probably because a 2 liter engine is considered “big.” (Although there are a number of “muscle cars” running around.) But once they get going - my god do they stop hard. I can understand why there are so many “red light cameras” here - without them, people would be running red lights like there’s no tomorrow. They just don’t want to stop - and when they are forced to, they stop hard, at the last possible moment. Given the heat here, I wonder how long people’s brake pads last. Quite frankly I expect to look at people’s wheels and see the rotors glowing when I am at a stoplight.

And let’s not forget the stranges habit of all - not only are most of the drivers here insane, but nearly everyone - and not just the drivers, but passengers, too - talks about other drivers, as they are riding along. Usually this boils down to “he’s driving too slow,” or “he shouldn’t have pulled out,” or “bloody idiot, why didn’t you turn?”

Secondly: Language. There’s a lot of unusual words used down here, but you probably already knew that. After all, who calls a grill a “barbie?” Most of them are shortened versions of longer words, and that’s OK, really - except when they appear in places where you would expect more “formal” language to prevail. Such as on signs for businesses. I can’t tell you how many times I’ve seen “brekkie” or “brecky” or “brekky” or however it’s actually spelled. It’s short for “breakfast,” and it’s a cute phrase (I even say it to the bunnies when I feed them), but to see it in print is a bit disturbing. I’ve also seen “prezzies” (short for “presents”). And all I can say is: WEIRD.

Nevertheless, most of this stuff is pretty harmless (except for the driving, although I haven’t seen an accident yet, which frankly surprises me). It’s funny to watch all the little cars go by - and then see a big, hulking Holden roar by with it’s monstorous V8, looking for all the world like a modern classic American “muscle car.” (Which, I suppose, it is, since a modified Holden was used as the basis for the new Pontiac GTO.)

One thing that’s actually less than harmless, something that’s actually very, very good (at least for people here), is that there are basically NO overly obese people here. EVERYONE is, for the most part, amazingly good looking and in fantastic physical shape. It really puts America (especially the northeast) to shame. Even I feel bad here - and I’m actually quite skinny at the moment (more on that in a different post) - mostly because I’m not “buff” enough. It’s uncanny, really. When I go out, the people I see can be basically put into one of two groups: either they are absolutely fantastic looking (both male and female), or they didn’t get the memo that said “the 80’s are over.” For the second class of people, it’s really a shock to see them - the mullets, the big hair, and the bright, flourescent, colorful ripped shirts that were so common in the 80’s.

Still, everyone here generally seems so much more polite and friendly, that it’s hard to find fault with them - and of course we Americans are not immune from this sort of stuff as well. But hey, what kind of observations would you expect from an American in Australia, anyway? I’ll leave it to Amanda to present the opposing view - if she ever gets back to her blog! Ha!

Logos | Icons | WordPress Themes

Using Internet Explorer is risky. Click here to upgrade to Firefox, the world's safest web browser for free.