Planix, Inc. is where I work.
Secrets of the Weird is where I play!
Avoncote Farms This is where I was raised.
GitHub/robohack Some of my open source projects and projects I contribute to.
GitLab/robo-hack More open source projects and projects I contribute to.
StackOverflow/greg-a-woods My StackOverflow profile, my main presence on the StackExchange network.
LinkedIN/gregawoods My online resume.
email@example.com You can find my occasional "social networking" activity on diaspora* via firstname.lastname@example.org.
Google+/Greg.A.Woods Google+ was kinda cool. Alas it is gone.
Google+/robohack Google+ pages were also.... well, interesting. Alas it is gone.
Facebook/robohack I don't really like Facebook, and I don't really use it any more, but many of my friends and family still do. I have posted a number of photos here.
Orkut/robohack Once upon a time there was this other little hack by some Googlers.
The Association of Computing Machinery.
The Institute of Electrical and Electronics Engineers, Inc. , i.e. the IEEE. (Not active.)
The USENIX Association and LISA. (Not really active.)
UNIX Unanimous since 1986. I'm a founding member!
There's lots of stuff below! Just like many a UNIX manual page this is not just one screen full of text (and pictures). Scroll around and see what you can see!
As you might have guessed by now, I'm a Canadian! I'm located in Kelowna, in beautiful British Columbia.
I grew up on a small family farm, one still operated by my father and brother, just west of Moosomin, Saskatchewan. After attending the University of Calgary, studying computer science, I moved to Toronto, Ontario with a job that moved me there but then ended the following spring. With few job prospects back in Calgary at the time I ended up staying in Toronto until the fall of 2010 when circumstances helped me to move all the way out to Kelowna!
A Silly Picture:
[A slightly bigger, newer, picture is here .]
Planix, Inc. - send mail to
Me - send mail to
... or (maybe not)
For sending me authenticated (and/or encrypted) mail, please use my
Weird.com PGP Public Key Block KeyID:
D612 7008 2257 195F 8A00 6B02 627B 5F14 C259 C785
Planix PGP Public Key Block KeyID:
6E2B A766 C150 2E72 6471 BA1F 667D 71B7 78BF F47F
Do not EVER even try to send me spam!
More complete and current information may be available via "finger". If you have a browser that supports the "gopher" protocol you can do that with a single click .
Please visit my FreeWare Software and Programming Projects pages.
Note that you can find my home-directory dot files (user login, session setup, and configuration files) here:
Recently the IETF reluctantly published some RFCs describing a couple of ways that some sadly ignorant (and/or horribly pessimistic) people seem to think might offer a way to authenticate e-mail senders.
The only real way to authenticate any form of electronic communications is to use strong and proven cryptographic techniques, such as public keys, signatures, and encryption. One of the best ways to employ such technology for Internet E-mail has been around now for two decades and, and that is PGP.Almost a decade ago the IETF published RFC 2440 documenting a modern way to use PGP with multi-media i18n e-mail. This document has been updated more recently and is now RFC 4880. There are several implementations of PGP that are widely and freely available. There are also commercially supported implementations. Any and all decent, modern, mail readers (MUAs) support PGP.
Of course PGP won't stop spam until and unless a vast majority of e-mail users learn to only open and read PGP-authenticated (and/or encrypted) mail from people and organizationg withing their web of trust, and only if the vast majority of PGP users are dilligent about protecting their keys and about who's keys they sign. Spammers who can enter the web of trust, either by stealing well known keys, or by tricking well known key users into signing their keys, may be able to get their messages in front of unwilling eyes, at least until the appropriate revocations take effect. This has recently been very well demonstrated by malicious persons and/or organizations which have once again subverted and manipulated SSL Certificate Authorities into signing fake certificates for well known domain names. The current state of SSL CAs is a horrid mess.
Sadly we're still waiting for even governments and important companies such as banks and other financial intstitutions to adopt any form of decent cryptography to authenticate (and keep private) the e-mail they send to their citizens and customers. You would think that federal post offices would long ago have jumped on this bandwagon, but sadly it seems they're more like music companies and have failed to lead in any way.
Please install and begin using PGP at your earliest convenience. Please sign all e-mail you send to me. My PGP keys are published on all of the major key servers and are also available from the links above in the contact information section. If I know you, or learn enough about you to verify your identity, then I will sign your PGP key(s) and would ask you to reciprocate in turn so that we can extend our respective webs of trust.
Here is a list of: OpenPGP implementations (at Wikipedia)
Note that I have also rewritten and enhanced the
script in my release of the
For more information about the junk e-mail issue, please visit the Fight Spam on the Internet! site.
The good folks at Declude are offering a very comprehensive list of DNS Black Lists (DNSBL). An alternate, but as of 2001/11/17 somewhat dated, list is also available.
SpamHaus are offering a couple of useful DNS Black Lists, one of active spam sources, and another of exploited hosts.
SORBS are also offering a variety of useful DNS Black Lists. Their DNS BL also hosts the SPEWS (Spam Prevention Early Warning System) data (with a unique identifying A RR value).
DSBL are the suggested replacement for ORBZ, which is also now defunct.
A set of somewhat different kinds of DNS Black Lists are maintained by RFC-Ignorant.org. This list is queried with domain names, not reversed IP addresses. They're trying to raise awareness about the importance of RFC 2142 standard mailboxes.
Finally I must mention Spam Cop, which is a wonderful site that collects spam reports in a real-time archive, and they've recently been maintaining an almost real-time DNS Black List of active spam sources.
If you find yourself looking up domain names and IP numbers in various
WHOIS servers you might find this
client to be extremely useful. It has a very powerful runtime
configuration language and comes with a ready-made example configuration
file which directs it to the appropriate WHOIS server regardless of
whether you give it an IP address or a domain name to look up.
Once upon a time (before I moved most recently) I had a small collection of old computers. Well maybe it wasn't all that small.... Sadly most of it deteriorated beyond repair while being stored in the less than ideal conditions of an old garage, and the rest was still far to much to accomodate at my new house. It was all sent for recycling.
I had managed to collect several Digital PDP-11 systems, including a complete 11/34 system; many spare 11/34 bits and peripherals (including a monster RP-03 drive); a no longer functioning 11/20 (with real core memory!), and a couple of partial 11/04 systems, and even a small 11/23.
The first production computer of my very own, and one that I used for all my daily personal work, was an AT&T 3B2/400. It was toasted by lightning in 1989 and after an almost year-long battle with Allstate (I'll never buy insurance from them again!) I finally managed to get it (and the fried modems and terminal) replaced with a used 3B2/500 that I found for about %10 of what the 400 would have cost to replace new. I also had a few of those most wonderful DMD-5620 terminals, a couple of Telebit modems, and such to go with the 3B2. Now that was a REAL UNIX™ computer!
I also ended up with quite a collection of Sun-3 stuff too and used it in place of the old 3B2/500. I had several 3/260s and a very well endowed 3/280, as well as a couple of 3/60s.
I became the reluctant owner of a couple of MicroVAX system for a while (a MicroVAX-II with some kind of graphics in it, and a VAXserver (3100, I think) that looks to be fairly well equipped too). I traded them all for some once enterprise-class DEC RAID sub-systems for my AlphaServer.
I also had a couple of DECstation 5000s, and several assorted peripherals and such. I used one of these as a workstation for a while.
On the slightly newer side there were three or four little Digital Alpha Multia machines hiding near the big iron. I had one of them running as a workstation until the infamous little 74623 burned out on it. I think all three needed that chip replaced, and I had a tube of ten higher grade chips sitting and waiting to be used for the repair for years, but never any real need to run such tiny little machines....
Eventually I acquired a big Dec AlphaServer 4100, along with several replacement chassis and spare parts. It served as my main file server until I moved to Park Home Ave. in 2007. Unfortunately it suffered a bent pin on one of the disk shelves during the move and since I already had a bigger and faster Dell PE2650, I moved NFS etc. onto that and the Alpha was turned off until it was given away before I moved to Kelowna.
I also have a Dec Alpha 264dp machine, a server variant of the DS20. It's currently in storage and hoping for resurrection some day.
I feel reluctant to mention the plethora of Intel-based systems that I had and have. Even the Itaniums were un-loved. My current servers are in some ways old now too -- a couple of Dell PowerEdge systems, a PE2650 and a much newer PD2950.
Until January of 2010 my main personal workstation, as well as my main Internet server and the firewall box at the time, were all ``old'' too. They were Sun SPARCstations, a pair of SS-20's and an SS-5. I loved my old SS-20 with it's bw2 interface driving an ultra clear and solid 1600x1200 monochrome display. Unfortunately after repairing and replacing a series of the old monochrome monitors, the last working one finally gave up the ghost over the New Year's holiday in 2010. Luckily just a week earlier I had ordered a new 27-inch iMac! The old SS-20 that was serving as the main Internet server also blew a CPU after over-heating and I retired it upon my move to Kelowna, putting a replacement Intel-based system into a co-location facility in Toronto.
I'd love to find an original Sol-20 PC, preferably with North Star diskette drives, just for the sake of nostalgia, since that was the first type of computer system I used. It doesn't really have to be working, I guess, as I have no real desire to use any of the software I once used on it (which included Electric Pencil II, UCSD Pascal, and of course NorthStar BASIC).
I'd also love to find an RCA Cosmac ELF (1802) system of some sort. That was to be my first personal computer, but unfortunately the mail order place I (or rather my Mom) bought it from ripped us off ($500 in about 1980 or so!).
(At some point I'll probably move this to a separate page, add some pictures, and add more information about the newer in-use systems too!)
I keep a file of quotes from many sources, many of which I've found deep meaning in, some of which are just funny, and yet others which provoke unaswered questions: My Collected Quotations
My (consolidated) bookmarks page.
Long long ago in a galaxy far far away I discovered Smalltalk. Well, actually I discovered it in an article written by Alan Kay in Scientific American, vol. 237, the September 1977 Special Issue on Microelectronics: Microelectronics and the Personal Computer, pages 230-244 (the same issue where the new Cray-1 and the IBM 375/178 were compared and contrasted) [Scans now available at DigiBarn Books: Alan Kay]. That wasn't the last time Smalltalk was mentioned in that popular journal, nor even the last time Alan Kay was published in it, but I think it was the first.
There is finally a true-to-the-original implementation of Smalltalk-80 done by none other than some of its original implementors, including Alan Kay, Dan Ingalls, and Ted Kaehler! It is Squeak!. Squeak is wonderful! Squeak is incredible! Squeak is portable! You should use Squeak!
Most people who know me will know that I detest each and every one of Microsoft's products. I recently came across a supposedly anonymous review, of sorts, of Microsoft Word. I couldn't have said it better (especially since I have never used it), so read the Word review for yourself.
The very first known computer virus was a subroutine called PERVADE originally written more than 25 years ago (1975) by John Walker to propagate his game ANIMAL around to new users on the old Univac 1100 series machines. (The full story is here).
The reason I point all of this out here, now, is to show just how little we've learned in the intervening time. Instead of making systems more secure it would seem we (i.e. Microsoft) have been doing exactly the opposite.
The (in)Famous Jung-Myers-Briggs and Similar Tests: Take the Jung Myers Briggs Typology Test with The HumanMetrics Jung Typology Tester. I come out most often as an INTP, though on some days, being a somewhat middle-of-the-road kinda' guy, I'm also sometimes ENTP, INTJ, or even ENTJ and sometimes ISTJ. See also The Personality Project.
It's kinda silly stuff, but sometimes fun.
Here are some handy pinout tables I made for my own reference.
Visit the Class B Subnetting summary table.
Visit the Class C Subnetting summary table.
These are all originally derived from the ones a guy named
paulh had on his web page once found at:
Unfortunately his web pages have long gone from that site. Thanks for
the ideas Paul H., wherever you are!
The best little interactive tool for IP subnet exploration and calculation that I've ever seen is IPGaget by LGO Systems Pty Ltd. Thanks guys!
Keith Sinclair at SINS has more good information on IP subnetting and network management too!
For more information on IP numbers and networking in general I'd
recommend the following on-line documents:
The Optimized Engineering Technical Compendium, and Understanding IP Addressing: Everything You Ever Wanted To Know.
For TCP/IP in particular nothing beats the late W. Richard Steven's tomes on the subject. You can find the details here at W. Richard Stevens' Home Page.
The folks at Chesapeake Computer Consultants, Inc. also have some very useful tools and an online newsletter about networking.
I read science fiction, listen to most any kind of music that comes along (except opera, heavy metal, acid rock, and some punk; my current listening fav's are folk, jazz, and classical). I ride a motorcycle (when it runs, and when the weather co-operates!), drive a 4x4 truck, and drink craft beer (and none of that tasteless commercial horse piss for me! ``Life is too short to drink cheap beer!''). I don't like any spectator sports, but do like many outdoors activities, including hiking and bicycling.
I grew up on a farm near the small town of Moosomin, Saskatchewan , and I guess that'll explain at lease a couple of my likes and dislikes! You can keep up to date with the current Moosomin news through the World-Spectator Online , Saskatchewan's oldest weekly newspaper, founded in 1884, and Saskatchewan's first online weekly.
By trade I've long been a consultant in the software industry, specialising in systems programming, computer and network security, communications, and software engineering. I am a founding partner in Planix, Inc.. Planix provides UNIX system development and support services. We do everything from ground-up design of systems to remote to monitoring and support.
My forté in software engineering is Software Configuration Management, and more specifically version control, maintenance, problem tracking, and release management. I have in-depth experience with both using and with the internals of RCS, SCCS, (see also SCCS) CVS (see also CVS), GNATS, Make (especially BMake), Git, Automake Autoconf, and quite a few other similar tools.
My programming experience includes extensive C Language experience with my start as a professional C programmer in 1984, as well as a significant amount of experience with Lisp, and Lisp dialects such as Emacs-lisp. I also have some experience with Python, Scheme, and Go. Here are some of my evolving thoughts on C: ~/notes/C.
My experience with object-oriented programming comes from several decades of admiration and occasional study of the Smalltalk programming language, and I continue to work with the Squeak implementation. I have a reasonable grasp of functional programming. I am very well versed in most of the ``Little Languages'' found on UNIX systems (such as sh, Korn Shell, sed, and awk). However I have so far resisted any and all temptation and coercions to learn enough about any of the bastardised half-breed languages such as C++, Perl, etc., or even most of their ill-begotten offspring such as Java, C#, etc., to claim any fluency in them. In fact I've been calling C++ the ``anti-Scheme'' for over a decade. Other than a few of the C-like scripting languages (ICI, Pike, Icon, etc.) the only new scripting language that initially caught my interest was Ruby, which is highly object oriented in the style of Smalltalk. Unfortunately Ruby has turned out to be a bit of a dud as far as good programming languages go. I'm not even that much of a fan of Python, though I must admit it's almost infinitely better than TCL or Perl or such.
More recently I've been looking for a new and safer systems (bare metal) programming language to use instead of C. Something along the lines of Concurrent Euclid. Initially I thought Google's new Go language would be it, especially given its provenance. However it seems Go has a very long way to go before it will, if ever, be a suitable bare-metal programming language which can target any decently wide variety of CPU architectures.
The D Programming Language looks much better, but still is in its infancy in many ways, and I'm not yet sure it really improves safety sufficiently.
Just recently I stumbled across the XC Language which looks to be a lot more promising, and it's already coming directly from the embedded systems world. It seems to be a lot like what I remember of Safe C, and perhaps also similar in ways to Cyclone (which may be a derrivative of Safe C?), but XC has fully integrated features for concurrent programming.
There is also a new language called Nim. It has a look and feel that's a bit annoyingly Python-like. However its compiler generated stand-alone executables (there's no runtime compiler library as there is with Go, and there's no virtual machine), with what's described as "fast deferred reference counting memory management" which they claim supports its use in real-time systems. It's neatly self-contained too, with the entire compiler and standard library entirely implemented in Nim as well.I should also mention Jai, which is a high-level programming language developed by Jonathan Blow. It is an imperative static/strongly typed C-style language supporting data-oriented design, and has a variety of modern language features that C lacks. It looks simpler than D, but is more complex than Go.
Most of my programming experience is with systems level software, including all levels of networking and data communications. I've also designed and written complete applications and database software, including simple database indexing engines, and I've worked on several teams developing large packages of systems software and applications. As with most programmers I've done a great deal of software maintenance, including a tremendous amount of porting software from one platform to another. In fact I've ported wide varieties of systems and applications software to almost all versions of UNIX ever used, from the original Seventh Edition Research UNIX up to the most modern systems such as Darwin (aka Mac OS X).
I'm reasonably comfortable programming at the ``bare metal'' level, though I wouldn't necessarily claim to be an expert in any of the esoterica of the many niches of the embedded systems world. I've written device drivers and interrupt handlers for several different operating systems, including MS-DOS, early MS Windows (2.0 and earlier), as well as many variants of Unix. I've also done quite a bit of work on boot loaders for Unix variants.
I'm also quite familiar with a good portion of the rest of the innards of UNIX, especially the ``free'' versions of BSD, i.e. those based on the 4.4BSD-Lite and 4.4BSD-Lite2 releases. I have done some device driver development and other kernel work on various versions of XENIX and AT&T UNIX System V as well. My favourite ``free'' version of UNIX is: NetBSD and I have a fair bit of experience with FreeBSD internals as well.
I currently maintain a highly customised release of NetBSD, using it to support several of my customers, and I have done the same for other customers with FreeBSD in the past. This includes full integration of custom changes and updates, integration and regression testing, full builds of release media, and of course the integration and testing of third-party software packages as well. Primarily I currently support i386, Sun SPARC and UltraSPARC, and DEC Alpha, though potentially I can do builds for any other hardware I may acquire or be given (I can cross-build for anything, but I can only test with the hardware I have).
I have built fully static-linked ``single binary'' complete full versions of NetBSD which are extremely efficient in size (a whole system can be less than 10MB including kernel and a compressed root filesystem image) and process startup performance (every text page is always 100% shared). These builds are suitable for both embedded systems and dedicated server appliances. They are very quick and easy to upgrade as well.
I also have deep experience with the internals of the NetBSD and FreeBSD software packaging systems (``pkgsrc'' and ``ports'' respectively), and I maintain local versions of a tiny fraction of the vast number of packages included in NetBSD's pkgsrc collection with various enhancements, including better support for full static linking.
In the fields of computer and network security support I have many years of experience with all aspects of UNIX systems security and Internet security. For a past employer I worked on the design and development of an automated ``expert systems'' tool which audits and monitors the security status of UNIX systems and networks of UNIX systems. I also have experience with doing detailed security audits of systems and networks, risk analysis, threat assesment, and security policy definition and enforcement.
As you might guess from my antique computer collection, I also have extensive interest in, and experience with, computer hardware. Professionally I have done a fair amount of hardware maintenance and systems integration on a regular basis. I generally try to avoid working with commodity ``personal'' computer hardware though, only stooping low enough to occasionally use commodity parts to build custom engineered servers and workstations when monetary constraints demand they be built at the lowest possible cost.
I still end up doing a lot of what many people call systems
administration and management, though I often think of it as more like
grunt work than anything else! Folks call this DevOps these days, but
that's a rather overloaded and usually very misleading "term".
A.S.R. price list[*]
more or less sums up many of my thoughts about being a sysadmin!
[*] Originally this was here: http://www.contrib.andrew.cmu.edu/~moose/sysadmin/pricelist.html: A.S.R. price list
Please do not hesitate to contact me, either directly or through Planix, Inc., if you think I could be of any assistance with any project you are working on.
I like coffee. A lot. I'm definitely addicted to caffeine. This little ditty says it all:
It is by caffeine alone I set my mind in motion.
It is by the beans of Java the thoughts acquire speed,
The hands acquire shaking,
The shaking becomes a warning.
It is by caffeine alone I set my mind in motion.
-- à la the Mentat mantra from David Lynch's film of Dune by Frank Herbert
(Source: the long out-dated
Coffee: Source of all life
page attributes this wee parody to Kerry Lutz; but
Faisal's Quote File,
says it's by Dennis Ferguson, though my guess is Dennis just had
it in his
~/.signature file at some time. Several
other people attribute this variation to National
[[Wikipedia:Original Mentat Mantra]]
Once upon a time I used to try to claim that I was not so much of a coffee fanatic though — as long as it's fresh and strong I'll drink it. However I've grown to hate pre-ground coffee, and I must admit that the fresher the roast, the better it tastes.
I've also found the best little coffee maker EVER! It's called the Aeropress, and it's as simple and easy to use as you could ever hope for. It produces the best possible Caffè Americano style coffee given the roast and grind you use.
Anyone who slaps a ``this page is best viewed with Browser X'' label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network.-- Tim Berners-Lee in Technology Review, July 1996
This is a No Alien Zone! Uploading of these web-pages to Motherships, Flying Saucers, or any other craft of an ExtraTerrestrial Nature is Strictly Forbidden . Failure to comply with these copyright restrictions will make me really mad. The images are all your's to do with as you please though!
What'sa matter? Doncha got a back button?