Archive for the ‘computers’ Category

The Hacker Ethic

Thursday, April 19th, 2007

I took this book off of my reading list.

I started to read it (read the intro, and then maybe two chapters). Linus Torvalds intro was entertaining. The author was just dry and really “academic”. It wasn’t really about computers so much as just “work ethic” and the difference between hackers and other people. Maybe I’m just burnt out on hacker theory for the moment… I might return to it someday, but I don’t really recommend it at all.

Now on to “Dealers of Lightning”…

The Cathedral and the Bazaar

Thursday, April 19th, 2007

This book was awesome. I give it 5 of 5.

Two years ago I stumbled upon a little essay entitled “How to Become a Hacker“. I was enthralled.

I’ll be honest and say that I read that essay hoping to learn how to become a cracker. I had booted my company laptop, let it go to sleep, and then closed the lid and forgot about it for a few months, and when I came back could not remember the password. It would not let me reinstall windows, it would not let me install linux, I could not format the hard drive, it was LOCKED.

I got pissed. Here I was, a “geek”, and I couldn’t get around a stupid M$ password??? Couldn’t all the awesome computer people on tv and movies slice through passwords like warm butter? Where could I learn to control my computer instead of letting my computer control me? I was sick and tired of being told what I could and couldn’t do, and how I could do it by my computer. I should be ordering it around. I should be the master of my machine.

So I went to Google and entered the words that would change my life: “How to be a hacker”.

I clicked on the first thing that came up on the screen, and spent the next few hours reading and re-reading the essay. I had found what I wanted to do. I wanted to be a hacker. Not a cracker, (I didn’t even care about the stupid laptop anymore, and in fact, I think it got tossed after no one could crack it) no, I wanted to be a hacker.

hacker emblemSo away I went to learn. Almost immediately I talked with one of my teachers (Andy Harris) about what I had read. His response was something along the lines of “Some random guy on the internet can’t tell you how to be a hacker, or even what a hacker is. You have to find that for yourself.” or something like that. I think what he meant was, “You can’t just learn a few languages, and then expect to be called a hacker” (which wasn’t what the essay was saying, but I must have explained it really poorly. I think his main beef was with the hacker emblem for some reason). But still, I liked the whole concept, and so I signed up for the CS certificate (it was too late to switch to the bachelors).

I had a lot going on in my life, and almost completely forgot about the essay in my obsessive grind to hackerdom. To start I honed my HTML skills, and soon got a job as a PHP programmer for IUPUI. Then I got a job programming Java. Time went by and I forgot more and more about the essay.

Then, one day I picked up “The Cathedral and the Bazaar” in Half Price Books. I had just finished “Dreaming in Code” (which I just now realized I forgot to review. It’s worth the read, but fizzles towards the end) and I recognized the title (of The Cathedra and the Bazaar) from references Scott Rosenberg (Dreaming in Code) had made to it throughout the book. It looked interesting so I thought I’d check it out.

It was awesome. It reminded me of something I had read what seemed like ‘a long time ago, in a galaxy far far away’ before I became serious about being a “Computer Scientist” (as I had come to call it). Then I came to the end of the book, and saw that ‘Appendix A’ was entitled “How to Become a Hacker”. Wait a minute… I’ve read that before…

So I read it again. This time with the knowledge that it wasn’t written by “some random guy on the internet” as my teacher had put it, but by someone almost as well known (in the hacker community) as Linus Torvalds. Sweet.

It was almost exactly two years ago that I read the essay for the first time, although it seems like at least five years have gone by.

On the coding requirement part of it, I now know two languages decently well (PHP and Java), which leaves me with Python (I was ‘supposed’ to learn that first, but didn’t, should be a breeze at this point), C/C++, and Lisp (I get the impression that PHP has replaced Perl). I’m thrilled at the prospect at learning these languages over the next few years.

I am also psyched about joining/starting an OS project now that I have something substantial to contribute. I’m either going to make an OS Python version of my (incomplete) Flash TD game, or I’m going to join the Chandler project. Knowing me, I’ll do both.

Now, back to the book.

It answers tons of questions about Open Source that I have had (Like: ‘How do you make money if you give everything away?’). It is a great read, and actually fun at some parts (like when the author tells about the time he led a march on Microsoft dressed as Obi-won with a giant penguin behind him that shouted the words “Let the source be with you!”). It describes the differences between developing closed source projects (the cathedral) and open source projects (the bazaar) and why closed source takes way longer, and has fewer features most of the time. You can read most of the book on the author’s website since it is just a bunch of continually updated essays.

The more I learn about hackers and OS, the more I see parallels between Lord of the Rings and the history of computers. Microsoft reminds me a lot of Morgath, who wanted to bend and hoard all of creation to himself rather than create and share creation cooperatively like the other Valar.

For clarification, in case I didn’t make it clear, a hacker is not a criminal. Hackers make things, crackers break them. When the media refers to “hackers hacking into government databases” or stuff like that, what they mean is “crackers cracking into government databases”. Crackers love to call themselves hackers, but they are not. The term hacker was invented back in the 1970s (I think) by computer experts who wanted to give themselves a label, and then misappropriated by the media in the late 80s early 90s…

Vegeta went super saijen…

Wednesday, April 18th, 2007

I love Dragon Ball Z.

In fact, if you look on DVD #5 of the DBGT saga you will see the music video that my friends and I made which won the DBZ “Be a Star” contest. It’s kinda cheezy, but still cool that I can say that…

Anyways, like I said, I love DBZ. I have named each one of my Linux boxes after a DBZ character (and I affectionately refer to my laptop as “Yamcha” because it sucks soooo much).

My Ubuntu install is “Krillin”. Friendly, small, and moderately powerful.

My SuSE install is “Vegeta”. Not so friendly, but powerful.

My Fedora Install is “Piccolo”. A little more friendly, but still powerful.

(Goku would be my souped up box that I will be building over the next year or so, and Gohan is my Dell XPS 410 that I currently use as a windows box. Currently, but not forever…)

Well… today, Vegeta went super-saijen.

He was blessed by the linux fairy, and now, for the first time ever, I too have an awesome spinny desktop cube.

It wasn’t hard. Initially when I installed SuSE, and tried to register it so I could get the graphics card drivers (you can’t get them without registering). However, the registration process crapped out, and every time I tried to register after that, it gave a blank error message (when I tried from the console it said it was an xml parse error).

Since I didn’t have a SuSE “account”, during the registration process I clicked on a link to sign up for one. Clicking on that link screwed everything up. There is some sort of bug that muffs up the whole thing if you click that link.

The fix? Reinstall SuSE, from scratch. Sign up for the account before you try and register, then during the registration process, don’t click that link. I’m sure there is some “better” fix out there, but I don’t know of one, and as I hadn’t done any customization yet, I didn’t lose anything by reinstalling.

Once I was successfully registered it downloaded like 200 updates. Then when I tried to enable desktop effects, it said it couldn’t, but that I could try updating my software. At that point it downloaded some video card drivers (I have an NVidia video card). After that it said I might not be able to do it, but could still try. I said ok, and it logged me out and when I logged back in, my awesome new desktop effects were in place. Wobbly windows, expose type features, dektop zooming with a mouse click (very handy), and most importantly “The Cube“.

You can see more wonders here.

Why I love Python already

Sunday, April 15th, 2007

I just began learning Python.

I bought “Python Programming, Second Edition” brand new at Half Price Books for $14.98 and I am on page 12, but already I love it.

Why? The “interactive window”. It’s like a scratch pad where you can test a line of code out. With Java, if you want to test out a little chunk of code, you have to create a new document, write the code, save it, compile it, run it. Then while you are refining it, every little change requires a new save compile run. Tedious. With Python (it appears) you can just jot it out, and hit enter and it will run it right there in front of you.

Now, this could prove to just be a little useless “wow, cool!” in the long run, but at first glance, it’s unique, and pretty sweet.

Linux * 3

Friday, April 13th, 2007


Well, I did it. I installed Linux on 3 computers fairly easily with minimal hassle, and it worked.

Two years ago when I went to Best Buy and purchased Suse Linux 9.0 (or was it 9.2?) for $90 (since I couldn’t get a straight answer from anyone on where do download Linux, and had never even heard the term “distro” and had no clue whatsoever) it took me THREE DAYS to try and get it up an running (and I never actually did get it up and running fully. Always had sound card/printer issues).

Linux has come a long way in these two little years.

The distros I used:

Ubuntu 6.06
SUSE Linux Enterprise 10 (evaluation kit)
A non-specific “Fedora Core” that came with my “Linux for Non-Geeks” book, circa 2004

The Fedora Core one is sorely out of date, but the only other version I have is on DVD, and that computer doesn’t have DVD. I’ll check the website and see if there is a CD option I can download so I can try the latest version.

So far ubuntu is still my favorite.

During the install Ubuntu hung the first time and I had to restart. SUSE went through the entire install twice, each time I got to the VERY LAST STEP (configuring hardware, why oh why is that the last step) it froze when I clicked “test”. I determined it was because I had three video cards installed, so I took the two extra ones out and reinstalled a third time. Worked like a charm. Fedora Core worked correctly the first time with no errors. Fedora wins the install challenge.

Next I checked my e-mail and my blog on all three. Ubuntu I had to install flash player, SUSE already had flash player, Fedora didn’t even have an easy option for installing it (assuming because it’s 3 years old). SUSE won that round.

That’s all I’ve done so far. I still like Ubuntu best, simply because it came on CD, and I had no frustrating problems with it so far. I’ll use all of them over the coming months and see what I think. I’m amazed though that I actually got all of them up and running with no real problems, and they all work fine so far.

Threw in a picture of my poor forlorne empty server rack (just for fun). Note the Ubuntu sticker…

Ever Lose a HD?

Friday, April 13th, 2007

I lost my first Hard Drive today. No it didn’t burn out or anything like that. I just literally can’t find it.

It had all my video/music/personal projects on it. 40GB (it was a 60GB HD) worth of media, gone.

This sucks…

Update: Found the HD, it was in my wife’s computer. Completely forgot I put it in there for her to browse the pictures. I really need to put it in one of my linux boxes as a shared drive for all computers on my network instead of swapping it from machine to machine…

LinuxFest 2007!!!

Thursday, April 12th, 2007


So I went to linux fest this year again.

It was a lot of fun. Got a bunch of swag. Won a free book “Linux for Non-Geeks” which is awesome because I’ve had my eye on it for a while.

Now, one of the two or three people who read my blog might be saying, “wait… didn’t your screw up your computer majorly and have to reformat entirely last time you tried linux?”. The answer is yes. But my saga of the Dell Wars might have had something to do with it. Which is why I am going to do what I should have done, what linux is best at, from the start:

Find the absolute crappiest cheapest computer I can get my hands on and install it on that. At which point the linux fairy (a pinguin in a red cowboy hat who lives in linus torvalds pocket) will come along, zap it with it’s mystical “1337” powers, and presto the computer will instantly run 3x faster, never crash, malfunction, get infected with viruses/spyware/adware, cost money, and will also have the handy ability to simultaneously cook your breakfast, raise your IQ by 327 points, and fend off bill gates and m$ like a crucifix made of garlic and silver fends off a vampire. It’s just a FACT (It happened to my friend’s brother’s pen pal once, I swear).

I’m eager to see the awesome 3d desktop cube swivel thingy that happens once I get visited by the linux fairy. When I tried to get it to happen on my BRAND NEW Dell XPS 410 (which cost me $1,800) it continually crashed my computer. This is probably thanks to the evilness that is ATI (which also has the added benefit of crashing my computer any time I attempt to play a video game. Hooray for ATI!!!!).

Besides the book, I got two little penguins, several Ubuntu stickers to slap on my computer, and cool official distro cds for SUSE, Fedora Core and Ubuntu. I also go the latest version of DSL (on CD).

I went to 3 of the 6 presentations. The most interesting was probably the last one. Indiana decided to fund an experiment to put a computer at every desk for three classes in a middle school (or something like that). They wanted each station to cost no more than $300. They purchased dells, and installed Ubuntu on them. It worked. It worked better than M$. It worked so well, they are adding one new classroom each year to the project (I think). Cool. You can see more about this project here.

All in all, linuxfest was fun! Swag… Coke… Fellow Geeks… Linux… What else could you want? Maybe some pizza…

There was also this display, where they had hooked up 8 screens to function as one. It was awesome. I used it to find my house on Google Maps. This crappy pic I took with my cell phone only got 6 of the screens.

I’ll be blogging about my new forays into the wonderful wacky world of linux as they unfold.

Next time there is a linux fest in your area, even if you have never set eyes on a living breathing working version of linux, GO. At noon they had an “install fest” where they took anyone who wanted and taught them how to install and use linux (very quickly). It was cool. It’s probably the best way to get introduced to linux. Plus, you get swag, and who doesn’t want swag?

The Joel Test

Wednesday, April 4th, 2007


So I’m reading this awesome book, “Dreaming In Code” (Scott Rosenberg). I’m about 3/4 the way done with it now, and it is fascinating. I would highly recommend it.

On page 257 there is a list of 12 questions asked by software “expert” Joel Spolsky to act as a quick and dirty test to determine if a development organization has it’s act together.

The questions are:

1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?

A score of 12 is perfect, 11 is tolerable, 10 or lower and you’ve got serious problems. Most organizations are running with a score of 2 or 3. Microsoft runs at 12 full time.

Now, when I read that I was kind of shocked. My Bachelors degree was indeed worth something. I guess I didn’t really realize how much I had actually learned at college until I read that short bit right there.

In the past year since I started at PSI, I have almost single handedly took our company from fulfilling… well… basically none of these requirements, to fulfilling nine of them. With the remaining 3 being either irrelevant or unfeasible (9, 10 and 11). Well, I guess we do fulfill 9 because I brought in my home computer until they buy me a really good one. I am the sole full-time developer and we don’t have money/need for hiring testers so my wife and brother fill that role. We don’t hire new people, so there is no reason to have them write code during hiring.

Now admittedly, we could do better in several of these areas. For instance, #4 is kind of only halfway fulfilled. We do have a bug database, but it doesn’t really get used all that much because I fix most bugs as soon as I find them, and the rest get put on a “to do” list that I pin to my cubicle wall. We do use Bugzilla, but the server that hosts it is down for the next week. Once it gets back up we will begin to use more regularly.

Number 8 is debatable. I have sound-canceling headphones that I pipe music into my brain through all day long. But I am betting that what he means by that is that programmers don’t have to also function as tech support for inept computer users around the office who CONSTANTLY manage to screw up their machines even though they only use WORD AND EXCEL!!!!!! I got interrupted two times today, and one time yesterday for little crisis people around the office where having. So I guess we only mostly fulfill number 8.

I am particularly proud of numbers 1, 2, 3, 6 and 12 though. After our part timer (Jeff) pointed me in the direction of it, I implemented subversion with tortoise (source control management) which has been a life saver on several occasions. I refined our build process from a HORRIBLE 15 minute 8 step monstrosity, down to a 30 second one click deal. No one understood why I was doing it, and people (our part time coder Jeff, and our network admin Mike) complained while I was doing, but it is awesome now that it is done. I learned MS Project, and how to use it so that it accurately tracked time AND duration (our network admin swore up and down it could only do one or the other), and finally I got my managers to read “Don’t Make Me Think” so that they would understand the importance of Usability Testing.

So it was nice to have a little “validation” on what I have been doing here, and really cool to step back and see how far I have come since I started. If I were to add one more thing to this guy’s list it would be: 13. documentation. I think documentation is very important and I have probably made more advances in that area than any other since I started. When I got here there was almost no documentation to speak of whatsoever. Now everything is documented fairly well (although it could definitely be better).

This makes me happy.