After a very long time, I've finally finished another chapter of what I still hope will eventually become my book "An Introduction to Design for Professional System Administration". (Many thanks to Wiley for giving me an extension on this. :-) I completed the last chapter on documentation techniques over 5 months ago - yikes! The reason it took me this long is not really a traditional "writer's block", as it is a simple lack of time: in the last couple of months, I changed jobs, moved apartments, gave this talk on the "Useless Use of This and That" at NYCBug, gave this talk on IPv6 basics at said new job, gave this presentation at Velocity 2012, took a much too short vacation, gave this talk on PGP basics at work, gave an ignite talk at DataGotham and celebrated my first daughter's fifth birthday (and her entry into the NYC public school system) as well as my second daughter's first birthday (in fact, she is almost exactly as old this project).
So no, I don't think I've been slacking off per se, but I have had a hard time to sit down and concentrate and actually work on my book. And "work" it is -- I find that I require significantly more concentration to write than I need to code or handle other "work"-related tasks. It takes me much longer to get back into a state of productive focus after an interruption, meaning that the only time I can be productive is in the evenings, and quite frankly, those are quite short to begin with (but that is another story and shall be told another time).
Anyway, with a little bit of self-discipline (and less sleep than usual), I've finally managed to get back into the groove a little bit, and to pen down around 34 pages of content based on my lecture slides and notes. (As before: if you're interested in helping me review the material, please email me!) One of the reasons I was able to get back into this intimidating task was actually the advice I received from a friend: the advice was to not worry too much about style, completeness, even accuracy, but just to start and write. This has been very good advice indeed: just getting started, opening your editor and writing a sentence, a paragraph can help you get in the groove, and you can always improve, revise, edit later on. This may seem obvious, but having somebody else spell it out for me really helped.
As I was writing, I realized (more conciously, anyway) that a lot of the material is aided by illustrations, but it turns out I really suck at illustrating things. In my lectures, this isn't much of a problem, as I can take a certain amount of liberty here and reuse graphics, illustrations and images from the internet and other documentation, but for my book I, the author, have the responsibility of securing any and all copyrights for the materials I use. This means that if I find an image that I'd like to use, I have to be quite aware of the licensing terms, particularly in a commercial context.
Now Wikipedia has a lot of very useful illsutrations for all sorts of topics, many can easily be found at the Wikimedia Commons site, but there is a problem: most of the images and media files are licensed under either a Creative Commons Share Alike license, or under the GNU Free Documentation License. Much like the GPL itself, these licenses are viral, and thus make it impossible for me to use the media. There are a few other common licenses, such as the ones requiring attribution only, but what makes things really easy are the few files that are placed into the public domain, such as works of the US government. (There are discussions about whether or not one can forfeit one's copyright, but those notwithstanding, restrictions on the use of the works can be lifted by the author, even if a copyright remains.)
Anyway, so I've found myself trying to hunt down useful public domain or otherwise "free" works, which is a painful process. I'm disappointed that a lot of people apply a viral license to their creations by default, presumably following what they observe to be common practice. (The same holds in the Open Source world, where many people default to the GPL without putting any thought into it.) The problem I see is this: many of the works, such as simple illustrations or photographs are not in and of themselves valuable enough for anybody to accept the viral terms and likewise license their content using the files. That is, by applying the GNU FDL or a share-alike license, the usefulness of the works is actually limited -- one would think that this would be counter to the intentions of the creator.
The old BSD vs. GPL discussion translates: proponents of a BSD style license tend to write software because they enjoy doing so; they wish others to use their software in any way those people please. The more people use it, the better. In contrast, it often seems that people consciously selecting the GPL as their license focus not on enabling others to use their software, but on having others follow their ideals. I tend to think that if you take a picture of a hard drive, it is unlikely that somebody else will change their licensing terms so that they can include this one picture -- instead, they will use a more liberally licensed picture and move one.
But public domain work is not always available, and so I waste significant amounts of precious time looking for just the right image with just the right licensing terms. Which is silly, and not very efficient. As a result, I've come to -- no, not change the licensing terms of the final works to match the GNU FDL, duh -- creating my own illustrations. Since I believe other people may find them useful, and since I have no desire to restrict their use of these individual and simplistic images, I hereby place them into the public domain. All images and illustrations that I have created for this chapter are below.
(For the same reasons -- I'm not an artist; I will never have any direct benefit from keeping my simple pictures to myself; others may find them useful, and if so, should not be limited or restricted in taking advantage of them -- I have changed the license on my Flickr photos to be the least restrictive available yet clearly identifiable license: attribution only (consider attribution appreciated but optional for all I care.)
September 25th, 2012
P.S.: If you're wondering why I write lengthy blog posts when I complain about not having enough time to write... two reasons: (1) blog writing requires an order of magnitude less concentration; this blog in particular is rather superficial and more of a "jot down some thoughts" kind of thing; (2) the more I write, the more I write, so writing more is good, as it will make me write more. :-)
In true bad-web-performance style, the images below are just on-the-fly scaled down via the HTML tags; view the image to download the full size.
A host using Direct Attached Storage
Three hosts using Network Attached Storage
A SAN providing access to three devices; one host accesses parts of the available storage as if it was DAS, while a file server manages other parts as NAS for two clients.
A possible cloud storage model: an internal SAN is made available over the internet to multiple clients. In this example, the storage provider effectively functions as a NAS server, though it should generally be treated as a black box.
Physical Disk Structure with Zone Bit Recording
Logical Volume Management lets you combine multiple physical disks or partitions into a single volume group, from which logical volumes can be allocated.
RAID-0: Block-level striping
RAID-1: Block-level striping with distributed parity
The Unix file system is a tree-like structure, rooted at /; different file systems can be attached at different directories or mount points. In this illustration, /home and /usr reside on separate disks from /.
A disk may be divided into multiple partitions; a partition may contain a file system with multiple cylinder groups; each cylinder group contains some file system meta data as well as inode and data blocks.
The default output of the ls -l command includes most of the metadata of a given file.
Most of the illustrations above were created using OmniGraffle, which I'm very happy to have found out reads Graphviz dot files. Some of the illustrations were created using the GIMP, and sometimes additional fiddling was done using Mac OS X's Preview or even manual editing of svg files.