The Yonderist

All those who wander are not lost.

Subversion Notes

Here’s what a checkout request on the command line looks like:

$ svn checkout http://svn.example.com/repos/calc
A calc/Makefile 
A calc/integer.c 
A calc/button.c 
Checked out revision 56.

SSH Problems

Planet Argon, ssh, authorized_keys, and TextMate happiness

Been trying to get ssh-based password-free login going at Planet Argon (more on the transfer from DreamNightmareHost to Planet Argon in a future post). A couple of back-and-forths with the admins over there. Both they and this thread insist that ~/.ssh/authorized_keys needs to be chmoded to 600. This isn’t right. It only needs 644.

But what the above thread pointed me to is that ~/ needs to be chmoded to 750. Voila! Now I can use Subversion, directly inside the best text editor on the Mac.

Let’s just hope there aren’t any groups that need to write to my home directory.

Problems

Toulouse:~ jjl$ ssh -v
OpenSSH_4.5p1, OpenSSL 0.9.7l 28 Sep 2006
usage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]
       [-D [bind_address:]port] [-e escape_char] [-F configfile]
       [-i identity_file] [-L [bind_address:]port:host:hostport]
       [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
       [-R [bind_address:]port:host:hostport] [-S ctl_path]
       [-w local_tun[:remote_tun]] [user@]hostname [command]

Following Allan’s Advice

Your identification has been saved in /Users/jjl/.ssh/id_dsa. Your public key has been saved in /Users/jjl/.ssh/id_dsa.pub. The key fingerprint is:

Shakespeare was the pass-phrase used.

MacFusion

Set up on 2007-04-28. Used SSH (which has the wild woman password by the way). Mounted like a charm. Now, let’s see what’s in there and how well this works.

SVN Checkout

If you are using bash you should put this in your ~/.bash_profile (or a similar file which gets sourced when you open a terminal):

export LC_CTYPE=en_US.UTF-8

In the Era of the Meta-Platform, Content Is King

The Story Everyone Tells

What we are in the midst of, but everyone already knows, is that the computer is displacing all other means of communication and distribution of content. Already the race for IP TV, as it is sometimes called, is on. IP stands for “internet protocol” and it acknowledges that television programming will no longer be delivered in analog waves but in digital bits. Almost all consumers already are getting their television pictures in bits; they just don’t know it. Cable companies may charge more for “digital” packages but the fact of the matter is that even basic cable programming is already largely distributed digitally and then converted to analog at the node as opposed to in your house. Take a close look at your television picture some time, if you have cable, and look at a smoke-filled or dark scene, you will discover a range of digital artifacts that will reveal to you that you aren’t getting a full analog signal but merely a digital signal resolved “up” to something like analog. The switch to digital equipment allows cable companies to push four digital channels in the same bandwidth of one analog. To do so, they have to degrade the picture.

And while radio stations still exist — and they will continue to exist in the scenario I unfold here, but in a lesser, or at least different, capacity — I think everyone would agree that you see few people listening to radios outside of certain contexts. The radio still plays in the car and in shops and other work situations, but when you see people listening to music individually, they are usually porting some sort of MP3 player. Most new cars now come either with auxiliary ports or iPod docks built into their radios.

While we’re in the car, let’s not forget the GPS aids in there, along with the DVD players. When I first wrote the proposal for the LCVC project four years ago, I predicted we would see a convergence of those two devices, and I think that’s already begun to happen. It won’t be long before you’ll not only get live updates of traffic additions to your in-car navigation / entertainment device, but other forms of content streamed to it as well. That device will be simply another computer, one that is location aware — as the iPhone G3 already is.

All these devices will, of course, function by being “on the net.” That means they will be delivering on the great promise that the internet made — at least that was the intent of the people who worked to create the network and so far it has largely held to be true — and that is to put the means of production into a vastly larger number of people’s hands than ever before. The communications industries have their array of catch words for this phenomena, “one-to-one advertizing” or “niche marketing” or “focused marketing” or even “the long tail”, but they are also just as worried about what is, in effect, P2P, because the reality is: they don’t own the network. They can’t, and that boggles and maddens them.

Now, I should take a moment to say what I mean by “communications industries.” For me, these are the usual suspects of radio and television stations and cable channels, the movie studios (which produce content in the sense of financing it but don’t really make anything themselves) and the record labels. It also includes all the support industries that have sprung up to service the financial conduit that make these providers go: advertizing, marketing, etc. Universities train workers for these sectors and lump their job-training programs under the banner of “communications” — sometimes breaking out a department of “mass communications” — and thus it’s just easier for me to call the whole lot “communications industries.”

Now, having defined some terms, let’s get back to the convergence, because it really changes a lot.

(It doesn’t change “everything” as some technologists are fond of proclaiming, and thus I can now further qualify the qualification I made above about how I am not calling for the demise of the communications industries, and the university departments, or other personnel, that serve them.)

Perhaps the best way to describe what is happening is to look no further than the RIAA’s current campaign to make web-based radio stations pay more than broadcast radio stations for the distribution of content. (The figure I have heard bandied about is something like double, but I’ll leave that to others to argue over.) The recording industry’s argument for why conventional radio stations are getting a better deal is that they drive album sales where network radio stations drive only sales of singles. Immediately, a previous era, and its methods and business models, is revealed quite clearly.

In making that claim the recording industry conveniently leaves out a larger history that would recall a rather long period during which radio stations sold “singles” in the form of fast-playing 45s that contained both the single that made it onto the air as well as the once-infamous “B side” cut which everyone hoped would prove the depth of a musical performer and lead to album sales. The album era thus had the down-side of having these singles, which had to be priced less but of which you could sell a lot, but it had the upside that only the record companies could produce them. The audio cassette era was short-lived, but it too had its upside — largely the demise of the single — and its downside — the ability of consumers to make their own tapes.

The “mix tape” survived into the compact disk (CD) era, but the single did not, which meant that the recording industry could sharpen its focus on its business model, which was to continue to generate what really were often “one-hit wonders” that really did sell albums that held only one song worth listening to.

(This experience was recently made fresh for me. Because we live in a small house, Yung-Hsing and I have been making a concentrated effort to “purge” stuff we don’t use or don’t need. We recently came across two boxes tucked up in a closet full of audio cassettes, and as I went through them, I realized how much money I had spent for what really came down to only one to three songs per tape that were worth remembering — quite literally, I could only remember one to three songs per tape.)

So the recording industry built albums with a hit or two on them, and the radio stations played those hits which were, in turn, only available through purchase of the album. It was the rare station that played albums, not necessarily because there really was so little on albums but because in order to maximize the total amount of product displayed, they could only play a song per album. They had to maximize the number of albums because they were, after all, a broadcast medium, which meant they had to appeal to the maximum number of individuals who might be listening during any given time period. It’s one thing to listen to three minutes of a song or musician you don’t like, another to know you have to wait half an hour or an hour to hear something different.

And so audio content got packaged into three-minute chunks. That isn’t necessarily how long all songs or tunes want to be, but that’s how long they are. As a folklorist and as someone who attends live music events, I know — as do you — that the three-minute song in no way reflects the nature of jam session nor does it reflect the classic dance tunes that usually have at least an A and B part and can thus be played for as long as people seem to be willing to dance or the musicians are interested in going. The three-minute single has been here for so long that we are all now convinced that that is how long we want to dance.

Much the same goes for television, with important differences of course. Like radio, television sought to parse out its content in order to maximize viewers. Like radio, it did so in part by limiting the length of its content so that it could rotate enough material so as to minimize alienating individual viewers — thus the half-hour comedy and one-hour drama were born. It also had to schedule its programming so that viewers could find it. Since viewers could not choose when to watch a program, it had to come on at a fixed time, which led to things lasting only in terms of one of three time allotments: half hour, one hour, two hours. (So far as I know, it wasn’t until the mini-series came along in the 1970s that the two-hour ceiling was broken.)

Well, what does all this have to do with the content? (And in turn with the humanities?)

Everything. Perhaps most importantly, in the broadcast era, given the nature of the distribution channels and the businesses that evolved to feed those channels, content was structured for the time allotted. (Movies shown on television now carry the warning upfront that they have been edited not only for various content concerns but also “to run in the allotted time.”)

In the post-broadcast, post-channel era, programming doesn’t need to conform to broadcast schedules, or to air play schemes. Instead, programming can conform to the content. As I said in the talk I gave for the Project Bamboo workshop up in Chicago, an audio program or video program can now be as long or as short as it needs to be to deliver its content. I listen to a variety of podcasts. It’s clear which ones are created by old-school broadcasters and which are generated by new-school content creators. A program like “This Week in Technology” always clocks in right at an hour. A program like “The Ruby on Rails Podcast” is 27:51 one week, 40:55 the next, and 1:02:13 another. It is, in short, as long as it needs to be and no longer. There’s no need to fill for air time and there’s no need to cut things short either.

Just as important, this new network (the network of connected computers) doesn’t care what form my content comes in. It can deliver audio and video, but it was delivering texts for far longer and it does just as well at delivering images. And it can deliver all those formats in any mix I as a content creator want or need or I as a content consumer desire. One photo not enough? I can create a slideshow on Flickr or any of a dozen sites. Slideshow pacing too fast? As a consumer, I can decide the pace at which I want to proceed.

Let’s call it “fit.” In this new network era, the era of the meta-platform as I termed it above, form is fitted to content. Content creators are free not only to choose what form works best to deliver a given content but they are equally free to size the form appropriately for the scope of the content. It’s not just audio and video, the staples of radio and television, that are going to enjoy this new paradigm, but think about texts! I think about it in terms of scholarly publishing in the humanities, where the 7500 to 10000 word article has been the mainstay of academic productivity. Yes, there is some argument to be made that expression of certain arguments or ideas require a given amount of room (words), but it is no less a factor that journals are built around publishing x number of articles averaging y number of words.

It frees up a lot.

And it frees up content creators to engage their readers in more ways. There will always be the simple disgorgement of content, but there is also the increasing number of collaborations that are taking place between artists and their audiences. Blog posts and the attached comments are a writer-reader revolution in this regard. Readers not only respond, but their response becomes part of the content for future readers!

All this is already changing the way I teach, and will continue to do so for some time to come. It, too, is freeing, especially in terms of what it means for the classroom. For certain kinds of content, like lectures, which deliver a fixed and mostly static content, I can create it in advance and post it to a course website. Students need only view the material in advance of a class activity — a discussion, a workshop, or something else that I am now free to invent. More importantly, they can stop and start the lecture according to their needs as note-takers or learners. They can watch a lecture again, if they need to. That frees up class time for other forms of collaboration between teacher and student in order not only to maximize the student’s education but the teacher’s own as well.

Other forms of collaboration are also possible. This past spring I began something I am calling, for the time being and for lack of anything catchier, “The Louisiana Survey.” I asked my Louisiana folklore class to go out and record any kind of stories they had heard that met the requirements for being folklore. Instead of telling them that Louisiana folklore consisted of X genres with Y topics, I allowed them not only to figure it out for themselves, but in the process which actually began to map out not what had been the case, as is the case with the printed collections, but what is the case. So, yes, folklorists know the folktale’s time has come and gone, but it turns out that it isn’t just the personal anecdote and the joke that have taken over in terms of what we talk about when we talk to each other but the history as well. I might have been able to guess this after a year or more in the field, but I would also never quite be sure if the fact that I was an university professor wasn’t skewing the results. With twenty-some odd college students out talking with their friends and the family, there is a much better sense not only that the data reflects a broader reality but with so much of it, we can actually begin to quantify the dimensions of that reality.

All of that material, by the way, is publicly available as a Google Code project. It’s at code.google.com/p/louisianasurvey. And it’s in the form of a wiki. My students not only did the research, but they also did the publishing and are now authors of documentation available to the world at large.

A Condensation of Our Results So Far

  • Reality is multi-modal.
  • The content of any representation of a reality should be in the mode that best suits the function, and purpose, of the representation.
  • The networked era frees content creators to pursue the mode of their choosing.

A New Future for the Humanities

Wasn’t that the title of what was the original Star Wars? (Later, we discovered it was Episode 4, which wasn’t so bad when it was the prelude to Episodes 5 and 6 but not so good when it was the results of Episodes 1 and 2.)

So how do the humanities fit into all of this? Why does any of this matter to me as humanist? (Sure, the technologist in me is also interested, but that’s for another time.)

It’s really pretty simple. I think the humanities are really in the best position, and have in some ways long been about, training content creators, and I don’t simply mean in the way that UL currently has it configured as training workers for the “digital media” industries. Framing it in terms of “digital media” and in terms of “industries” reveals that the folks who wrote the university’s vision just aren’t thinking about how much reality of content creation and consumption may very well already be changing.

What we need to be doing is not creating “digital media workers” but creating content specialists who are fully aware of the new platform and its many possibilities.

But I’m not sure I really like the term “aware” because that seems an awful lot like the current computing requirement of our students. They seem aware that computers can do more things than check e-mail and surf the web, but they have no reality of how any of it works. If they have exposure to production using computers, then it’s mostly to use word processors as somewhat glorified typewriters to mash out term papers in the usual fashion.

Don’t get me wrong. I’m a big believer in texts and textual production. I love turning out words — this text is currently at 3000 words after all, but it troubles me when I discuss hypertext markup and students have no idea what I’m talking about. Hypertext markup. It doesn’t get more rudimentary than that, and yet our students, juniors and seniors, have no idea what it looks like, let alone how to produce it.

Which is another way to say that my vision for humanities becoming the new content specialists is predicated that the larger goal of universities is going to make sure that students have a firm grasp of the foundations of the networked world in which they live. They are going to need to know at least the core concepts and practices of acronyms like IP/TCP, HTML, and SQL as well as the technologies behind DRM and the technologies that implement it like HDMI.

And it goes without saying that I think humanities faculties are going to have to get themselves versed in these things as well. All of these things are involved not only in the production, distribution, and consumption of ideas but the latter are at the heart of emergent intellectual property regimes, which will probably get worse before they get better.

What will humanities faculty being doing in their classrooms? Well, they will probably be discussing many of the same things they always have. Human nature remains as diverse and as consistent as ever. Extraordinary representations of it will continue to seize our imaginations, and examination of those representations will continue to be one way that we encourage students to examine all representations as well as to create their own representations.

That’s the central engine that has always driven the humanities.

But we are in, or, for universities like UL which are not quite there yet, emerging into a universe where the kinds of texts that we examine and produce are far more varied. More importantly, some texts which were beyond us because of the technologies involved — e.g., film — are now within our reach not only as consumers but also as producers.

We will, in short, need to be versed in a lot more media. We will also, however, be free to find those forms, as well as those contents, with which we are most proficient. Content best determines form, but that is in constant dialogue with the producer who will have his/her preferences and proclivities. (Some of us write better than we play music or frame images or edit videos.)

And, I hope, humanities faculty will encourage, if not require, their students to discover for themselves their preferences and their proclivities. And now, with form freed, so can our preferences and proclivities for content. Thoreau once urged his readers to “gnaw your own bone.” I like the way Annie Dillard puts it: each of us has within us that one thing we were put on this earth to give life to. As a folklorist, I am open to the fact that for some this will be a crawfish boat or side plow. For others this will be a particular dish or a quilt. And for others it will be a story or a way of telling jokes. That is, folk culture has long had this openness to diversity, to everyone within a community finding their own excellence and pursuing it.

It looks like we might be on the verge of being able to do this on a larger scale, and that’s terribly exciting.

I’ll leave for another time the program I think humanists need to pursue to get there, but I think I’ve begun to paint the bigger picture as I see it for you. I’ll be discussing some of this when I go to Chicago for the Project Bamboo workshop in a few weeks.

Login to Console

console still works for me in 10.5.2; it’s just that there’s a log message printed over the “login:” prompt so you can’t see it (but it is there). For those who don’t know about >console, basically at the login window you enter >console as the username, with no password, and then loginwindow will exit and you get a text console. If your login window is set to show a list of users, hit the up or down arrow key to select an item in the list and then press option-shift-return. Then you can type in >console. At the login prompt (obscured by the log messages), type your username (short version), hit Return, then type your password and hit Return again.

More New Language

Goo pist à means “please wipe your bottom.”

ReST Primer


A ReStructuredText Primer
=========================

:Author: Richard Jones
:Version: $Revision: 4350 $
:Copyright: This document has been placed in the public domain.

.. contents::

The text below contains links that look like "(quickref__)".  These
are relative links that point to the `Quick reStructuredText`_ user
reference.  If these links don't work, please refer to the `master
quick reference`_ document.

__
.. _Quick reStructuredText: quickref.html
.. _master quick reference:
   http://docutils.sourceforge.net/docs/user/rst/quickref.html

Structure
---------

From the outset, let me say that "Structured Text" is probably a bit
of a misnomer.  It's more like "Relaxed Text" that uses certain
consistent patterns.  These patterns are interpreted by a HTML
converter to produce "Very Structured Text" that can be used by a web
browser.

The most basic pattern recognised is a **paragraph** (quickref__).
That's a chunk of text that is separated by blank lines (one is
enough).  Paragraphs must have the same indentation -- that is, line
up at their left edge.  Paragraphs that start indented will result in
indented quote paragraphs. For example::

  This is a paragraph.  It's quite
  short.

     This paragraph will result in an indented block of
     text, typically used for quoting other text.

  This is another one.

Results in:

  This is a paragraph.  It's quite
  short.

     This paragraph will result in an indented block of
     text, typically used for quoting other text.

  This is another one.

__ quickref.html#paragraphs

Text styles
-----------

(quickref__)

__ quickref.html#inline-markup

Inside paragraphs and other bodies of text, you may additionally mark
text for *italics* with "``*italics*``" or **bold** with
"``**bold**``".

If you want something to appear as a fixed-space literal, use
"````double back-quotes````".  Note that no further fiddling is done
inside the double back-quotes -- so asterisks "``*``" etc. are left
alone.

If you find that you want to use one of the "special" characters in
text, it will generally be OK -- reStructuredText is pretty smart.
For example, this * asterisk is handled just fine.  If you actually
want text \*surrounded by asterisks* to **not** be italicised, then
you need to indicate that the asterisk is not special.  You do this by
placing a backslash just before it, like so "``\*``" (quickref__), or
by enclosing it in double back-quotes (inline literals), like this::

    ``\*``

__ quickref.html#escaping

Lists
-----

Lists of items come in three main flavours: **enumerated**,
**bulleted** and **definitions**.  In all list cases, you may have as
many paragraphs, sublists, etc. as you want, as long as the left-hand
side of the paragraph or whatever aligns with the first line of text
in the list item.

Lists must always start a new paragraph -- that is, they must appear
after a blank line.

**enumerated** lists (numbers, letters or roman numerals; quickref__)
  __ quickref.html#enumerated-lists

  Start a line off with a number or letter followed by a period ".",
  right bracket ")" or surrounded by brackets "( )" -- whatever you're
  comfortable with.  All of the following forms are recognised::

    1. numbers

    A. upper-case letters
       and it goes over many lines

       with two paragraphs and all!

    a. lower-case letters

       3. with a sub-list starting at a different number
       4. make sure the numbers are in the correct sequence though!

    I. upper-case roman numerals

    i. lower-case roman numerals

    (1) numbers again

    1) and again

  Results in (note: the different enumerated list styles are not
  always supported by every web browser, so you may not get the full
  effect here):

  1. numbers

  A. upper-case letters
     and it goes over many lines

     with two paragraphs and all!

  a. lower-case letters

     3. with a sub-list starting at a different number
     4. make sure the numbers are in the correct sequence though!

  I. upper-case roman numerals

  i. lower-case roman numerals

  (1) numbers again

  1) and again

**bulleted** lists (quickref__)
  __ quickref.html#bullet-lists

  Just like enumerated lists, start the line off with a bullet point
  character - either "-", "+" or "*"::

    * a bullet point using "*"

      - a sub-list using "-"

        + yet another sub-list

      - another item

  Results in:

  * a bullet point using "*"

    - a sub-list using "-"

      + yet another sub-list

    - another item

**definition** lists (quickref__)
  __ quickref.html#definition-lists

  Unlike the other two, the definition lists consist of a term, and
  the definition of that term.  The format of a definition list is::

    what
      Definition lists associate a term with a definition.

    *how*
      The term is a one-line phrase, and the definition is one or more
      paragraphs or body elements, indented relative to the term.
      Blank lines are not allowed between term and definition.

  Results in:

  what
    Definition lists associate a term with a definition.

  *how*
    The term is a one-line phrase, and the definition is one or more
    paragraphs or body elements, indented relative to the term.
    Blank lines are not allowed between term and definition.

Preformatting (code samples)
----------------------------
(quickref__)

__ quickref.html#literal-blocks

To just include a chunk of preformatted, never-to-be-fiddled-with
text, finish the prior paragraph with "``::``".  The preformatted
block is finished when the text falls back to the same indentation
level as a paragraph prior to the preformatted block.  For example::

  An example::

      Whitespace, newlines, blank lines, and all kinds of markup
        (like *this* or \this) is preserved by literal blocks.
    Lookie here, I've dropped an indentation level
    (but not far enough)

  no more example

Results in:

  An example::

      Whitespace, newlines, blank lines, and all kinds of markup
        (like *this* or \this) is preserved by literal blocks.
    Lookie here, I've dropped an indentation level
    (but not far enough)

  no more example

Note that if a paragraph consists only of "``::``", then it's removed
from the output::

  ::

      This is preformatted text, and the
      last "::" paragraph is removed

Results in:

::

    This is preformatted text, and the
    last "::" paragraph is removed

Sections
--------

(quickref__)

__ quickref.html#section-structure

To break longer text up into sections, you use **section headers**.
These are a single line of text (one or more words) with adornment: an
underline alone, or an underline and an overline together, in dashes
"``-----``", equals "``======``", tildes "``~~~~~~``" or any of the
non-alphanumeric characters ``= - ` : ' " ~ ^ _ * + # `` that you
feel comfortable with.  An underline-only adornment is distinct from
an overline-and-underline adornment using the same character.  The
underline/overline must be at least as long as the title text.  Be
consistent, since all sections marked with the same adornment style
are deemed to be at the same level::

  Chapter 1 Title
  ===============

  Section 1.1 Title
  -----------------

  Subsection 1.1.1 Title
  ~~~~~~~~~~~~~~~~~~~~~~

  Section 1.2 Title
  -----------------

  Chapter 2 Title
  ===============

This results in the following structure, illustrated by simplified
pseudo-XML::

Chapter 1 Title <section> <title> Section 1.1 Title <section> <title> Subsection 1.1.1 Title <section> <title> Section 1.2 Title <section> <title> Chapter 2 Title (Pseudo-XML uses indentation for nesting and has no end-tags. It's not possible to show actual processed output, as in the other examples, because sections cannot exist inside block quotes. For a concrete example, compare the section structure of this document's source text and processed output.) Note that section headers are available as link targets, just using their name. To link to the Lists_ heading, I write "``Lists_``". If the heading has a space in it like `text styles`_, we need to quote the heading "```text styles`_``". Document Title / Subtitle ````````````````````````` The title of the whole document is distinct from section titles and may be formatted somewhat differently (e.g. the HTML writer by default shows it as a centered heading). To indicate the document title in reStructuredText, use a unique adornment style at the beginning of the document. To indicate the document subtitle, use another unique adornment style immediately after the document title. For example:: ================ Document Title ================ ---------- Subtitle ---------- Section Title ============= ... Note that "Document Title" and "Section Title" above both use equals signs, but are distict and unrelated styles. The text of overline-and-underlined titles (but not underlined-only) may be inset for aesthetics. Images ------ (quickref__) __ quickref.html#directives To include an image in your document, you use the the ``image`` directive__. For example:: .. image:: images/biohazard.png results in: .. image:: images/biohazard.png The ``images/biohazard.png`` part indicates the filename of the image you wish to appear in the document. There's no restriction placed on the image (format, size etc). If the image is to appear in HTML and you wish to supply additional information, you may:: .. image:: images/biohazard.png :height: 100 :width: 200 :scale: 50 :alt: alternate text See the full `image directive documentation`__ for more info. __ ../../ref/rst/directives.html __ ../../ref/rst/directives.html#images What Next? ---------- This primer introduces the most common features of reStructuredText, but there are a lot more to explore. The `Quick reStructuredText`_ user reference is a good place to go next. For complete details, the `reStructuredText Markup Specification`_ is the place to go [#]_. Users who have questions or need assistance with Docutils or reStructuredText should post a message to the Docutils-users_ mailing list. .. [#] If that relative link doesn't work, try the master document: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html. .. _reStructuredText Markup Specification: ../../ref/rst/restructuredtext.html .. _Docutils-users: ../mailing-lists.html#docutils-users .. _Docutils project web site: http://docutils.sourceforge.net/

A New Language

Tonight, while Yung is down with pink eye that has turned into a sty, I settled into the chair to give Lily her bottle. As she climbed into my lap, she was rhyming nonsense words, just having fun saying words and having me repeat them.

We decided that mickle luh bà was “Please give me the bottle” and I then thought that Tick uh hà might be “Here it is, if you please.” As she drank, I wondered if the à sound in Lilian — with à sounding somewhere between the a in bath and hah — could possibly be a phoneme added to a sentence to indicate that one was being polite.

Word-wrap (filling) in Emacs

Quite frankly, this is emacs’ greatest disappointment as a text editor – something so fundamentally important to so many people and something so many other editors do well. Without modification, emacs does not soft wrap the way you’d like it to. Will that change? Perhaps – open source software’s greatest strength is that clever people with programming skills can modify projects to suit their own needs. But if this is something you can’t overlook, emacs will drive you crazy and you’re better off with another application. Word wrap comes in two forms: soft wrap and hard wrap. Hard wrap means that at the end of every line a “newline” character is inserted. Most plain text email is sent this way. If you have 80 character wide paragraphs and want them to be 120 characters wide, you have to reformat. In other text editors that’s a real pain, but in emacs it’s easy, and that’s one reason few programmers feel compelled to do anything about the word wrap problem. Soft wrap means the program recognizes the width of the window on your screen and reformats the words to fit the window, without inserting any newline characters. If you resize the window, the words adjust automatically. Emacs does not do this. Emacs presents three options:

No wrap: Lines do not wrap around the screen at all, but continue on and on to the right until you finally hit “return,” which for text, would be at the end of the paragraph. This is acceptable for people writing code, but not acceptable for text.

  • Wrap: Lines wrap around the screen, but emacs doesn’t pay attention to words, and will wrap right in the middle of the word, showing a little symbol, probably a backslash, at the right edge of the screen to show the line is being continued below. If you can deal with this, it’s the best way to go for writers. But it’s not ideal. Fill: Emacs calls it “filling” a paragraph, and it means inserting a newline at a certain distance from the beginning of the line, for example 120 characters, paying attention not to split a word. This gives you nicely formatted paragraphs that look nice, but can get distorted if you add words in the middle of the paragraph afterward, for example. Then you have to reformat the paragraph (which is a simple keystroke). If you’re writing using LATEX (more about that later), this is the best option. But if you eventually want to hand the text to a publisher, they’ll be very unhappy about all the newlines and the hard formatting, so you’ll be forced to find an alternative.

Let’s look at filling first. The command M-x auto-fill-mode toggles filling on or off. It will insert a newline at a certain position, taking care to pass a word onto the next line if it would be otherwise split. At what character will it do so? Probably around 72 unless you tell it otherwise. Here’s how to choose: C-u 80 C-x f sets the width (80 characters, in this example) of your paragraph but does not reformat the paragraph. M-q reformats the paragraph.

So let’s say you are typing at the console, which is 120 characters wide, and you are starting a new document. Before you start, hit C-u 120 C-x f to set the margin, and type M-x auto-fill-mode to toggle auto-fill mode on (check the status bar at the bottom of the screen to see if it’s on: look for the word “fill” in the mode line). Now start typing. Your paragraphs will be hard wrapped at 120 characters, the width of your screen. Now if you go back to edit your work, the paragraph will be out of whack. Hit M-q to reformat the paragraph. If you later decide you want the paragraph to be 72 characters wide again, you can hit C-u 72 C-x f to set the new margin and M-q to reformat it. There are two other useful commands available to you if you’ve selected a region you’d like to format. The command fill-individual paragraphs (remember, as explained in section 6.1 you would access this by typing M-x fill-individual-paragraphs) reformats each paragraph in the region. This is probably what you want if you want to globally change all the paragraphs in your document from 72 to 85 characters wide, for example. The command fill-region-as-paragraph will take all the fragments of text in your region and make them into a single paragraph, removing extraneous blank lines and double spaces, etc. Very handy way to reformat hacked-up text. ## Word Wrap in EMACS Add the following commands to emacs.rc in each user’s root directory to make Emacs use the cursorpad and do word wrap. You may wish to use 65 as a wrap value or even 78 (not 40). bind-to-key quick-exit ^Z bind-to-key previous-line FNA bind-to-key next-line FNB bind-to-key forward-character FNC bind-to-key backward-character FND 40 set-fill-column add-global-mode “wrap”

Word-wrap in Emacs is called filling.

The Emacs Manual tells you this about it: M-q Fill current paragraph (fill-paragraph). C-x f Set the fill column (set-fill-column). M-x fill-region Fill each paragraph in the region (fill-region). M-x fill-region-as-paragraph Fill the region, considering it as one paragraph. M-s Center a line. But of course it doesn’t tell you how to actually use C-x f. If you just type C-x f you get this error: set-fill-column requires an explicit argument To set the line wrap to 80 for example, type C-u 80 <RET> C-x f <RET>

Continuation Lines

If you add too many characters to one line without breaking it with RET, the line grows to occupy two (or more) lines on the screen. On graphical displays, Emacs indicates line wrapping with small bent arrows in the fringes to the left and right of the window. On text-only terminals, Emacs displays a \ character at the right margin of a screen line if it is not the last in its text line. This \ character says that the following screen line is not really a distinct line in the text, just a continuation of a line too long to fit the screen. Continuation is also called line wrapping. When line wrapping occurs before a character that is wider than one column, some columns at the end of the previous screen line may be “empty.” In this case, Emacs displays additional \ characters in the “empty” columns, just before the \ character that indicates continuation. Sometimes it is nice to have Emacs insert newlines automatically when a line gets too long. Continuation on the screen does not do that. Use Auto Fill mode (see section T.5 Filling Text) if that’s what you want. As an alternative to continuation, Emacs can display long lines by truncation. This means that all the characters that do not fit in the width of the screen or window do not appear at all. They remain in the buffer, temporarily invisible. On terminals, $ in the last column informs you that the line has been truncated on the display. On window systems, a small straight arrow in the fringe to the right of the window indicates a truncated line. Truncation instead of continuation happens whenever horizontal scrolling is in use, and optionally in all side-by-side windows (see section O. Multiple Windows). You can enable or disable truncation for a particular buffer with the command M-x toggle-truncate-lines.

See section J.12 Customization of Display, for additional variables that affect how text is displayed.

Word Wrapping in emacs

To enter word wrap mode from within emacs, enter the following command: Meta-x auto-fill-mode To word wrap a pre-existing paragraph, enter: Meta-q To word wrap and full-justify a pre-existing paragraph, enter: Ctrl-u Meta-q

Word Wrap in Emacs

Quite frankly, this is emacs’ greatest disappointment as a text editor – something so fundamentally important to so many people and something so many other editors do well. Without modification, emacs does not soft wrap the way you’d like it to. Will that change? Perhaps – open source software’s greatest strength is that clever people with programming skills can modify projects to suit their own needs. But if this is something you can’t overlook, emacs will drive you crazy and you’re better off with another application.

Word wrap comes in two forms: soft wrap and hard wrap. Hard wrap means that at the end of every line a “newline” character is inserted. Most plain text email is sent this way. If you have 80 character wide paragraphs and want them to be 120 characters wide, you have to reformat. In other text editors that’s a real pain, but in emacs it’s easy, and that’s one reason few programmers feel compelled to do anything about the word wrap problem. Soft wrap means the program recognizes the width of the window on your screen and reformats the words to fit the window, without inserting any newline characters. If you resize the window, the words adjust automatically. Emacs does not do this.

Emacs presents three options:

  • No wrap: Lines do not wrap around the screen at all, but continue on and on to the right until you finally hit “return,” which for text, would be at the end of the paragraph. This is acceptable for people writing code, but not acceptable for text.
  • Wrap: Lines wrap around the screen, but emacs doesn’t pay attention to words, and will wrap right in the middle of the word, showing a little symbol, probably a backslash, at the right edge of the screen to show the line is being continued below. If you can deal with this, it’s the best way to go for writers. But it’s not ideal.
  • Fill: Emacs calls it “filling” a paragraph, and it means inserting a newline at a certain distance from the beginning of the line, for example 120 characters, paying attention not to split a word. This gives you nicely formatted paragraphs that look nice, but can get distorted if you add words in the middle of the paragraph afterward, for example. Then you have to reformat the paragraph (which is a simple keystroke). If you’re writing using LATEX (more about that later), this is the best option. But if you eventually want to hand the text to a publisher, they’ll be very unhappy about all the newlines and the hard formatting, so you’ll be forced to find an alternative.

Let’s look at filling first. The command M-x auto-fill-mode toggles filling on or off. It will insert a newline at a certain position, taking care to pass a word onto the next line if it would be otherwise split. At what character will it do so? Probably around 72 unless you tell it otherwise. Here’s how to choose: C-u 80 C-x f sets the width (80 characters, in this example) of your paragraph but does not reformat the paragraph. M-q reformats the paragraph.

So let’s say you are typing at the console, which is 120 characters wide, and you are starting a new document. Before you start, hit C-u 120 C-x f to set the margin, and type M-x auto-fill-mode to toggle auto-fill mode on (check the status bar at the bottom of the screen to see if it’s on: look for the word “fill” in the mode line). Now start typing. Your paragraphs will be hard wrapped at 120 characters, the width of your screen. Now if you go back to edit your work, the paragraph will be out of whack. Hit M-q to reformat the paragraph. If you later decide you want the paragraph to be 72 characters wide again, you can hit C-u 72 C-x f to set the new margin and M-q to reformat it.

There are two other useful commands available to you if you’ve selected a region you’d like to format. The command fill-individual paragraphs (remember, as explained in section 6.1 you would access this by typing M-x fill-individual-paragraphs) reformats each paragraph in the region. This is probably what you want if you want to globally change all the paragraphs in your document from 72 to 85 characters wide, for example. The command fill-region-as-paragraph will take all the fragments of text in your region and make them into a single paragraph, removing extraneous blank lines and double spaces, etc. Very handy way to reformat hacked-up text.

Word Wrap in EMACS

Add the following commands to emacs.rc in each user’s root directory to make Emacs use the cursorpad and do word wrap. You may wish to use 65 as a wrap value or even 78 (not 40).

bind-to-key quick-exit ^Z

bind-to-key previous-line FNA

bind-to-key next-line FNB

bind-to-key forward-character FNC

bind-to-key backward-character FND

40 set-fill-column

add-global-mode “wrap”

Word-wrap in Emacs is called filling.

The Emacs Manual tells you this about it:

M-q Fill current paragraph (fill-paragraph). C-x f Set the fill column (set-fill-column). M-x fill-region Fill each paragraph in the region (fill-region). M-x fill-region-as-paragraph Fill the region, considering it as one paragraph. M-s Center a line. But of course it doesn’t tell you how to actually use “C-x f”. If you just type “C-x f” you get this error:

set-fill-column requires an explicit argument To set the line wrap to 80 for example, type ‘C-u 80

C-x f ‘ ## Continuation Lines If you add too many characters to one line without breaking it with RET, the line grows to occupy two (or more) lines on the screen. On graphical displays, Emacs indicates line wrapping with small bent arrows in the fringes to the left and right of the window. On text-only terminals, Emacs displays a `\’ character at the right margin of a screen line if it is not the last in its text line. This `\’ character says that the following screen line is not really a distinct line in the text, just a continuation of a line too long to fit the screen. Continuation is also called line wrapping. When line wrapping occurs before a character that is wider than one column, some columns at the end of the previous screen line may be “empty.” In this case, Emacs displays additional `\’ characters in the “empty” columns, just before the `\’ character that indicates continuation. Sometimes it is nice to have Emacs insert newlines automatically when a line gets too long. Continuation on the screen does not do that. Use Auto Fill mode (see section T.5 Filling Text) if that’s what you want. As an alternative to continuation, Emacs can display long lines by truncation. This means that all the characters that do not fit in the width of the screen or window do not appear at all. They remain in the buffer, temporarily invisible. On terminals, `$’ in the last column informs you that the line has been truncated on the display. On window systems, a small straight arrow in the fringe to the right of the window indicates a truncated line. Truncation instead of continuation happens whenever horizontal scrolling is in use, and optionally in all side-by-side windows (see section O. Multiple Windows). You can enable or disable truncation for a particular buffer with the command M-x toggle-truncate-lines. See section J.12 Customization of Display, for additional variables that affect how text is displayed. Word Wrapping in emacs To enter word wrap mode from within emacs, enter the following command: Meta-x auto-fill-mode To word wrap a pre-existing paragraph, enter: Meta-q To word wrap and full-justify a pre-existing paragraph, enter: Ctrl-u Meta-q

Printing Problems

Here’s what I have done so far:

  1. CTRL-Clicked in the “Click to Add Printer” Pane of Print & Fax in System Preferences and RESET the printing system.
  2. Deleted the /Library/Printers/Canon/BJPrinter directory.
  3. Deleted the /CFMSupport/BJExtDDI.cfm file.
  4. Restarted my computer.
  5. Downloaded the latest Canon install package, mp600osxpd583ej7.dmg, with a creation date of 2007-11-08.
  6. Installed the Canon MP600 583.pkg package.
  7. Restarted my computer.
  8. Reconnected the MP600 to the Airport Extreme.
  9. Returned to Print & Fax, clicked on Add Printer. The MP 600 turns up in the dialogue window that comes up and is listed as a Bonjour Device.
  10. I clicked ADD.
  11. The process hangs until I get an error sheet:

An error occurred while trying to add the selected printer. Error:-9672

Console messages:

3/17/08 19:07:02 [0x0-0x14014].com.apple.print.add[216] Error -9672, badly formatted ticket XML - Bad XMLStart:   
3/17/08 19:07:02 [0x0-0x14014].com.apple.print.add[216] Bad XMLEnd 

Every 8 seconds one of these is getting posted to the console:

3/17/08 19:18:36 mDNSResponder[22] Error getting external address 3 

Every 40 seconds CUPS Access_log is getting one of these:

localhost - - [17/Mar/2008:19:14:24 -0500] "POST / HTTP/1.1" 200 1941 CUPS-Get-Devices -

Edit in Textmate

Remove old version:

rm ~/Library/InputManagers/Edit\ in\ TextMate

Create InputManagers folder:

sudo mkdir /Library/InputManagers

Copy the input manager to /Library:

sudo cp -pR /Applications/TextMate.app/Contents/Resources/Edit\ in\ TextMate/
Library/InputManagers

Ensure everything is owned by root:

sudo chown -R root:admin /Library/InputManagers

Page 20 of 25

© John Laudun