the rock garden

I have a rock garden. Last week three of them died...

2004-9-18

an experienced, industrious, ambitious, and often quite often

picturesque liar
Once again had to use fortune to make a title that seems interesting for my day to day life...

Well, a busy week. Work, bout of drinking with the boys on Thursday, got my books for school. Slowed down on the smoking (except for Thurs night of course), using the nicotine gum instead. Cycled all week except for Friday, it was pissing rain all day. Ended up not doing too much Friday at work, but had some breakthroughs...

First of all, Phil, I'm researching the pipe support for bzero. The python library reference, which normally is complete enough for me to figure things out, was extremely terse when it came to redirecting input and text stream handling a la stdin, stdout, stderr. Unfortunately I know nothing of handling them programmatically. So I jumped to the excellent Perl man pages, which have enough examples and snippets to usually accomplish anything, given you can find it in the sheer volume of online docs. Once again very terse. That tells me that folks using Python and Perl are expected to already be familiar with such things, maybe Unix-isms. So even after a few years of Unix obsession, I am apparently completely out to lunch on a fundamental cornerstone of the Unix philosophy, everything is a stream of text.

If the Python library reference, my Python, The Complete Reference, and man perl don't get me anywhere, then it's time to drop to the shell man page. Unfortunately I had forgotten how terse the bash man page is. It assumes a lot. So on to the bash info page, as well as man stdin, man sh (which is the bash page). Aargh! A little help on IRC told me to look at read, and in particular the Python sys.stdin.read call. Google is not helping. Found no help in the built in scripts in Fedora so far, though some are byte-compiled. This is a frustrating one. Found some code to mull over in a shell mailing list archive entry, and I'm thinking of getting out my Berkeley Unix and ANSI C book by Jack Hodges. It's from '93, and while a lot has happened since then, there are some low-level Unix-isms that are covered very well there that I haven't found in any of the 1,000 page Red Hat Linux 5.2 Unleashed type books. BTW, I have the 5.2 book and there is enough in there to do damn near anything. The more I go back to it the more I realized a lot of answers I've searched for in the last few years were right there in that book, including a Python tutorial. As it is I have postit notes with labels sticking out of the top of the book all over for quick reference to things I need all the time, like setting up .htaccess files in Apache. Anyways, I hope I can figure it out in the shell rather than C. It's not that I have anything against C, it's actually that I hate myself for not understanding it. I studied it pretty hard for over a year, and I just didn't make much progress. I was probably hoping to write device drivers in about a month, yeah right. I can read C pretty well until a bunch of libraries get called or structures start getting built and accessed. Inline assembler definitely makes me tune out, just because if you don't have the hardware docs on your wall you are just spinning your wheels. I actually wrote some assembler in college on a project, I loved it. But there is a lot going on.

The other project this week that was frustrating me was that after several years of every now and then trying to install Solaris on x86, I have gotten it running on an old 166 at the office. I tried to get it working on Marvin upstairs, but it would reboot when the kernel was starting, probably hit a bad memory location or mis-configured loading a driver. Marvin has some flaky hardware, it's a first-generation PCI bus. When I installed the SCSI card, things went awry. So I turned off almost everything in the BIOS, and now I can't get video from the on-board video or a PCI card. The machine is booting, but I can't find a way to reset it. Maybe it has a removable CMOS battery, but I'm about done with this one. It might be time for a newer Marvin.

Anyways, I installed Solaris 9 at work, and the installer is quite ugly in some ways. I have to admit I didn't have to use a calculator to partition the disk like with OpenBSD, though. Anyways, rather than simple descriptions of the options during install, you are presented with Product Names for things to install. Gag. So I installed it, and it is very unfriendly. I am completely obsessed :) I must beat it into submission. I only had to look up two things on the internet: I had to figure out how to turn on DNS as the resolver, and find where to put the settings. Then I had to figure out how to change the XSun server settings to get 16 bit color. Other than that I completely installed and configured Solaris 9 without any documentation. But I need to install the development software so I can install dynamically linked builds of things, like Mozilla Suite. I may start over and try again. That is the way with learning a new OS, you have to work with it and reinstall at least twice to get things right.

Yesterday I got to work a dual G5 PowerMac. We are installing some of them in labs at OSU. Me like. I'm getting a reputation as the Mac and Linux guy. That's okay. The people I work with did not know that the PowerMacs were dual processor, 64 bit, fastest personal computer, are based on BSD Unix mixed with all of the other open standard tools in the world, and that there is a command line window with sh, csh, perl, python, ruby, vi, emacs and emacs-lisp... I guess I see the world from a different point of view than they do. They don't understand why I'm so frustrated with a standard install of Windows. Well, how about the ftp and telnet are broken? How about crappy editors? How about the only development environment installed by default are cmd shell, vbscript, and javascript via the browser? That SUCKS. If you are interested in programming and systems work, when you are stuck at this or that workstation waiting for a systems guy to email you that he has changed a setting and you can continue working, you cannot whip up a script and experiment, except with the three environments I mentioned. That is crap. At least if our default image had the JDK installed, that would be a little more interesting. Maybe I should stick emacs on a USB thumb drive so I can work with LISP. That's more interesting to me than javascript...

I played with RSS readers on OS X last night, I'm having some success. First time experimenting.

The last thing I wanted to post was to finish my story on the 68K Mac Monty. The deal is that I bought a keyboard on eBay, and researched free Unixes on 68K Macs. NetBSD was the most mature, while the Debian project has people doing native builds to make sure that the core system and as many packages as possible at least build on Motorola 68K machines, mostly Amigas and Macs. I got my keyboard, and quickly realized that I had some chicken-or-egg problems. You can't just navigate completely by keyboard like in the Unix or DOS worlds, not on OS 7 anyway. So I needed a mouse. The chicken or egg issue was that I needed compression tools on the Mac, but I had no modem, and the built-in ethernet did not have an AUI transducer on it. Otherwise I couldn't install the Linux or NetBSD bootloader and kernels. So I bid on a mouse, an ethernet card (Nubus), found out I needed a Nubus adapter/coprocessor card, bought an ethernet transceiver instead...

NetBSD had self-extracting files for the bootstrap goodies, so I ended up using NetBSD. I installed it and started playing around. I even ended up getting X running eventually, although the server was monochrome, and I could only get 640x480 resolution from the Mac settings. At about this time I ended up moving and going through a separation. At some point I ordered some SCSI parts for my workstation (Marvin, but in an old 166 incarnation) and was hooked up to Road Runner cable modem service in my buddy Dr. Al's house, who was putting me up at the time. I killed Marvin by apparently shorting something in the bus while playing with a SCSI card and some drives. So now I'm living in a little room in my buddy's house, and my only entertainment is a tape deck and a 68K Macintosh that is 25MHz and ten years old.

I eventually got a 1GB SCSI drive and was running week-long builds of big programs like browsers. I had lynx and X and chimera, fetchmail, and vi. I played a lot with getting pkgsrc software to build. I should have sent my fixes to the maintainers, I tweaked the install scripts to get things to build, and I learned a lot. I also understood how little development goes on on non-x86 platforms. I also was reading a C book and typing in sample programs and playing with trying to customize them, and I was reading the kernel source tree, and the csh source quite a bit. I eventually got ethernet working under OS 7, updated it as much as possible, and got ftp, Netscape, and got the video running at 1152x864 monochrome, but my monitor couldn't handle it. It was browning out a lot at 640x480 and needed long breaks between sessions... So I also got a chance to learn the totally alien Mac OS system, how to patch, what updates did what, researched development environments...

So, Monty was a whole world of computer science history and modern development for me to explore at a time when all I did was listen to Dire Straights and The Pogues, chain smoke, and drink too much red wine. I probably spent about $100 on the old thing, which is way more than it's worth. A free PC would perform a lot better and run a lot more software. And I still don't have my second ethernet card installed. But those things aren't as important as discovery and having fun. And I learned a lot.

So now I'm still learning and discovering. Life is good :)

Comment on this post [ so far] ... more like this: [foo]