Grokking for Answers

by Bryan Elliott

Grok (v): 1. To drink; 2. To consume or be consumed by, and become one with; 3. To understand

In working with computers, it is difficult to avoid getting discouraged by an inability to fully understand something.  Be it compiling a kernel, building a client for a protocol, showing that a security weakness exists by reproducibly exploiting it, or something as simple as building a computer from parts.

I've spent years doing what I do - that is, playing with concepts - and know that if a computer can do it, it's merely a concept.  One that must be understood to be used to its full potential.

This article is pointed at beginners, so I'm going to quickly assume that's what you're in.  (If you're in Mac OS X, you'll find the *NIX-related links useful.  If you're in Linux, then this article is likely a walk down memory lane.)

In your travels and quests in computers, you'll come across many stumbles.  I've compiled a short list of tools that can be used to overcome them.

msdn.microsoft.com/library

The Microsoft Library is a repository of all things related to development in a Microsoft environment.  This includes Internet Explorer, and makes it powerfully useful for anyone doing any sort of web design (it helps you work out how to de-quirk the quirkiest aspects of the MS Browser).  Additionally, it contains documentation of the Windows API - a highly important reference for anyone doing Win32 prots and programming.

www.w3.org

For any other browser in the world, the World-Wide Web Consortium is the place to go.  The documents here are gold, pure and pristine.  If you're having trouble with any browser-related concept, this is the place to go.

www.faqs.org/rfcs/rfc-titles.html

RFCs are the lifeblood of the Internet.  They define how servers serve, how clients connect, and what capabilities you the user - or you the developer - have.  If there's anything you want to learn how to do, network-wise, you'll find out how it's supposed to be done here.

muffin.doit.org

The hacker naturally has a yearning to see what's going on behind the scenes.  Muffin, a Java-based local proxy with filtering capabilities, allows this and much, much more.  Further than this I won't explain.  You have to download it.

netcat.sourceforge.net

I won't go much into this.  Netcat has recently been featured in 2600, and is, as everyone says, the Swiss Army knife of networking.  It's essentially Telnet with the ability to have its output redirected, and if the documents at W3 are gold, this ability is diamond when you're trying to figure out a protocol.  However, much like the scissors on a Swiss Army knife aren't too useful as tin snips, Netcat sometimes has its shortcomings.

www.php.net

This is the most useful programming language I know of.  By "useful," I mean "easy to learn and powerful."  Hell, after you've got it installed and even on a Windows box, you can use it for shell-scripting.

I don't mean to slight Perl, but it's not nearly as simple a language.  Sure PHP code turns out ugly, but then, so do Crayon drawings of a three-year-old.  Still, an artist of high aesthetic can produce works of art using only Crayons.  Point is, I wouldn't give Perl to a newb; it's much like giving a three-year-old a mechanical pencil.  C, on the other hand, would be more like giving our child a sculptor's knife - but I'm digressing.

www.knoppix.net

Once you feel that you've surpassed Windows and want to give Linux a try, this is the distribution I suggest.  Why?  It requires no commitment.  If you want to "mess around" with Linux, you have it there at your disposal with a minimum of fuss.  Certainly there are better distributions, but few have achieved Klaus Knopper's simplicity of trying Linux out.

www.tldp.org

If you're curious about Linux, this is definitely the place to learn things.  I would suggest starting with the "Pocket Linux" guide, as it's a lead-the-user-through-by-the-nose description of how to build your own mini-Linux.

www.gentoo.org

I won't go into Linux superiority with anyone.  A distribution - or OS - is as personal a choice as a religion.  Gentoo is a Linux distribution that gives you a choice as to where you want to start and lets you build your system from there.  One Gentoo system is no more the same as another, yet it has a zen-like package manager, the ebuilds system, which leaves Red Hat's RPMs and Debian's APT in the dust far as I'm concerned.  Furthermore, the simple act of getting your system up and running is a challenge that will leave you with an immense knowledge of how a Linux system works.

That's that.  There's more to tell, but only 60 pages in an issue of this lovely magazine.  I hope you all grok what I've told you to fullness.

Meanwhile, I'm going to go and grok a few beers with some friends.  I've had enough of geek-grokking for the day.

Return to $2600 Index