blueslugs.com

Observations from a West Coast family

~4100MiB

26 April 2008

I seeded the 2008.05 release candidate for about 45 hours, ultimately shipping a little over 4100 megabytes. I’m going to take a break, because I want to update my DP2-based workstation and get some work done, but, once we have new bits, I’ll getting seeding again.

(I found the actual result: 4237MiB sent up, so almost 4GiB.)

Stopping Firefox’s restore session dialog

6 December 2007

I’m sure that there are Firefox users out there who want to restore their previous session; I never do, and so deactivating that dialog is a big timesaver. If you search, you’ll find a few writeups on how to adjust the configuration, but I want to document the minimum steps to suppress the restore session dialog.

  1. Enter about:config into the URL field.
  2. Enter sessionstore into the displayed filter field and press Enter.
  3. Double-click the value cell of the browser.sessionstore.enabled row, so that the value field reads False.
  4. Restart Firefox. One click saved.

[ T: ]

Periodic reducation of email interrupt rate

11 October 2006

At work, I’ve ended up on many email aliases; since we moved to pursuing open development on opensolaris.org, my subscriptions and incoming email flow have grown tremendously, to the point where they were interfering with my ability to get work done. My present filter setup involves delivery to 56 inboxes.

I’ve had a small email toolset built around the Mutt email client (or mail user agent (MUA) in email-speak). My .muttrc includes $HOME/.mailboxes, which is a list of the mail inboxes into which my procmail filter delivers. The m and check commands use .mailboxes to determine where new messages have arrived. Happily, this infrastructure can easily give me a few hours of reduced interrupts, so that I can get some thinking and writing done.

The idea is to strongly reduce the number of significant inboxes during what we’ll label as “prime” work hours, between lunch and dinner on weekdays. Given the use of .mailboxes outlined above, the solution is pretty easy:

  1. Move .mailboxes to .mailboxes.offprime.
  2. Take a copy of .mailboxes.offprime as .mailboxes.prime. Prune the prime mailboxes severely.
  3. Install these files in $HOME. (My Makefiles do this, and all the mailbox lists and the Makefiles are version-controlled.)
  4. Add something like the following using crontab -e:

We want to eliminate mail testing on all mailboxes during prime work

hours. This change means that between 12pm - 6pm, mailboxes is

pointed to a reduced mailboxes file.

0 12 * * 1,2,3,4,5 /usr/bin/ln -sf /home/sch/.mailboxes.prime /home/sch/.mailboxes 0 18 * * 1,2,3,4,5 /usr/bin/ln -sf /home/sch/.mailboxes.offprime /home/sch/.mailboxes

  • Run whichever of the two ln(1) invocations above correspond to the current time.
  • You’re now ready to relax and enjoy reduced interrupt rates, leaving you time to focus on real work… or write blog postings about managing your interrupt rates.

    [ T: ]

    Periodic reducation of email interrupt rate

    11 October 2006

    At work, I’ve ended up on many email aliases; since we moved to pursuing open development on opensolaris.org, my subscriptions and incoming email flow have grown tremendously, to the point where they were interfering with my ability to get work done. My present filter setup involves delivery to 56 inboxes.

    I’ve had a small email toolset built around the Mutt email client (or mail user agent (MUA) in email-speak). My .muttrc includes $HOME/.mailboxes, which is a list of the mail inboxes into which my procmail filter delivers. The m and check commands use .mailboxes to determine where new messages have arrived. Happily, this infrastructure can easily give me a few hours of reduced interrupts, so that I can get some thinking and writing done.

    The idea is to strongly reduce the number of significant inboxes during what we’ll label as “prime” work hours, between lunch and dinner on weekdays. Given the use of .mailboxes outlined above, the solution is pretty easy:

    1. Move .mailboxes to .mailboxes.offprime.
    2. Take a copy of .mailboxes.offprime as .mailboxes.prime. Prune the prime mailboxes severely.
    3. Install these files in $HOME. (My Makefiles do this, and all the mailbox lists and the Makefiles are version-controlled.)
    4. Add something like the following using crontab -e:

    We want to eliminate mail testing on all mailboxes during prime work

    hours. This change means that between 12pm - 6pm, mailboxes is

    pointed to a reduced mailboxes file.

    0 12 * * 1,2,3,4,5 /usr/bin/ln -sf /home/sch/.mailboxes.prime /home/sch/.mailboxes 0 18 * * 1,2,3,4,5 /usr/bin/ln -sf /home/sch/.mailboxes.offprime /home/sch/.mailboxes

  • Run whichever of the two ln(1) invocations above correspond to the current time.
  • You’re now ready to relax and enjoy reduced interrupt rates, leaving you time to focus on real work… or write blog postings about managing your interrupt rates.

    [ T: ]

    Little patch for Mediawiki external editor

    6 June 2006

    For the OpenSolaris governance discussions, the community is using the wiki at genunix.org. The genunix team installed Mediawiki, used most famously for the Wikipedia, to support communal editing.

    I’m a creature of Vim, and am quite happy with the recently released Vim 7. Tying the external editor feature of Wikipedia to Vim is straightforward, if you install Erik Möller’s ee script—and tweak it a little.

    Below you’ll find a modified version that respects the http_proxy setting, handles the case where no matching site is present in your ee.ini file, and adds a configuration option to not append the “using an external editor” string to your article’s change summary.

    [ T: ]

    Historical CA DMV VLF online

    16 April 2006

    I’ve been wrapping up our tax returns, running reviews and reviewing an actual paper copy. One document (well, two) that I couldn’t find were the bills from the California Department of Motor Vehicles for the car registrations. But I was very pleased to find that they have an online retrieval system to help you find your vehicle license fee (VLF) for 2004 – 2006.

    I bet I filed the registration bills in a “special” folder… which I’ll find in August.

    Please excuse the interruptions in the feed

    22 March 2006

    I was having a bit of trouble with duplicate entries from Word Pre.cio.us (for entries containing '\'' characters in their title, and so was fiddling with transforming the bookmarks at del.icio.us, deleting duplicate posts, finally debugging the Word Pre.cio.us import code, and converting the bookmark titles back.

    Sadly, some of the dates on the bookmarks got changed, so the time correlations between certain links have been lost.

    This little patch seems to correct the issue for my PHP 5.0.4/MySQL 4/WordPress 1.5.1.3 setup, but shouldn’t be considered authoritative. I’ve sent it to the author for consideration. (The chief issue is whether the extra escaping I’ve removed is the correct excision, given potential backing database differences.)

    In any case, the syndication feeds should be less bumpy henceforth.

    Now integrating del.icio.us

    20 March 2006

    I decided to start pulling my del.icio.us stream in—I’d been debating whether to republish it here or on my work blog for a couple of weeks. The Word Pre.cio.us script, patch, and CSS are a reasonably elegant way to present the new posts, but there appear to be a couple of kinks to work out. (Maybe long grey blocks of bookmark posts will embarrass me into more regular posting.

    State of the domain

    25 January 2006

    As I did last year, I’m again reviewing the year from the perspective of blueslugs.com.

    Overview. Over 2005, we served up a total of over 8.3 GB of data, through our standard static DSL line: almost an order of magnitude higher than last year. 5.6 GB was blueslugs.com, while the remaining 2.7 GB was from the new domain, highmaintenancemom.com, which is Dina’s electronic motherhood site. HMM only came online in April, and has been steadily building in traffic. Log analysis translates to over 930 000 hits and over 45 000 visitors. Over the year, 36 blog posts were written on blueslugs.com, three by Dina. Perhaps I'll get to a post a week this year.

    Content. The most popular page on the site this year was the introduction of tag(1), a Unix-like command for tagging files. I have a long overdue post that analyzes the incoming traffic associated with the post, which hit a few of the “emergent importance” sites as well as getting mentioned on some individual blogs. (I have an equally overdue response regarding some of the technical and quasi-social analysis of the utility of tag(1).) Pages from Benjamin’s alphabet book are still regularly requested: the alphabet page trailed tagging by only a few hundred hits. (Each had over 16 000.) The grammar page is the top individual page, but the country flags and mathematicians images get pulled in via search terms. Search engine passes and syndication feed pulls are as or more regular than ever.

    Beyond the tag(1) release, I ported Audacity to Solaris x86, which helped a few people, based on downloads. The dockapps I wrote a few years ago still get pulled regularly. Most of my Solaris posts are published at my work blog, but I’m still exploring “personal (Unix) computing” posting as a topic to cover here.

    My Redwood City writings dropped off; I must get back to this topic, as the downtown theatres are nearly full built, and the commercial changes—new restaurants!—have already started. Or maybe midterm elections will prove interesting…

    System. As chronicled, we unexpectedly had to replace the server due to hardware failure. This system is, of course, faster than its predecessor and, even with the higher load of the two sites, is essentially idle. The site data is on a UFS partition with triple mirroring via SVM, but I expect to experiment with ZFS after the next software upgrade.

    The system is presently running Solaris 10 03/05 with appropriate patches; the current Web stack was built by hand, as HMM software requirements required somewhat atypical settings. Expect to receive bits served from Solaris Express builds in the next few months.

    Future. I doubt we’ll launch another site this year, so I expect no new leaps in traffic. One possibility is a DSL upgrade; I believe the higher speed version approximately twice guaranteed bandwidth, but I haven’t heard anyone talking about what they’re actually getting. Although I like having a camera phone, the camera I bought takes such better pictures that, if I’m going to post pictures, they’ll be taken with a real camera. And I would like to get the backlog of partial posts under control—I started a notebook for post ideas, but I seem to be filling the book, rather than the blog.

    Audacity for Solaris 10 x86

    17 November 2005

    So both Dan Price and Ben Rockwood have asked again and again and again for Audacity, a free audio editor, to be ported to Solaris. A reasonable challenge. After a bit of fiddling and some decisions, I have a functional version of Audacity 1.2.3. Whether or not this will result in me issuing podcasts, mixes, or mashups is presently unknown, but decreasingly likely in that order.

    This build does not have input support for MP3 or Ogg. You will have to use tools like sox or oggdec to convert those formats to WAV. Outputs to those formats should work, but I’ve mostly been testing with Ogg.

    I thought I had notes on the port, but I can’t find them. So, from memory, here’s the rough idea:

    • Use blastwave.org for pre-packaged libaries where possible.
    • Use g++ because Audacity seems to use specific features of this C++ implementation.
    • Build your own Motif wxwidgets library using g++, because there isn’t a common C++ ABI on Solaris.
    • Drop in the Solaris-specific pieces from a recent version of the PortAudio library, use that as the primary sound option, and make a few edits for header file issues.
    • Get the run paths right.
    Sorry for the implicit lameness; depending on feedback, maybe I can retrace my steps more precisely.

    Download

    Please don’t decoralize the link, or I’ll have to take the binary down.

    Installation

    This build of Audacity 1.2.3 relies on you using blastwave.org for a collection of libraries. I assume you have a working version of pkg-get.

    1. Get required libraries.
      # pkg-get -i libvorbis libogg libmad libid3tag gcc3corert gcc3g++rt
      
      You may also want lame, sox, and vorbistools for audio transcoding.
    2. Download package.
    3. Uncompress and install.
      # gunzip SLUGaudacity.pkg.gz
      # pkgadd -d SLUGaudacity.pkg
      [Interactive questions.  The dependencies against the Blastwave packages will be checked.]
      
    4. Audacity is now installed as /opt/SLUGaudacity/bin/audacity. You will probably want to make a symbolic link from a more usual place in your path.

    Have fun!

    [ T: ]

    Making secureimage.php strict

    12 July 2005

    One of the aspects that kept me up late writing the tag(1) entry was getting MathML to work. Getting itex2MLL to compile was easy, but correcting the various WordPress templates took longer.

    This morning I found that the SecureImage plugin needs a very small change to make its output strict XHTML:

    $ diff secureimage.php.org secureimage.php
    347c347
    < <img src=”<?php echo $_SERVER[PHP_SELF];?/>?image=< ?php echo $hashtext;?>”/><br>

    > <img src=”<?php echo $_SERVER[PHP_SELF];?/>?image=< ?php echo $hashtext;?>”/><br />

    And now the permalinked page works. If you wanted to comment on tag(1), please try again.

    tag(1): del.icio.us-style file tagging

    12 July 2005

    I’ve been using the social bookmarking service, del.icio.us, for a while now, and have watched similar tagging features move from site to site as a flexible way to lightly categorize various resources: bookmarks, blog posting, photos, etc. It’s therefore a little strange that no one has written a simple utility to give you similar category construction capabilities on your typical Unix-like file system. In this post, I propose a simple, portable design, contrast my design choices against some other possibilities, and then provide an initial implementation of that design in Perl.

    Tagging

    If you’ve not used del.icio.us, Technorati’s tag system, or any of the Web tagging systems, then a brief introduction is worthwhile. If you’re already familiar with tagging, then this section will alert you to my personal terminology around tagging operations and the resulting metadata.

    By tagging, we mean the association of one or more keywords, called tags, with an entity. The tag set is the set of tags associated with the entity, which for the purposes of this post, is always a file.

    Once you’ve accumulated a set of tagged files, the next step is to examine sets of files with common tags: each such set is a query. The link set is the set of all possible queries against the set of tags. That is, the set of files tagged with the same set of tags is a member of the link set. A particular member of the link set can be calculated dynamically, or the entirety of the set can be calculated in advance.

    Querying tags

    del.icio.us appears to calculate the per-tag queries on the fly, which is acceptable as the primary interface is the web page presented to the reader. (Caching is probably involved.) We instead have a choice: we can use our command, tag(1), or we can use the filesystem itself. Our choice is accompanied by a tradeoff between time (to compute queries) and space (inodes consumed). Although, as we will see, the space consumption is significant, the filesystem approach presents an easy interface for exploration.

    By default, the link set is constructed in $HOME/tag:

    $ ls ~/tag/
    code/        doc/         linux/       rm/          thread/      utility/
    conference/  greenline/   note/        solaris/     umem/
    

    If we look in ~/tag/code, we see

    $ ls ~/tag/code/
    gumemd.pl@  pause.c@    tag.pl@     tagging/    umem/       utility/
    

    symbolic links to files with that tag, and directories representing additional tags. This directory hierarchy is the link set: all possible queries are precalculated:

    $ ls ~/tag/code/umem/
    gumemd.pl@
    

    If we go to the original file, tag(1) will tell us the tags on the file:

    $ tag gumemd.pl 
    code umem
    

    We can also query using the tag command, but it is merely walking the directory structure we constructed.

    $ tag -q code
    /home/sch/old-home/gumemd.pl
    /home/sch/old-home/pause.c
    /home/sch/play/tag/tag.pl
    

    (This operation is relatively fast, as we would expect:

    $ time tag -q code 
    /home/sch/old-home/gumemd.pl
    /home/sch/old-home/pause.c
    /home/sch/play/tag/tag.pl
    
    real    0m0.068s
    user    0m0.057s
    sys     0m0.009s
    

    Timing run performed on a 1.8 GHz Athlon64 running Solaris 10 and Perl 5.8.4.)

    Adding tags is simple:

    $ tag -a perl gumemd.pl
    $ tag gumemd.pl
    code umem perl
    $ ls ~/tag/perl
    code/       gumemd.pl@  umem/
    

    As is deleting them:

    $ tag -d perl gumemd.pl
    $ ls ~/tag/perl
    /home/sch/tag/perl: No such file or directory
    

    So we have a design for basic tagging of files.

    Tags and file system metadata consumption

    It’s worth noting that precalculating the entire link set and storing it in a file system consumes file system metadata combinatorically, but that this consumption is capped by the (typical) limit on path length. Generally, we make M symbolic links for the n distinct tags on a single file, with M given by

    M (n)= r =1 nn !( n-r)!

    That’s 325 links for 5 tags, plus as many directories again, for a total of 650 metadata units. On file systems that preallocate a fixed size pool of inodes, this kind of feature could lead to metadata exhaustion.

    Tagging and file system operations

    The key file system operation in our tagging system is renaming: how do we update the link and tag sets when a particular file is relocated within the filesystem? Deletion is a subset of this case; copying can be treated similarly to a set of tag-add operations on a previously untagged file.

    If we just use mv(1), and have the link set and tag set stored externally to the file, then we end up with a depressing result:

    File tagging, without attributes

    The link set points to and the tag set is associated with the old location, and operations on these objects will fail. The file in its new location has lost all of its tags-derived metadata, and so has dropped out of our tagspace.

    On some Unix-like OSes, certain filesystems support file attributes, such as Solaris’s UFS and Linux’s ext3fs. With attributes, data associated with the file is associated with the file in such a way that filesystem operations leave the association invariant (unless they involve the attribute data specifically). This modifies our operation to something more acceptable:

    File tagging, with attributes

    Although the link set is now stale, and we would have to rebuild the entire link set to remove the stale links to the old location, and to generate the correct links to the new one.

    It is clear that what we want to occur is simultaneous updating of the link and tag sets with each operation: we want transactional operations.

    Transactional file tagging

    One way to achieve a transactional operation is to get beneath the rename(2) system call, and to update both the link set and the tag set within an underlying tagging file system. It would be straightforward to implement a translucent file system that offered a namespace for the link set, and used an underlying on-disk filesystem to store the appropriate data. But, like our declining to use attributes earlier, we pass on an in-kernel implementation because of the associated portability costs. Instead, we have to encapsulate the various steps into an apparent transaction, by offering rename and remove operations in the command itself.

    We implement encapsulated operations in the prototype version by wrapping the standard Unix-like commands: cp(1), mv(1), and rm(1). The syntax is

    $ tag --mv srcfile dstfile
    

    and similarly for the other commands.

    Implementation

    As I noted earlier, the code is a draft implementation and is grossly undertested. There are numerous improvements that could be made to the implementation—the tying and untying for multiple tag operations is an obvious performance sink. Architecturally, the script should be separated into a module providing tagging functionality and a command that presents the module’s functionality as an elegant command line interface. (It would be a reasonable position to move tagging into a small C library, such that a simple common tagging infrastructure could be made available. We could alternatively commit to a specific DBM file format and offer access from multiple symbolic link-capable languages.)

    Implementation improvements would include: recognizing when an operation (tag retrievals in particular) is on an in-the-link-set symbolic link, resynchronizing/repairing databases and link hierarchies, better documentation (although the script does embed minimal documentation using POD), a test suite, and use of ExtUtils::MakeMaker or Module::Installer.

    As always, I’m interested in your comments, suggestions, and references to similar work.

    [T: ]

    Sharing a little bandwidth

    14 June 2005

    I left a BitTorrent session open all day, to make a little contribution to sharing some of the code from OpenSolaris. No real load on our unexpected new server, but 413 MB shipped in 9 hours through our little pipette of a ADSL line. I’ll have to use trickle if I’m going to do that again.

    [T: ]

    Shuffling services

    5 June 2005

    I’ve been sketching out how to gradually modernize our network infrastructure: replacing a 10Mbps combination router/hub with a 1Gb switch and a 10/100Mb VPN, or a similar combination. (I’ll leave the wireless on 802.11b until Dina upgrades her laptop.) To make this simple, I’m reducing the services on the current router, and moving them to the main system. Today, I moved DHCP to our main Solaris server, using dhcpmgr(1M), a graphical utility for managing Solaris’s bundled DHCP server.

    Very easy to follow the configuration wizard’s steps, and the service is better behaved than the aging firmware on our six (seven?) year old router. (Plus, it’s managed by smf(5):

    $ svcs 'dhcp‘
    STATE          STIME    FMRI
    online         12:54:07 svc:/network/dhcp-server:default
    
    which is a pleasant bonus.)

    Next up is drawing some pictures of new cable runs in the back office, and deciding on appropriate numbers of ports.

    [T: ]

    Yellowstone supervolcano and locating coordinates for image maps

    17 March 2005

    I’ve been working on the Yellowstone Volcano Observatory (YVO) website for the U.S. Geological Survey in anticipation of the release of the new Supervolcano movie and I needed to change the coordinates for the logos in our header. As a Mac BBEdit user, I wanted a simple program that gave me the functionality of a tool like Dreamweaver without the cost. What I found was YokMap. An easy-to-use program that ran on my Mac. Their “most stupid solitaire game ever” was an added bonus.

    Supervolcano, a docudrama about a mega-eruption at Yellowstone, was shown in the UK this past weekend on BBC and will be shown here in April on the Discovery Channel.

    Commercial data aggregations: New social features at Netflix

    8 January 2005

    We’re regular, but not heavy Netflix users. For the most part, Dina and I have our own entente cordiale regarding our movie selections, meaning that we can each watch the other’s “dumb movies”. What is still difficult is the handling of whose movies will come by post next. (Netflix is a DVD rental subscription service where the DVDs are sent and returned by mail.)

    Netflix has added two features; one of which they call “Profiles”, where multiple queues can be established, and each allocated some share of the account’s total number of loaned DVDs. We’ll still have a problem with splitting three discs two ways, but I hope this feature will address queue juggling, where we each reshuffle the next 10 titles based on our distinct preferences: “Why did we get recent romantic comedy? I was expecting three years’ ago’s spy movie!” (Warning: transferring movies from a shared queue to individual queues has to be done by hand. Ick.)

    Since I have a few friends who are also Netflix users, I’m interested in the “Friends” feature, too, where I can see their ratings of movies, and not just the Netflix customer average rating. The extra information can help, but it’s the aspect of an asynchronous shared experience that I find interesting. I’ll issue the invitations soon.

    Since these are social usage features, I suspect we’re seeing Netflix execute on its strategy for competing with Wal-Mart and Blockbuster: as a pure Internet firm, they must maintain focus on creating an data aggregation that involves their customers enriching the aggregation, as opposed to purchased content. Given financial resources, anybody can build a (500 000 DVD) library, and even an infrastructure to rent and bill that library’s contents; the innovation has to come on the experience side: pricing is one approach, but innovating to make the richest aggregation is the right network-based company strategy.

    State of the domain

    7 January 2005

    blueslugs.com turned five this week. A reasonable time to take stock. The domain’s first days were hosted over the DSL line in our apartment in Menlo Park on—wait for it—a PowerMac 7100 running MkLinux. Since then, it’s been hosted on an Ultra 10, a Netra T1, and finally on a Shuttle, running various versions of Solaris. The past year had a few events worth reviewing.

    Overview. Last year, we shipped out a total of over 850 MB of data, through the thin little upstream pipe our DSL line offers. Log analysis translates to over 150 000 hits and over 10 000 visitors. Over the year, 24 blog posts were written, three by Dina. Fortnightly posting probably doesn’t mean much, but demonstrates that the domain hasn’t been abandoned. (Perhaps populated by blue sloths, blue snails, or…)

    Content. Pages from Benjamin’s alphabet book remain the most popular real content—and the most often requested by searches. We started a subsite for Nathaniel and a second blog to keep friends apprised of Dina’s father’s illness. The various syndication files are regularly requested, and the traffic from the blog aggregation sites and the search engines increased noticably for the last third of the year.

    A few people are still downloading the dockapps I wrote a couple of years ago. Beyond some logfile software and a few tips, we didn’t provide very much new technical content. The distribution between technical content on my blogs.sun.com blog and on blueslugs.com is consistent; I don’t see a reason to merge the two. (For instance, reviews will remain on this site.)

    I attempted some quasi-journalism/opinion about some of the local elections; as that writing is mostly related to my interest in Redwood City as a place to live, it will probably continue at some erratic rate.

    System. The server hardware is unchanged, except that an APC UPS was installed to insulate the system from the local power sags we’ve been seeing. The small Shuttle system barely taxes the UPS so we should be able to survive even half hour outages easily. (By survive, I mean preserve uptime(1).) With Nathaniel’s arrival, the office (and so the server) was relocated to the cottage (where I spent many a late night the past six months).

    blueslugs.com is now running a recent express release of Solaris 10 x86, complete with smf(5) service conversions for some of the software services. Much of the server software is precompiled and fetched from blastwave.org or one of its mirrors.

    Future. I don’t think there’s any pressing need to modify the server’s hardware; the software we’ll upgrade occasionally with new Solaris releases. I’ve been taking a lot of pictures with the phone on my camera (or whatever)—so much so that Ben’s not satisfied with a toy cellphone that lacks a camera. Those images need to reach the web somehow. No resolutions to post more; perhaps a little one to post better.

    Useful software: libxosd

    9 September 2004

    I had built an early version of libxosd for my Solaris SPARC systems a year or two ago, since it provides a very tidy way to have a ubiquitous onscreen clock with a wide variety of window managers. libxosd went, when I was distracted, through a substantial rewrite, culminating in a 2.2.x series release. And I’m running Solaris 10 (with smf(5)) on a dual Opteron now, as I’ve mentioned before.

    I generally try to build OSS software with the Sun Workshop/Forte compiler suite first, but for libxosd, I recommend going directly to GCC. There are too many mistakes in the autoconf/libtool pairing to bother fixing—none of these appear to be libxosd issues. (I mean, couldn’t -Wall not be passed to cc by now?)

    Recommended.

    A menu of many buffers

    24 June 2004

    I’m often manipulating over 100 files when I’m making modifications to various software components. Generally, the buffers menu in Vim (X11/Motif) handles this okay, unless all of the files are named with the same letters. In a recent batch of changes, 90 of my files were named “Makefile”, “prototype_com”, or “pkginfo.tmpl”; this results in the buffers menu being larger than the vertical height of the screen.

    I tried a few of the publically available scripts, and found BufExplorer to be all I needed and more: since it turns the list into an additional buffer, with various viewing and sorting options, it’s easy to search and select the correct buffer to modify. And your fingers need never leave the keyboard.

    Recommended.

    Second stream of consciousness

    21 June 2004

    I figured I should mention that I’m going to make most of my Solaris-specific comments on my blog at blogs.sun.com. We’ll see if I can keep the topics meaningful and interesting on both, without halving my posting rate on each.

    Ion-2 and VNC

    3 June 2004

    I use ion as my window manager, but have recently switched my home desktop from a G4 Cube to a PC running Solaris. I’m a regular full-screen VNC user, and getting vncviewer and ion to cooperate is pretty key. Fullscreen mode can be achieved using vncviewer and ion (from blastwave, or build them yourself) with only a few modifications to the X resources for vncviewer. These aren’t at all tricky, but require enough experimenting that writing them down will save someone somewhere five minutes some day.

    Although the fullscreen transition will mostly work, ion will be confused about the keyboard focus, so we need to tell vncviewer to take additional responsibility. Add the following to your $HOME/.Xdefaults file:

    vncviewer.grabKeyboard: true
    vncviewer.fullScreen: true
    

    For the latter case, you could instead use the -fullscreen option to vncviewer or the on-screen menu. That’s it: you’re immersed in a virtual reality… which for me is mostly the same as my normal reality.

    Update (9 June): Five minutes saved already; see Comments.

    sun.com survey on default secure install

    7 May 2004

    Here’s an interesting survey: Sun wants to know how secure the default install for Solaris 10 should be. If you listened to the NetTalk on Wednesday, then you might be able to guess that your input here probably means more work for my team and me.

    (I suppose I should really split work blogging from home blogging. Oh, well: work’s particularly fun right now.)

    Stephen on NetTalk panel at sun.com

    4 May 2004

    Stephen’s one of the so-called “rocket scientists” in the Solaris 10 Technical Discussion being offered as a NetTalk tomorrow. (It’s at 1pm PDT.) You can register for the live session (or for details about hearing a replay later).

    (You would think folks would rather hear from computer scientists or software engineers or operating systems designers than rocket scientists on this kind of topic, but perhaps not…)

    Sounds again

    9 April 2004

    hercules-pocket.gifI’ve been using a dual Opteron as my primary desktop lately, but Solaris doesn’t support the sound device included on its motherboard. After asking around about the likelihood of support arriving, I was told that one possible path was to use a USB Audio device instead.

    So I drove off to Fry’s to look around and found, as is always true when I look at PC peripherals, that there is a wide variety of such devices, ranging from a cheap plastic version with only a few features to US$100+ options from Philips and Creative.

    I ended up selecting from the midrange, and bought the Hercules Gamesurround MUSE Pocket, which is a little chrome number with a big volume dial (which Solaris supports) that doubles as a mute button (which it doesn’t) and 5:1 surround sound (which I can’t test). (Generally the Gamesurround gets middling reviews, but as a USB Audio pod when no sound support is available, I like it.)

    Recommended.

    Read the rest of this entry »


    WordPress Icon