picture of tech dogg Tech Dogg's Dox Tox

Nov
5

make an offer sun microsystems

                                                                     Make an Offer

Sep
25

Support for RAC on zones has just today been announced for Solaris Cluster Express (SCX) 9/08. You can learn more about this new support by going to the Solaris Cluster Express area on the OpenSolaris web site.

The RAC on zones feature introduces some new, and changes some very fundamental, Sun Cluster concepts, and sets in motion some very big changes in the way you might have thought of Sun Cluster.

Here are the concepts about which you'll likely be hearing more in the future.

In Sun Cluster that's running on the Solaris 9 OS, a node is defined as a physical machine that contributes to cluster membership and is not a quorum device. In this environment, a cluster is a collection of one or more nodes that belong exclusively to that collection.

In Sun Cluster that's running on the Solaris 10 OS, however, these concepts change. A node is now a zone that is associated with a cluster. A voting node is a zone that contributes votes to the total number of quorum votes, that is, membership votes in a cluster. This total determines whether the cluster has sufficient votes to continue operating. And, a non-voting node is a zone that does *not* contribute to the total number of quorum votes, that is, membership votes in a cluster.

In this environment, a cluster is a collection of one or more nodes (that is, zones) that belong exclusively to that collection. A global cluster (a new term for an old concept) and zone cluster (a new concept) are types of clusters.

A global cluster is a type of cluster that is composed only of one or more global-cluster voting nodes and optionally, zero or more global-cluster non-voting nodes.

Note: A global cluster can optionally also include solaris8, solaris9, lx (linux), or native brand, non-global zones that are not nodes, but high availability containers (as resources).

A global-cluster voting node is a native brand, global zone in a global cluster that contributes votes to the total number of quorum votes, that is, membership votes in the cluster. This total determines whether the cluster has sufficient votes to continue operating.

A global-cluster non-voting node is a native brand, non-global zone in a global cluster that does not contribute votes to the total number of quorum votes, that is, membership votes in the cluster.

A zone cluster, which is a new concept, is a type of cluster that is composed only of one or more cluster brand, voting nodes. A zone cluster depends on, and therefore requires, a global cluster. A global cluster does not contain a zone cluster. You cannot configure a zone cluster without a global cluster. A zone cluster has, at most, one zone cluster node on a machine.

Note: A zone-cluster node continues to operate only as long as the global-cluster voting node on the same machine continues to operate. If a global-cluster voting node on a machine fails, all zone-cluster nodes on that machine fail as well.

As you can see, this new feature turns Sun Cluster concepts on their head. You'll hear more about these changes in the coming months.

The clzonecluster man page (PDF) tells you more about the command that you use to manage zone clusters.

As always, let me know what you think.

Jul
9

Come and get it! Support for LDoms guest domains and Oracle 11g is now available in Sun Cluster 3.2 2/08!

You can find descriptions of the latest set of new features in the latest Sun Cluster 3.2 2/08 patch release at What's New in the Sun Cluster 3.2 2/08 Software.

May
30

The Sun Cluster team yesterday contributed over two million additional lines of source code to the open source community, completing a promise the team made almost one year ago to open source the complete Sun Cluster product under the name Open High Availability Cluster.

Read the official press release.

But a more notable facet of this announcement is that all remaining unencumbered man page source for Sun Cluster was released as well.

This man page source, which is in nroff format, is available to you to use under the Common Development and Distribution License (CDDL), Version 1. Feel free to contribute your own content to, discuss, and modify this source. The Sun Cluster writers would love to hear what you think. Leave a comment and we'll get back to you.

To download and extract the man page source you want, complete the following steps.

  1. In a new browser tab or window, open the page Open HA Cluster man Page Source.
    1. Keep the Sun lawyers happy by reading the CDDL disclaimer.
    2. At the top of the page, click the OHAC Downloads link.

      The OHAC Downloads page is displayed.

    3. In the table on the OHAC Downloads page, click the links for the man page tarball files you want and save each tarball file to disk.
    4. When you're done, come back to this page.
  2. Extract the man page source files.

    % ls -al
    total 558
    drwxr-xr-x   3 techdogg  staff        512 May 30 10:35 .
    drwxrwxrwx  73 techdogg  staff       3.5K May 30 10:27 ..
    -rw-r--r--   1 techdogg  staff       206K May 30 10:27 ohac-man-20080528.tar.bz2
    -rw-r--r--   1 techdogg  staff        26K May 30 10:27 ohacds-man-20080528.tar.bz2
    -rw-r--r--   1 techdogg  staff        19K May 30 10:35 ohacgeo-man-20071203.tar.bz2
    -rw-r--r--   1 techdogg  staff        10K May 30 10:27 ohacqs-man-20080528.tar.bz2
    % bzcat ohac-man-20080529.tar.bz2 | tar xvf -
    x ., 0 bytes, 0 tape blocks
    x ./man, 0 bytes, 0 tape blocks
    x ./man/man1, 0 bytes, 0 tape blocks
    x ./man/man1/libschost.so.1.1, 9289 bytes, 19 tape blocks
    x ./man/man1cl, 0 bytes, 0 tape blocks
    x ./man/man1cl/Intro.1cl, 13662 bytes, 27 tape blocks
    x ./man/man1cl/claccess.1cl, 11639 bytes, 23 tape blocks
    x ./man/man1cl/cldevice.1cl, 32859 bytes, 65 tape blocks
    x ./man/man1cl/cldevicegroup.1cl, 51677 bytes, 101 tape blocks
    x ./man/man1cl/clinterconnect.1cl, 23798 bytes, 47 tape blocks
    x ./man/man1cl/clnasdevice.1cl, 27534 bytes, 54 tape blocks
    x ./man/man1cl/clnode.1cl, 39424 bytes, 77 tape blocks
    ...
    % bzcat ohacds-man-20080529.tar.bz2 | tar xvf -
    x ., 0 bytes, 0 tape blocks
    x ./man, 0 bytes, 0 tape blocks
    x ./man/man5, 0 bytes, 0 tape blocks
    x ./man/man5/SUNW.apache.5, 11828 bytes, 24 tape blocks
    x ./man/man5/SUNW.dns.5, 6991 bytes, 14 tape blocks
    x ./man/man5/SUNW.hadb.5, 7773 bytes, 16 tape blocks
    x ./man/man5/SUNW.hadb_ma.5, 6944 bytes, 14 tape blocks
    x ./man/man5/SUNW.iws.5, 12364 bytes, 25 tape blocks
    x ./man/man5/SUNW.jsas-na.5, 7472 bytes, 15 tape blocks
    x ./man/man5/SUNW.jsas.5, 7550 bytes, 15 tape blocks
    ...
    % bzcat ohacqs-man-20080529.tar.bz2 | tar xvf -
    x ., 0 bytes, 0 tape blocks
    x ./man, 0 bytes, 0 tape blocks
    x ./man/man1cl, 0 bytes, 0 tape blocks
    x ./man/man1cl/clquorumserver.1cl, 13043 bytes, 26 tape blocks
    x ./man/man1m, 0 bytes, 0 tape blocks
    x ./man/man1m/scqsd.1m, 3290 bytes, 7 tape blocks
    x ./man/man4, 0 bytes, 0 tape blocks
    x ./man/man4/scqsd.conf.4, 2884 bytes, 6 tape blocks
    x ./man/README, 52 bytes, 1 tape blocks
    x ./man/CDDL.txt, 18924 bytes, 37 tape blocks
    % bzcat ohacgeo-man-20071203.tar.bz2 | tar xvf -
    x man, 0 bytes, 0 tape blocks
    x man/man1m, 0 bytes, 0 tape blocks
    x man/man1m/geoadm.1m, 16732 bytes, 33 tape blocks
    x man/man1m/geohb.1m, 13660 bytes, 27 tape blocks
    x man/man1m/geopg.1m, 38142 bytes, 75 tape blocks
    x man/man1m/geops.1m, 16541 bytes, 33 tape blocks
    x man/README, 52 bytes, 1 tape blocks
    x man/CDDL.txt, 18924 bytes, 37 tape blocks
    

    The man page source files are extracted and placed in a subdirectory named man/, which contains a subdirectory for each man page section.

    % pwd
    /home/techdogg/manpagesource
    % cd man
    /home/techdogg/manpagesource/man
    % ls -al
    total 68
    drwxr-xr-x  12 techdogg  staff        512 Nov 26  2007 .
    drwxr-xr-x   3 techdogg  staff        512 May 30 10:35 ..
    -r--r--r--   1 techdogg  staff        18K Nov 26  2007 CDDL.txt
    -r--r--r--   1 techdogg  staff         52 Nov 26  2007 README
    drwxr-xr-x   2 techdogg  staff        512 May 29 10:55 man1
    drwxr-xr-x   2 techdogg  staff       1.0K May 28 11:59 man1cl
    drwxr-xr-x   2 techdogg  staff        512 May 29 10:55 man1ha
    drwxr-xr-x   2 techdogg  staff       1.5K Nov 26  2007 man1m
    drwxr-xr-x   2 techdogg  staff       2.0K May 29 10:55 man3ha
    drwxr-xr-x   2 techdogg  staff        512 May 28 11:59 man4
    drwxr-xr-x   2 techdogg  staff       1.0K May 28 11:59 man5
    drwxr-xr-x   2 techdogg  staff        512 May 29 10:56 man5cl
    drwxr-xr-x   2 techdogg  staff        512 May 29 10:56 man7
    drwxr-xr-x   2 techdogg  staff        512 May 29 10:56 man7p
    % man -M . cldevice
    Reformatting page.  Please Wait... done
    
    Sun Cluster Maintenance Commands                    cldevice(1CL)
    
    NAME
         cldevice, cldev - manage Sun Cluster devices
    
    SYNOPSIS
         /usr/cluster/bin/cldevice  -V
    
         /usr/cluster/bin/cldevice  [subcommand] -?
    
         /usr/cluster/bin/cldevice  subcommand  [options]
         -v [+ |  device ...]
    
         /usr/cluster/bin/cldevice check  [-n node[,...]]
         [+]
    
         /usr/cluster/bin/cldevice clear  [-n node[,...]]
         [+]
    
         /usr/cluster/bin/cldevice combine  -t replication-type
         -g replication-device-group -d destination-device
         device
    
         /usr/cluster/bin/cldevice export  [-o {- |  configfile}]
         [-n node[,...]] [+ |  device ...]
    
         /usr/cluster/bin/cldevice list  [-n node[,...]]
         [+ |  device ...]
    
         /usr/cluster/bin/cldevice monitor  [-i {- |  clconfigfile} ]
         [-n node[,...] ] {+ |  disk-device ...}
    
         /usr/cluster/bin/cldevice populate
    
         /usr/cluster/bin/cldevice refresh  [-n node[,...]]
         [+]
    
         /usr/cluster/bin/cldevice rename  -d destination-device
         device
    
         /usr/cluster/bin/cldevice repair  [-n node[,...]]
         {+ |  device ...}
    
    Sun Cluster 3.2     Last change: 14 Sep 2007                    1
    
    Sun Cluster Maintenance Commands                    cldevice(1CL)
    --More--(4%)
    

Visit http://www.opensolaris.org/os/community/ha-clusters/ohac/ for additional Open High Availability Cluster source code and more information.

Note that the open source code does not include some encumbered Sun Cluster source code. Nonetheless, you can still build a completely usable high availability cluster from this source with Sun Studio 11.

Apr
2

Come and get it! Sun Cluster 3.2 2/08 is now available.

You can find descriptions of the latest set of new features in Sun Cluster 3.2 2/08 at What's New in the Sun Cluster 3.2 2/08 Software. You can find descriptions of the latest set of new features in Sun Cluster 3.2 2/08 Geographic Edition at New Features and Functionality.

You can download Solaris Cluster 3.2 2/08 at the Solaris Cluster 3.2 2/08 download page.

Jan
7

kissing cousins cartoon google sun microsystems microsoft sol barnes jonathan schwartz bill gates eric schmidt

                                                        Kissing Cousins

Nov
13

A list of patches that apply to Sun Cluster is now available at the Sun Cluster Wiki Patch Klatch. Note that you'll need an account on SunSolve to download the patches listed at the Sun Cluster Wiki Patch Klatch. Please let me know what you think of the Sun Cluster Wiki Patch Klatch, good, bad, or ugly... or indifferent.

Nov
7

The new Sun Cluster Wiki is open for business!

The Sun Cluster Wiki will serve as a free information community center for Sun Cluster people everywhere. It'll be a place where Sun Cluster fanatics and users alike can share and find unique and useful information that isn't found anywhere else in the world.

And it'll be a place where we can all have a good time.

Information you can find right now on the Sun Cluster Wiki includes:

  • Announcements about Sun Cluster and related software
  • Frequently answered questions
  • How to Use the Sun Cluster Wiki
  • Release Notes Information, including Release Notes for future releases and past and present Release Notes Supplements
  • Pages that re-organize official Sun Cluster 3.2 documentation (on docs.sun.com and elsewhere) into handy crib sheets
  • Sun Alerts that affect Sun Cluster
  • Voodoo Documentation (the “documentation” you've handwritten on Post-it® Notes stuck to your console's monitor)

Information that you will very soon find on the Sun Cluster Wiki includes:

  • Hardware qualifications
  • Patches that affect Sun Cluster
  • Information about N1 Service Provisioning System (SPS) plug-ins for Sun Cluster
  • Anything else you want to contribute

Please let me know what you'd like to see on the Sun Cluster Wiki. I'd like to hear from you.

Brian.Keith@sun.com
Sun Cluster Wiki administrator

Oct
19

Sol Barnes

Say hello to Soloman “Sol” Barnes. Yes, he's a little rough around the corners. I dreamt him up when I was in high school. Well, maybe junior high school. Anyway, back in the day. The biggest irony about him is that I created him back in the “tree hugging” Hippie Days. Or just after the “tree hugging” Hippie Days, I guess.

Only I'd create a Revolutionary War cartoon character at the height of the Hippie Days. Everyone else was worrying about the future, the war--or the antiwar. All I cared about was the past and going back. Figures.

Anyway, he'll be assisting me in making my point from now on.

Sol's motto is “those who forget history are doomed to repeat it,” or something like that. I think a Greek historian said that once, but I can't remember who. I guess I'm doomed to repeat the quote since I can't remember the guy's name.

Anyway, I've decided to resurrect Sol and give him a 21st century sensibility, but leave him in the 18th. I'm his opposite, I guess. I live in the 21st century, but have an 18th century sensibility. Or so it seems sometimes.

But, at least we share a single common belief: sometimes things don't make sense. Especially technological things. In fact, most technological things don't make any sense at all.

So, welcome Sol. I look forward to your making periodic appearances here in the future. And yes, your nose is almost as long as your face.

Sep
17

I've been using sed, the “stream” or non-interactive text editor, since 1985. I remember reading, re-reading, and poring over the only complete documentation about it I could find at the time, entitled “SED - A Non-Interactive Text Editor,” dated August 15, 1978, by Lee E. McMahon, of Bell Laboratories in Murray Hill, New Jersey. I still have this terse, 10-page document, in my decades-old, six inch thick Unix binder. The edges of the paper are worn, smooth, “boofy,” from constant thumbing and flipping.

I'm sure this document was originally composed in troff.

sed is a technical writer's best friend, in my opinion. I remember a developer with whom I worked saying to me about the same time I was discovering this utility “sed and nroff are programming for technical writers.” I agree with him.

Sometimes I think I spend too much time writing sed scripts and not enough time writing documentation. On second thought, my sed scripts are real timesavers. I've used sed to automate most of the mundane, time sucking tasks that reduce my effectiveness as a writer. Shouldn't I be spending more time writing, and less time searching, gleaning, organizing, verifying, rechecking, and printing or outputting documentation?

I've written sed scripts that convert SGML into wiki markup, ASCII text (essentially nroff terminal output) into SGML, Interleaf ASCII (which looks eerily like HTML or SGML tags) to nroff files, and vice versa. I've also written sed scripts that globally replaced the year of copyright in a set of files, updated chapter and section titles, renamed products (which happens much too frequently at Sun), and the touch date in man pages.

One of the very first sed scripts I wrote was a Bourne shell script that removed comments from a troff macro definition file and dumped the output into a file that the user specified. It was a very basic sed script:

sed -e '/^\.\\\"/d
s/\\\" *-.*/\\\"/g' $i >$MACRODIR/tmac.$i

I dont' recall exactly why I wrote this script, actually. Nor do I recall why I didn't also completely erase the nroff comment indicator (\\").

Oh well.

My biggest pet peeve about sed is the way in which it handles lines that you modify with the N, D, P, H, h, G, g (get), and x functions. This pet peeve might be due to my misunderstanding of how sed works, but I strongly suspect that it has more to do with sed's limitations. Tell me if I'm wrong, but do lines that one modifies with these functions essentially die? In other words, if I modify a line with one of these functions, can I no longer further modify that modified line? I think not. It's dead. Like the wicked witch, I killed it.

Consequently, I'm forced to close that call to sed and pipe the output to another call to sed to process the line I just modified. Gah! I hate 'dat! Is this problem due to the fact that, in these cases, sed swaps the contents of the pattern space with the hold space? Is that the culprit here? Does anyone know?

One solution that occurred to me very recently is that I might be able to use the -e option to obviate my having to call sed more than once to modify the same line more than once. But, I haven't had the opportunity to test this hypothesis.

In any event, in scripts where I'd prefer to make a single call to sed to reduce my processing overhead, I've been forced to make multiple calls to sed to get the output I want. Annoying! Annoying!

Another pet peeve about sed I have—and again this pet peeve might be due again to my misunderstanding about how sed works—is that sed doesn't find ranges on the same line. For example, when I specify the following search pattern:

/pattern1/,/pattern2/
sed matches the following lines in a file:

This line contains pattern1.
This line contains pattern2.

But not the following line:

This line contains pattern1. This line also contains pattern2.

Gah! I hate 'dat, too!

In this situation, I'm forced to use sed's more urbane and sophisticated cousin awk, which really sucks up system resources, but does the deed nicely nonetheless.

In the 22 years that I've been using sed I've come across some handy sed functions I'd like to share. One of my most favorite comes in very handy when converting SGML, HTML, or XML tags to some other format. One minor feature of sed to keep in mind when specifying a wildcard (or asterisk) in a substitute command is that sed matches all patterns on a line up to the very last one. In other words, if sed finds two or more of the same patterns for which it searches on a line, sed matches all of those instances up to the last one. So, say you have the following contents in a text file:

<sect1 id="SECTION-1"><title>Revision Record</title>
<para>The following table lists the <em>new</em> information in this chapter.</para>
And say that you want to remove all instances of SGML tags in a file, you specify the following substitute function:
s/<.*>//g
Unfortunately, instead of removing all instances of SGML tags in your file, sed instead overzealously removes everything else as well, tossing every line of content shown in the preceding example. That's because sed matches all instances of “>” up to the very last one on the line.

The solution is the following substitute function:

s/<[^>]*>//g
This handy little function removes only the contents between tags. So, when you run the preceding substitute function on the content shown in the example above, you get this:
Revision Record
The following table lists the new information in this chapter.

As Borat says, “Nice!”

Another handy function consists of the hold and get functions. They come in handy when you need to concatenate content onto a single line, as follows:

<para>This is some text on
multiple lines that I'd 
like to concatenate onto one line</para>
You can transform the preceding lines into a single line with the following set of functions:
/<para/,/</para/ {
   /<para/h
   /<para/!H
   /</para/!d
   /</para/g
   s/>\n/>/g
   s/\n</</g
   s/ *\n/ /g
}
The output looks something like this:
<para>This is some text on multiple lines that I'd like to concatenate onto one line</para>
I'll provide more handy functions when I have the opportunity. Right now, I have to get back to working on Sun Cluster 3.2 Update 1 documentation.

Jul
31

Does this sound bad to you: Someone started all this, and I'm gonna find them.

How about this: If anybody heard this story, they'd probably say it was untrue.

Or how about this: Every dentist and doctor in the city will be asked to donate some of their time to the free clinic.

More often, I'm hearing a plural pronoun used with a singular antecedent. Strictly speaking, or according to strict grammarians anyway, the three preceding sentences should read:

Someone started all this, and I'm gonna find him.

If anybody heard this story, he'd probably say it was untrue.

Every dentist and doctor in the city will be asked to donate some of his time to the free clinic.

You can guess why everyone is using a plural pronoun with a singular antecedent: they don't want to sound politically incorrect, or worse, they don't want to sound pedantic, or even worse, they don't want to sound pedantic and they're just plain lazy.

If you "correctly" use "him" only, you sound politically incorrect (or lazy), as in, every dentist and doctor in the city will be asked to donate some of his time to the free clinic. That's the custom anyway. Right or wrong.

If you use "him or her", you sound stuffy, pedantic, as in every dentist and doctor in the city will be asked to donate some of his or her time to the free clinic.

If you use "her" only, as in every dentist and doctor in the city will be asked to donate some of her time to the free clinic, you sound like Betty Friedan or maybe Divine.

What we're all trying to do is come up with a neutral pronoun that doesn't carry a lot of unintended social or political baggage. Short of creating a whole new pronoun, we appear to be bestowing the plural pronoun here with some verbal heft. If the trend continues, and I think it will, linguistic prescriptivists and descriptivists might find themselves slamming into each other on the same verbal track sometime soon.

Jul
13

It was a long time coming, but the docs.sun.com Engineering Team recently implemented--in my opinion--awesome leaps in performance to docs.sun.com. They point out that users should see:

  1. A performance improvement: our testing has shown performance improvements that will greatly benefit users who have been frustrated with the time it takes to browse to documents on the site.

  2. Improved reliability and sustainability: these improvements give docs.sun.com a platform on which we can build for the future. The site is now hosted in a stable environment and will be more reliable for our customers.

This release is a strong step in the right direction to rebuild the faith of users of docs.sun.com in the site. We look forward to announcing many more improvements over the coming months.

But don't take their word for it. Here's a snapshot of my experience.

In the search box, I typed "network-attached storage devices" and within a second I got spot-on hits, the first two of which were exactly the hits I wanted.

Click to see a full-size image.

docs.sun.com showing search results for the string network-attached storage devices

docs.sun.com has gone from rots to ROCKS!

Try it, you'll like it.

Jun
22

When I was about 13, I asked my mother, an elementary school teacher, why we used the word "were" instead of "was" in the sentence "If I were you, I'd eat your carrots". The verb doesn't agree with the subject, I thought. I couldn't figure it out. My mother wasn't much help either. "I don't know myself," she replied. "It's a rule of grammar. You just need to follow it."

So much for that.

A year or two later, I discovered why. Well, at least I learned the rule of grammar that dictated the usage. Why we need to use it is still a mystery to me.

In any event, it's the subjunctive mood, which we use to express doubt, conditions contrary to fact, wishes, and after the phrases as if and as though.

The subjunctive mood has been dying for decades now, but maybe its time is finally near. More often than not, I'm hearing sentences that don't include the subjunctive, as in, "I wish I was finished with the documentation for Sun Cluster 3.2 Update 1" or "If I was you, I'd punch that twit with the zit on the nose".

My ear almost prefers this usage now. It doesn't make me wince the way it used to, anyway. I suspect that everyone is beginning to accept it as the de facto usage as well. The subjunctive mood used to sound better to my ear, but verb agreement is quickly winning out.

Jun
1

Which product name do you prefer and why?

  • Solaris Cluster
  • Sun Cluster
Tell me what you think!

May
21

Ruined Vain and futile attempts to master the mutability of technology ruin lives. More or less anyway.

Don't get your shorts in a bunch. I'm no card-carrying disciple of Cap'n Ludd. I've talked elsewhere about my desperate need and wish to beef up my technical skills and knowledge, which unfortunately I've let go to hell in a handbasket. No really, I love technology. But just moments after I'd posted the aforementioned blog, it dawned on me just how futile it is to even think about trying to keep up with technology, to constantly revivify my knowledge of and skills in it.

Take, for example, the case of my great, great, great grandfather. Born about 1812, a calico (or block) printer by trade, he became an early victim of the technological age, hopping from Ireland, to England, and finally to America every decade or so looking for a new job in which to produce his handwork, and dying a pauper at the tail-end of the Industrial Revolution.

Friedrich Engels, in his book "The Condition of the Working Class in England," first published in Germany in 1845, pretty much sums up the life story of my great, great, great grandfather:

A great number of operatives are employed in the cotton-
printing establishments of Lancashire, Derbyshire, and
the West of Scotland.  In no branch of English industry
has mechanical ingenuity produced such brilliant results
as here, but in no other has it so crushed the workers.
The application of engraved cylinders driven by
steam-power, and the discovery of a method of printing
four to six colours at once with such cylinders, has as
completely superseded hand-work as did the application
of machinery to the spinning and weaving of cotton, and
these new arrangements in the printing-works have
superseded the hand-workers much more than was the case
in the production of the fabrics.

One man, with the assistance of one child, now does with
a machine the work done formerly by 200 block printers;
a single machine yields 28 yards of printed cloth per
minute.  The calico printers are in a very bad way in
consequence; the shires of Lancaster, Derby, and Chester
produced (according to a petition of the printers to the
House of Commons), in the year 1842, 11,000,000 pieces
of printed cotton goods: of these, 100,000 were printed
by hand exclusively, 900,000 in part with machinery and
in part by hand, and 10,000,000 by machinery alone, with
four to six colours.

As the machinery is chiefly new and undergoes constant
improvement, the number of hand-printers is far too
great for the available quantity of work, and many of
them are therefore starving; the petition puts the
number at one-quarter of the whole, while the rest are
employed but one or two, in the best case three days in
the week, and are ill-paid.  Leach asserts of one
print-works (Deeply Dale, near Bury, in Lancashire),
that the hand-printers did not earn on an average more
than five shillings, though lie knows that the
machine-printers were pretty well paid.

The mutability of technology ruined and virtually buried my great, great, great grandfather. He tried to keep up, but the Industrial Revolution peddled faster. He lost. It won. Why?

Displaced One Saturday back in the early 1970s, my father, a technical writer at Hewlett-Packard's Medical Electronics Division, took me to work, probably to give me a better idea of where he disappeared to every day. After he sat down and propped his feet up on his desk, he pulled out a red Bic pen, a pad of graph paper, and commenced to write his manual in longhand.

Technical writers didn't need no stinkin' desktop publishing back in 1971! But that's my point, of course. My father was old school. He used pens, paper, and rulers to write documents. And even though he could interpret heavy-duty electronics schematics on the dime and scribble terse and precise technical prose with facile skill, he nonetheless smacked into a steep learning curve and struggled when it came time to produce all that material, by himself, on a computer. Up to that time, the staff secretary had handled all that "production work". In the end, he found himself displaced from a career by more computer-literate, more technically savvy and agile youngsters. He lost. They won. Why?

Although not nearly as severe and catastrophic as my predecessors, my experience hasn't been that much better. Take, for example, some of the skills and knowledge I've developed over the course of my life:

  1. Any of you youngsters remember COBOL? At my college advisor's suggestion, I spent a semester learning that.

  2. How about Pascal? I spent an entire academic year learning that.

  3. How about RUNOFF, roff, nroff, tbl, troff macros, pic, and eqn? I spent almost five years teaching myself everything there was to know about these Unix publishing tools. And for what? Know anyone who still uses RUNOFF, tbl, pic, or eqn?

  4. How about plain old vanilla, we-don't-need-no-stinkin'-CSS HTML 3.2? I spent months teaching myself that. Only to discover shortly thereafter that I really needed to know more about CSS too, to really take full advantage of the Web's capabilities. Or so they said.

You get my point.

When I start to thinking that I really need to get going and revivify my technical skills, the ghosts of my ancestors loom up in my head and remind me: in the big scheme of things, does it really matter? Irrelevant Five years from now something new, something better—which I'll also have to learn about once again—will replace it. Guaranteed.

My great, great, great grandfather, my father, and I all invested years of our lives, decades even, in trying to learn—with varying success—all we could about our respective, constantly-changing technologies, only to have each one invariably displaced by yet another newer, or faster, or hotter technology.

My great, great, great grandfather was ruined and died a pauper because of changing technology. My father's career was cut short bacause of changing technology. And I'm at risk of becoming irrelevant because of changing technology.

Why?

Because knowledge is power: it's how the socially meek tame the technologically weak.

During the Industrial Revolution, the gearheads—the Arkwrights, Cartwrights, and Grimshaws—who owned the means of production—the steam engines, the spinning jennies, and the factories—maintained power over the workers by constantly changing the technology to decrease their costs. Because they could. In response, the workers, like my great, great, great grandfather, futilely tried to keep up, but failed. Miserably.

The '60's flower power generation, which ripened into the '80's yuppie nerd generation—e.g., The Two Steves—trampled the older generation—e.g., my father—by doing pretty much the same thing, only this time more subtly and surreptitiously with the "personal computer".

The Google™ geeks have similarly grabbed us by the ghoulies and seduced and beguiled us into believing that the "elegant algorithm"—e.g., PageRank™—is the technology of the future, the ultimate moneymaker that'll solve all our financial woes, well, the woes of traditional "bricks and mortar" companies anyway. Companies who produce, embrace, and promote the elegant algorithm certainly aren't suffering nowadays.

It all boils down to a lack of cojones in my opinion. It's why the technological gearheads of the Industrial Revolution exploited the technological airheads of the time, the handwork artisans like my great, great, great grandfather. It's why the 60's flower power pansies turned 80's yuppie herds of nerds exploited the computer-illiterate of that generation, the white-collar workers like my father. And it's why today's gaggles of Google geeks are attempting to foist the elegant algorithm on us all. They're overcompensating.

So why bother? Why bother investing, yet again, more time and effort in learning the latest and hottest new technologies? Why bother trying to revivify my technical knowledge and skills? Will Google be replaced? Yes. Will Java be replaced? Yes. Will Web 2.0 be replaced? Yes. No doubt by, heh heh, Web 3.0. And sometime in the future, I'm going to have to do it all over again. And again. And again. Until I die.

I'll always have second thoughts, but the truth is that I love technology. Always and forever. That's why I bother, I guess. Put it on my gravestone.

Apr
23

I've always been fascinated by regional differences in American English dialectal pronunciations. For example, because I grew up in Massachusetts and have managed to retain a few dialectal pronunciations unique to that region, I pronounce these three words differently:

Somewhere around the border of New York state and western New England, native speakers begin to blur their pronunciation of these three words, singly pronouncing them as I pronounce the word Mary.

I can almost now determine a native speaker's place of origin just by the way he or she pronounces these three little words. Well, almost any native speaker north of Virginia anyway.

A linguistic trend I've also been hearing much more of lately is the replacing of adverbs with adjectives, as in:

  • Run it by me, slow and easy.
  • He was hurt real bad.
  • Hold tight if you're standing on the train.
  • The sun is shining bright today!

Adverbs are not long for this world, I'm afraid. It's getting to the point now that my ear almost prefers adjectives over adverbs. How about yours?

Apr
4

Don't let this happen to you!

I'd like to thank Zack at Google for giving me a boot in the pants last September. That's when I interviewed with him by telephone.

I thought I'd relate what preceded the interview and what Zack and I discussed, not only because you might find it enlightening, but because it might also help you avoid making the same mistakes I did.

I applied for Google's Technical Writer, Operations - Santa Monica position, which I found on their web site. I forwarded my resume to a friend of a friend who works at Google, who subsequently became my de facto sponsor.

Four days later, Google contacted me by email and requested three soft copy writing samples, "preferably work that was [my] sole responsibility". For each sample I submitted, they asked that I briefly answer the following questions:

  1. What was your involvement with respect to this document?
    • New writing
    • Revision
    • Updating an existing document
    • Editing written information from engineers
  2. Was the document edited?
  3. If you revised or co-authored this document, which portions are yours?
A couple days later, I sent them three writing samples, as requested, plus a couple of freebies. Yeah, I know, I didn't exactly follow their directions, but the freebies were my personal favorites. And, hey, just because I write directions, doesn't mean I always follow them, right?

I've always been curious about how Google produces its documentation, internally and externally. Not surprisingly, Google's documentation is largely HTML-based. Some writers use CSS-based templates. Other writers, those who produce external documentation, use FrameMaker. Many writers use Adobe Acrobat to produce PDF, Visio for graphics, and Dreamweaver to edit HTML, although some writers choose to get their hands dirty and produce raw HTML by hand. Platforms include Linux, Mac OS, and Windows. The documentation process at Google, in terms of tools and structure, is very informal.

Anyway, just over two weeks after I submitted my writing samples, Google contacted me by email requesting a 45-minute telephone interview. Two weeks after that I was on the phone talking to Zack.

I think that the interview started off nicely, but then just as quickly descended to hell in a handbasket.

We started off by discussing my "certification" from Loyola Marymount University here in Los Angeles, from which I had received a certificate in management.

"Certification", I asked?

"Yeah, at Loyola", he replied. "What did you learn there?"

"Oh, right". Now I understood what he was talking about.

Why he had latched onto this particular bit from my resume, I don't know. I mean, in my opinion, it has to be the most uninteresting part of my academic career. But okay. I described what I learned there, both academically and personally.

I believe we next talked about the UNIX shell scripts I've written. Now, the thing to know here is that when it comes to UNIX shell scripts, I'm completely self taught. I learned everything I know from a handful of sources:

  • Stephen Bourne's The UNIX System V Environment
  • Brian Kernighan's and Rob Pike's The UNIX Programming Environment
  • Alfred Aho's, Brian Kernighan's, and Peter Weinberger's The AWK Programming Language

The rest includes brute force trial and error, hundreds of man pages, and Lee McMahon's white paper SED - A Non-interactive Text Editor (written during the golden days of UNIX, by the way, in 1978, which contains the classic Kublai Khan example--awesome!).

This discussion lead, in turn--or downturn, depending on how you look at it--to a discussion of "file globbing".

When Zack mentioned the term, I hadn't a clue what he was talking about. I suspected that I knew, having heard the term used in relation to Perl, but I wasn't sure, and that was my undoing. I began to panic. Twitchy, convulsive images of me at my keyboard, nervously typing "file globbing" into Google's search window crashed and burned in my mind. No time for that now.

"Um, what do you mean by file globbing?", I asked timorously.

"Don't worry about that now", he replied, "I'll explain later". Damn!

Oh, I'm sorry! Thanks for playing!

Stop now, I thought. Just shoot me. But, no, I kept going.

Fool.

Zack: 1, Brian: 0.

Next, he asked me what the option was to list a directory recursively.

"Dash r", I replied, half confidently.

"Upper or lowercase?", he asked.

He knows the answer, I realized. I didn't, unfortunately.

"Um, lower?", I replied.

Oh, I'm sorry! Thanks for playing!

Fifty-fifty chance I'd get it right. And, of course, I got it wrong:


User Commands                                               ls(1)

NAME
     ls - list contents of directory

SYNOPSIS
     /usr/bin/ls [-aAbcCdeEfFghHilLmnopqrRstux1@] [file...]

     /usr/xpg4/bin/ls [-aAbcCdeEfFghHilLmnopqrRstux1@] [file...]

     /usr/xpg6/bin/ls [-aAbcCdeEfFghHilLmnopqrRstux1@] [file...]

DESCRIPTION
     For each file that is a directory, ls lists the contents  of
     the  directory.  For  each file that is an ordinary file, ls
     repeats its name and any other  information  requested.  The
     output is sorted alphabetically by default. When no argument
     is given, the current  directory  is  listed.  When  several
     arguments   are   given,  the  arguments  are  first  sorted
     appropriately, but file arguments appear before  directories
     and their contents.
/-R
...skipping
     -R       Recursively lists subdirectories encountered.

Zack: 2, Brian: 0.

But wait, there's more!

Zack then asked me the years in which I received my educational degrees.

Oh, I'm sorry! Thanks for playing!

Class, does anyone know why Brian doesn't list his years of graduation on his resume? Anyone? Brian? Zack? Either of you? Well, Zack, let me explain, because I know that someone most likely other than yourself asked you to get the answer to that question: it's because prospective employers can immediately estimate my age (and instantly disqualify me from contention).

So, of course I answered the question, knowing full well its implications. And I'm sure that Zack wrote it down for the person who asked him to ask, too.

Zack: 2, Brian: 1.

By now, I knew I didn't have a chance in hell of getting a job at Google. Why bother? I thought.

Next up, Zach asked me how I'd go about documenting a WiFi system. Probably because he had some involvment or experience documenting one elsewhere. Why I answered the way I did, I don't know. But I talked about interviewing the engineers, looking at specifications, and reviewing design documents. Egads! What was I thinking? That's so old school.

About an hour or so after I hung up the phone, I realized that the answer I should have given, and the answer I sincerely would have given had I thought about it more carefully, is this: I'd join in and help the engineers install, configure, and test the network myself. How else to better document something? Gah!

Zack: 3, Brian: 1.

Finally, it was my turn to ask some questions. At this point, I was hoping that I could somehow salvage the interview. But, hope springs eternal, eh? First, I asked Zack if he had any opinion about the question I'd posed on my writing samples page:


Do you agree that I needed to document Web Start's graphical user interface 
in Using Solaris Web Start, or is it self-documenting?

I was sincerely interested in Zack's answer because I had seriously wrestled with this question when I was writing the documentation for Solaris 8. The thing was, Zack said simply that he hadn't an opinion.

So much for that tack.

Next, I asked him about the ratio of writers to engineers at Google. He told me that Google employs about 40 writers total, all of whom are spread around the globe. He added that writers on the teams keep in touch with each other in weekly video conferences. Cool.

Finally, I asked him whether Google's "Twenty percent time" policy for engineers also applied to writers, and if it did, did he have a twenty percent time project? You'd think I'd just impugned his professional reputation by his answer. He gently chastised me, stating that these kinds of projects weren't personal projects. I knew that. I'd seen Google's twenty percent time policy on their web site and was curious (and excited) about it, actually:


Google engineers all have "20 percent time" in which they're free 
to pursue projects they're passionate about. This freedom has already 
produced Google News, Google Suggest, AdSense for Content, and Orkut products 
which might otherwise have taken an entire start-up to launch.

Once I explained that I understood that these kinds of projects weren't personal projects, he replied that, "No, I'm happy with what I'm doing."

Oh well. I guess I had assumed--incorrectly apparently--that this policy was Google's way of promoting new ideas and products. Silly me.

Anyway, just shy of a week later, I heard from Google's recruiter:

We would like to thank you for your interest in Google and taking the time
to send in writing samples and talk to us. After carefully reviewing your
experience and qualifications, we have determined that there is not a fit
for a 'Technical Writer, Operations - Santa Monica' position.

Thanks again for considering Google. We wish you well in your endeavors.

I really wanted to work for Google. I was crushed, but, honestly, not surprised.

Oh well.

But in the end, it all worked out. Sun asked me to come back. I did and I'm happy to be back. And considering it now, I believe I'm happier here now than I would have been at Google. I just got a negative vibe from my interview, to be honest.

The most important lesson I learned from my interview (and others) is: I need desperately to improve my technical skills, which I've let lay fallow for much too long.

Thank you, Zack, for helping me to realize that. I'm in the process of improving them. Formally.

There's something to be said for formal training versus self-teaching. I didn't know what file globbing was because, even though I was intimately familiar with the concept and the operation, I hadn't a clue about what everyone else called it. I call it wildcarding, er, I used to call it wildcarding. Now I call it file globbing. Heh heh.

Why didn't I get a call back from Google? I think it was a combination of factors really, including my not knowing the aforementioned terminology and command syntax, but most of all, my lame response to Zack's question about how I'd document a WiFi system. Knowing Google, though, it's probably because my birthdate doesn't appear soon enough after the decimal point in pi.

Mar
21

I just realized something.

Google's Larry Page and Heroes' Syler: separated at birth?

You be the judge!

Larry Page, Google Zachary Quinto, Syler of NBC's Heroes

Mar
5

Everyone loves to complain. Especially about docs.sun.com. People inside and outside Sun complain that it's difficult to find information about a topic, mostly because of problems with its search engine. So they say, anyway.

no dumping sign But that's not the problem, I think.

What is?

We dump product brands.

Too frequently.

With too much alacrity.

And then we replace them with "new and improved" brands. How are our customers supposed to keep up with that?

I went on a job interview last October (another topic, another blog). When I bragged to my interviewer, once a Solaris system administrator, that I'd formerly worked at Sun as a technical writer, he launched into a little dervish about Solaris documentation. All of a sudden I didn't feel so good. I live for moments like this, you know?

"How am I supposed to know that Sun calls its volume manager DiskSuite?" he asked. "And how am I supposed to find documentation for it if I don't know what it's called? Sun assumes its customers know the names of their products. You know what? They don't!"

This got me to thinking.

Was he right?

See for yourself. Enter "volume manager" on docs.sun.com, and this is what you get:

volume manager search string on docs.sun.com

Was he right? Appears so. I don't see any hits for DiskSuite. Do you?

Hold on though. The truth is, I do.

Sort of.

Sun calls DiskSuite Solaris Volume Manager now. Since Solaris 9.

If you wade past the initial entries for Sun Cluster (yet another topic for another blog), you see entries for Solaris Volume Manager, aka DiskSuite. Of course I know that because I'm the one who has to change all the old brand references in the documentation.

But how's my unhappy camper supposed to know that?

This question got me to thinking even more.

Why does Sun dump product brands so frequently? I mean, here's just a sample:

iPlanet [whatever]Sun Open Net Environment (ONE) [whatever]Sun Java System [whatever]
SunStorageSun StorageTek
Patch ManagerSun Update ConnectionSolaris Connection
Forte for Java 4Sun Open Net Environment (ONE) Studio 4Sun Java System Studio 4
Web Start FlashSolaris Flash
Online: DiskSuiteSolstice DiskSuiteSolaris Volume Manager
SunPlex ManagerSun ClusterSun Java System ClusterSolaris Cluster
N1 Grid ContainersSolaris Containers

I'm sure you can think of a few yourself.

Compare that with a few other brands, brands that haven't changed--as far as I know anyway:

  • Microsoft Word
  • Microsoft PowerPoint
  • Microsoft Excel
  • Microsoft Outlook
  • Microsoft Office
  • Norton Antivirus (Symantec even kept the brand after it bought Norton!)
  • Norton PartitionMagic
  • Symantec pcAnywhere
  • Adobe Acrobat
  • Adobe Premiere
  • Adobe Illustrator
  • Adobe Photoshop
  • Adobe FrameMaker (like Symantec, Adobe also decided to keep the brand after buying Frame)

What gives? Why do we feel the urge to change our product brands so often, if at all?

Are we that insecure?

When I was 15, I went to a carnival that my hometown hosted every year. Along the midway, I discovered the amusement where you have to burst a balloon with a water pistol. You know, the one where you shoot a stream of water into a hole and inflate the balloon?

The thing I remember most about winning the stuffed toy that day is this: I won because, unlike everybody else, I focused only on shooting the water into the hole that inflated the balloon. Everyone else was focused on everyone else. (Well okay, to know that, I had to have looked, but I did that only once, at the beginning.)

That's what I see happening here. We're worrying too much about what our competitors are doing or not doing, when they're doing it or when they're not doing it. We're responding. Not leading.

That's why you see things like "This Computer" and  Documents  on the Solaris 10 desktop. I mean, come on. Really.

Yeah, the Java and Solaris brands are probably our most popular brands right now. But do we have to forsake all our other just-as-worthy brand names for their sake every time some competitor appears to scrape away a subfraction of a percentage point from our market share?

Well, do we?

But who am I to ponder these kinds of questions? In the big corporate schema: nobody really. I just work here.

Nonetheless, I worry. I worry what customers--or worse--potential customers, feel when they try to find information about Sun Cluster 3.2 on docs.sun.com, and can't, simply because they don't know we've gone and changed its brand to "Solaris Cluster".

All product or service names are the property of their respective owners.

Feb
22

In this space, in the future, you'll be seeing more about my thoughts on solaris and sun cluster documentation, as well as general documentation issues. For now, I just want to make sure that my blog is working as I'd like it to.

Pick a Blog Date

Search

Play Tag

11g 2/08 3.2 adjectives adverbs antecedents barnes bill brands buyout cluster cobol concepts cousins descriptivists dialect disksuite docs.sun.com documentation domain download edition eqn eric express gates geographic global google grammar grooming guest heroes interview java job jonathan kissing larry layoffs ldoms linguistic lx manager massachusetts membership microsystems mood name native nbc new node non-global nroff open oracle page pagerank pascal patch performance plural prescriptivists product pronouns pronunciation quarterly quinto rac regional release reliability results runoff schmidt schwartz search sed sol solaris solaris8 solaris9 source speaker subjunctive sun syler technical technology television trends troff virginia wiki writer writing york zachary zone

Feed Me

See Also

Navigate