Advertise with Googlier.comblueslugs.comhttps://blueslugs.com/Recent content on blueslugs.comHugo -- gohugo.ioen-usstephen@blueslugs.com (Stephen Hahn)stephen@blueslugs.com (Stephen Hahn)Sat, 05 Sep 2026 09:18:23 +0000Bookmarks, 02021-09https://blueslugs.com/2026/09/05/bookmarks-02021-09%22/Sat, 05 Sep 2026 09:18:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2026/09/05/bookmarks-02021-09%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://github.com/Brightgate/product">Brightgate/product: Core Brightgate Software Stack</a> The appliance and cloud software from Brightgate. MPL-2.0 licensed. Might be some useful pieces for future projects.</li>
</ul>Install OmniOS with only USB3 portshttps://blueslugs.com/2026/08/01/install-omnios-with-only-usb3-ports/Sat, 01 Aug 2026 22:10:57 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2026/08/01/install-omnios-with-only-usb3-ports/<p>A challenging aspect of getting started with <a href="https://omnios.org/">OmniOS</a>, one of the
<a href="https://illumos.org/">Illumos</a>-based distributions, is that support for USB 3.0 is limited
and it is easy to get stuck at “Installation media not found” and see worrying
messages like “Could not mount installation media”. If your system has a
recognized network interface and a reasonable amount of memory, however, you
can actually complete the install with a few extra steps.</p>
<p><strong>Getting installation images.</strong> Keep your USB stick onto which you flashed the
<code>omnios-r151058.usb-dd</code> image. You’ll still need this for the first part of
installation, which will be a USB boot. In addition, you need the matching
“PXE image” for that release, which will be named <code>omnios-r151058.zfs.xz</code>.
(These release IDs will be different for future OmniOS releases; see the <a href="https://omnios.org/download.html">OmniOS
Downloads page</a>.) Our first step is to serve that compressed
ZFS image via HTTP on our network.</p>
<p><strong>Serving the PXE image over HTTP.</strong> If you don’t have an HTTP server already
running on your network, you ean easily set up a simple HTTP server using
Python 3 and <a href="https://github.com/astral-sh/uv">uv</a>:</p>
<pre><code>$ uv venv rangehttpserver
Using Python 3.14.2 interpreter at: /home/linuxbrew/.linuxbrew/opt/python@3.14/bin/python3.14
Creating virtualenv at: rangehttpserver
Activate with: source rangehttpserver/bin/activate
$ . ./rangehttpserver/bin/activate
(rangehttpserver) $ uv pip install rangehttpserver
Resolved 1 package in 440ms
Prepared 1 package in 47ms
Installed 1 package in 2ms
+ rangehttpserver==1.4.0
(rangehttpserver) $ cd rangehttpserver
(rangehttpserver) $ mkdir data ~/bl/rangehttpserver
</code></pre>
<p>Now place the PXE image file and activate the HTTP server:</p>
<pre><code>(rangehttpserver) $ mv /path/to/downloaded/omnios-r151058.zfs.xz data
(rangehttpserver) $ cd data
(rangehttpserver) $ python3 -m RangeHTTPServer 7000
Serving HTTP on 0.0.0.0 port 7000 (http://0.0.0.0:7000/) ...
...
</code></pre>
<p>(You can probably serve this 233 MiB file over the Internet, but it’s more
efficient to have it locally.)</p>
<p>You need to capture the IP address of this server (or of your already running
HTTP server), because your OmniOS target box doesn’t have name services in its
boot image.</p>
<p><strong>Begin USB installation.</strong> Next, start the USB-based install. UEFI services
allow OmniOS to start booting off a ramdisk, but OmniOS won’t be able to find
the USB stick with the rest of the needed media. And so you will see
frustrating messages. Press Enter to return to the Kayak installer menu and
enter the shell.</p>
<p><strong>Activate network.</strong> Use <code>dladm</code>(8) to show the interfaces on this system:</p>
<pre><code>$ dladm show-link
LINK CLASS MTU STATE BRIDGE OVER
rge0 phys 1500 unknown -- --
</code></pre>
<p class="aside">
It is difficult for me to accept that a `*adm` command could be in any section
but 1M.
</p>
<p>On this Beelink EQmini N150, we have a Realtek Gigabit Ethernet device, which
enumerates as <code>rge0</code>. Illumos has <a href="https://www.illumos.org/issues/12249">good support for this
device</a>, so let’s proceed.</p>
<p>We need to get that network interface connected to the network. Use <code>ifconfig</code>(8)
to activate the interface and then request configuration via DHCP:</p>
<pre><code>ifconfig rge0 plumb
ifconfig rge0 dhcp start
</code></pre>
<p>(If you do not have DHCP services, you will have to configure the interface
statically.)</p>
<p><strong>Construct media simulacrum.</strong> The result of not finding the media is that the
installer can’t make progress. What we are going to do is use a loopback mount
to place the needed files at the locations that the installer expects.</p>
<p>Our first step is to create a backing store, use that store to create a
loopback device, create in turn a filesystem on the loopback device, and
mount that filesystem in the appropriate location to populate:</p>
<pre><code>mkfile 2g /tmp/vdisk
lofiadm -a /tmp/vdisk
newfs -v /dev/lofi/1
mount /dev/lofi/1 /.cdrom
</code></pre>
<p>(That 2GiB file on <code>/tmp</code> is why I mentioned having sufficient memory. If you
have a smaller system, this technique may be too heavyweight to work.)</p>
<p>And now we can create the needed structures in the <code>/.cdrom</code> directory:</p>
<pre><code>touch /.cdrom/.volsetid
mkdir /.cdrom/image
</code></pre>
<p><strong>Retrieve installation image.</strong> Finally, we can use <code>curl</code>(1) to retrieve the
PXE image we placed on our HTTP server earlier:</p>
<pre><code>cd /.cdrom/image
curl -kO http://{ipv4-address}:7000/omnios-r151058.zfs.xz
</code></pre>
<p>(Adjust URL for your own HTTP server, of course.)</p>
<p><strong>Install.</strong> You should be able now to exit the shell and complete the install
normally. OmniOS provides an <a href="https://omnios.org/setup/freshinstall.html">installation walkthrough</a>.</p>restore-mediacast-assetshttps://blueslugs.com/2026/07/13/restore-mediacast-assets/Mon, 13 Jul 2026 19:54:56 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2026/07/13/restore-mediacast-assets/<p>I was working through old hard drives and moving their contents into our
main ZFS pool. As part of that process, I found a zip archive of content from
<code>mediacast.sun.com</code>. I’ve used that data to correct some of the old articles
that had broken links to that site; the files are now static content on this
blog.</p>Bookmarks, 02021-09https://blueslugs.com/2025/06/30/bookmarks-02021-09%22/Mon, 30 Jun 2025 08:01:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2025/06/30/bookmarks-02021-09%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://github.com/Brightgate/product">Brightgate/product: Core Brightgate Software Stack</a> The appliance and cloud software from Brightgate. MPL-2.0 licensed. Might be some useful pieces for future projects.</li>
</ul>Deploying Anubis on nginxhttps://blueslugs.com/2025/03/27/deploying-anubis-on-nginx/Fri, 28 Mar 2025 11:12:11 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2025/03/27/deploying-anubis-on-nginx/<p><a href="https://anubis.techaro.lol/">Anubis</a> is a recently released HTTP reverse proxy by <a href="https://xeiaso.net/">Xe
Iaso</a> of <a href="https://techaro.lol/">Techaro</a>. Anubis forces specified clients to
do additional computational work prior to delivering the content, which can
interfere with abusive site scanning.</p>
<p>Deployment examples provided with <a href="https://github.com/TecharoHQ/anubis">the Anubis source</a> cover
Caddy and Kubernetes. In this post, I work through how to deploy Anubis with
nginx and systemd. (Tested and deployed on Debian 12 “Bookworm”.)</p>
<h2 id="nginx-configuration">Nginx configuration</h2>
<p>A typical nginx configuration looks somewhat like the following schematic:</p>
<pre tabindex="0"><code>┌───────────────────────────────────────────────────────────────────┐
│ listen 80 │
│ │
│ {302 redirect to port 443} │
└───────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ listen 443 │
│ │
│ SSL certificate and algorithm │
│ Content Security Policy │
│ │
│ root location │
│ specific redirects │
└───────────────────────────────────────────────────────────────────┘
</code></pre><p>It is probably worth mentioning that, since Anubis’s implementation requires
use of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto">Subtle Crypto Web API</a>, that its content must be
served by HTTPS. Without HTTPS, the cryptographic calls will fail and requests
will remain on the Anubis transitional page.</p>
<p>In its default configuration, Anubis listens on port 8923 for HTTP requests
(and also on port 9090 for metrics requests) and proxies successful requests to
the server listening at port 9090. We will split the <code>listen 443</code> section into
a front-side section, that contains the SSL configuration, the Content
Security Policy, and the <code>proxy_pass</code> to Anubis at port 8923, and a back-side
section, which contains the <code>root</code> directory specification, <code>location /</code>, and
other content configuration. That structure looks like the following:</p>
<pre tabindex="0"><code>┌───────────────────────────────────────────────────────────────────┐
│ listen 80 │
│ │
│ {302 redirect to port 443} │
└───────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ listen 443 │
│ │
│ SSL certificate and algorithm │
│ Content Security Policy │
│ │
│ {proxy_pass to anubis localhost:8923} │
└───────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ listen localhost:3939 │
│ │
│ root location │
│ specific redirects │
└───────────────────────────────────────────────────────────────────┘
</code></pre><h3 id="proxy_pass"><code>proxy_pass</code></h3>
<p>From the configuration examples, we can derive the appropriate <code>proxy_pass</code>
specification for the “front-side” section:</p>
<pre tabindex="0"><code>location / {
proxy_pass http://localhost:8923;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
</code></pre><h3 id="content-security-policy">Content security policy</h3>
<p>Anubis uses <code>data:</code> and <code>blob:</code> URIs to include some of the supporting content
for its “working page”. If you have a Content Security Policy <code>add_header</code> line
like</p>
<pre tabindex="0"><code>add_header Content-Security-Policy "default-src 'self'; ..." always;
</code></pre><p>then you <strong>must</strong> ensure that <code>script-src</code> includes <code>blob:</code> and that
<code>font-src</code> includes <code>data:</code>, so that Anubis’s content is accepted by CSP-aware
clients.</p>
<h2 id="service-description">Service description</h2>
<p>If you run <code>anubis</code> without arguments, it will listen on both port 8923 and
port 9090 on <strong>all interfaces</strong>. In the service description below, we restrict
those to <code>localhost</code>-only.</p>
<p>We also do not break out a separate policy file, but instead rely upon the
default policy included with Anubis. You may need to develop your own policy
if Anubis is blocking too many friendly consumers.</p>
<ul>
<li><a href="https://blueslugs.com/2025/03/27/deploying-anubis-on-nginx/anubis.service">anubis.service</a>: Service description for Anubis, systemd(1)-style.</li>
</ul>
<p>I hope that’s sufficient structure and specific information to let you adjust
your nginx configuration to run Anubis successfully.</p>
<p><strong>Update, 3/28:</strong> I had to add an ALLOW clause to let the <code>blueslugs.com</code> Atom
feed through, so there is now an explicit separate policy file which we place
at <code>/etc/anubis_policy.json</code>. The clause uses the <code>path_regex</code> field to
whitelist the feed’s path:</p>
<pre tabindex="0"><code>{
"name": "feed-atom",
"path_regex": "^/index.xml$",
"action": "ALLOW"
},
</code></pre><p>The above unit file has been amended to use <code>-policy-fname</code> as part of the
invocation.</p>
<h2 id="acknowledgments">Acknowledgments</h2>
<p>Thanks to Xe for developing and sharing this interesting program.</p>Bookmarks, 02021-08https://blueslugs.com/2024/11/26/bookmarks-02021-08%22/Tue, 26 Nov 2024 13:00:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2024/11/26/bookmarks-02021-08%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://github.com/ligurio/unreliablefs">ligurio/unreliablefs: A FUSE-based fault injection filesystem.</a> Has a number of modes, including returning random errors on I/O operations.</p>
</li>
<li>
<p><a href="https://clip-lang.org/">clip - The command line illustration processor - clip</a> DSL and implementation for generating line graphs. Renders to SVG.</p>
</li>
<li>
<p><a href="https://herbie.uwplse.org/">Herbie: Automatically Improving Floating Point Accuracy</a> An IEEE754-aware expression improver.</p>
</li>
</ul>Monitoringhttps://blueslugs.com/2024/10/21/monitoring/Mon, 21 Oct 2024 11:15:18 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2024/10/21/monitoring/<p><img src="https://blueslugs.com/2024/10/21/monitoring/20241020-154104-ricoh-pentax-k-3-0.jpeg" alt="Otter, seal, pelicans, cormorant" title="Otter, seal, pelicans, cormorant"></p>
<p>The shoreline gets active as sunset approaches. Dina took this picture of
interspecies regard on our walk.</p>Ambitioushttps://blueslugs.com/2024/10/17/ambitious/Thu, 17 Oct 2024 12:57:16 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2024/10/17/ambitious/<p>We occasionally buy succulents in small multiples—six pack, eight pack—at
Costco. It’s never apparent to me whether a particular plant will remain as it
appears in its pot, perhaps with some slight expansion as it settles into the
larger soil volume, or transform into a distinct, mature presentation.</p>
<p>Most of these plants stay low to the ground, and are produce a small number of
identical structures that make up their shape. But, every so often, a
plant will generate more ambitious output:</p>
<p><img src="https://blueslugs.com/2024/10/14/test/succulent.jpeg" alt="Ambitious succulent" title="Ambitious succulent"></p>Bookmarks, 02020-08https://blueslugs.com/2024/07/24/bookmarks-02020-08%22/Wed, 24 Jul 2024 11:07:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2024/07/24/bookmarks-02020-08%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://sites.google.com/site/hidalgoj/mastering-critical-thinking">Mastering Critical Thinking</a> “Educators can improve their students’ critical thinking skills with the right strategies. In particular, a growing body of research suggests that we can substantially improve our students’ abilities to understand, analyze, and evaluate arguments, which are key critical thinking skills. Two promising interventions are argument mapping and mastery learning.”</p>
</li>
<li>
<p><a href="https://github.com/mathiasbynens/dotfiles/blob/main/.macos">dotfiles/.macos at main · mathiasbynens/dotfiles · GitHub</a> Sets up many preferences and other applications defaults as a script.</p>
</li>
</ul>Bookmarks, 02020-08https://blueslugs.com/2023/05/11/bookmarks-02020-08%22/Thu, 11 May 2023 18:18:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2023/05/11/bookmarks-02020-08%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://sites.google.com/site/hidalgoj/mastering-critical-thinking">Mastering Critical Thinking</a> “Educators can improve their students’ critical thinking skills with the right strategies. In particular, a growing body of research suggests that we can substantially improve our students’ abilities to understand, analyze, and evaluate arguments, which are key critical thinking skills. Two promising interventions are argument mapping and mastery learning.”</p>
</li>
<li>
<p><a href="https://github.com/mathiasbynens/dotfiles/blob/main/.macos">dotfiles/.macos at main · mathiasbynens/dotfiles · GitHub</a> Sets up many preferences and other applications defaults as a script.</p>
</li>
</ul>Neighbourshttps://blueslugs.com/2023/05/02/neighbours/Tue, 02 May 2023 23:09:16 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2023/05/02/neighbours/
<a href="https://blueslugs.com/2023/05/02/neighbours/IMGP3339.jpeg" title="Great horned owls, one adult, two juveniles"><img src="https://blueslugs.com/2023/05/02/neighbours/IMGP3339_hu_62b7df3cf03f638d.jpeg" alt="Great horned owls, one adult, two juveniles"></a>
<p>This past spring, we have been listening to a family of <a href="https://en.wikipedia.org/wiki/Great_horned_owl">Great Horned
Owls</a> hooting in the evenings from the trees in our front
yard. Dina, with guidance from our human neighbours, was finally able to
capture photographic evidence.</p>Suspendedhttps://blueslugs.com/2022/12/05/suspended/Mon, 05 Dec 2022 16:12:19 -0800stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2022/12/05/suspended/
<a href="https://blueslugs.com/2022/12/05/suspended/PXL_20221104_143819696.jpg" title="Bridge"><img src="https://blueslugs.com/2022/12/05/suspended/PXL_20221104_143819696_hu_1df6480621e41a0a.jpg" alt="Bridge"></a>
<p>The <a href="https://en.wikipedia.org/wiki/Clark_Bridge">Clark Bridge</a>, driving west across the Mississippi to
Missouri.</p>Bookmarks, 02020-07https://blueslugs.com/2022/12/02/bookmarks-02020-07%22/Fri, 02 Dec 2022 19:54:55 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2022/12/02/bookmarks-02020-07%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://mtlynch.io/tinypilot/">TinyPilot: Build a KVM Over IP for Under $100 · mtlynch.io</a> “TinyPilot is my inexpensive, open-source device for controlling computers remotely. It works even before the operating system boots, so I use TinyPilot to install new OSes and debug boot failures on my bare metal homelab servers.”</p>
</li>
<li>
<p><a href="https://ebiten.org/">Ebiten - A dead simple 2D game library for Go</a> “Ebiten is an open source game library for the Go programming language. Ebiten’s simple API allows you to quickly and easily develop 2D games that can be deployed across multiple platforms.”</p>
</li>
<li>
<p><a href="https://ma.ttias.be/pretty-git-log-in-one-line/">Pretty git log in one line</a> Adds an alias, “git logline”, that gives most useful commit information on a single line.</p>
</li>
<li>
<p><a href="https://yetiops.net/posts/prometheus-consul-saltstack-part-5-illumos/">Prometheus - Auto-deploying Consul and Exporters using Saltstack Part 5: illumos :: YetiOps — A view on the tech and open source world from a hairy human</a> Service manifests for salt minion, Consul, and Node Exporter.</p>
</li>
</ul>Enclosedhttps://blueslugs.com/2022/10/19/enclosed/Wed, 19 Oct 2022 15:48:38 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2022/10/19/enclosed/<p><a href="https://www.flickr.com/photos/schahn/52415140704/" title="Enclosed"><img src="https://live.staticflickr.com/65535/52415140704_1e65cb7f8d_k.jpg" width="2048" alt="Enclosed"></a></p>
<p>The atrium at the Cleveland Museum of Art, a space connecting the 1916 Building to the West and East Wings and the North Building.</p>Bookmarks, 02020-06https://blueslugs.com/2022/06/26/bookmarks-02020-06%22/Sat, 01 Oct 2022 21:25:50 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2022/06/26/bookmarks-02020-06%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://ncona.com/2020/06/create-diagrams-with-code-using-graphviz/">Create diagrams with code using Graphviz – ncona.com – Learning about computers</a> Some nice graph examples.</li>
</ul>Bookmarks, 02020-05https://blueslugs.com/2021/10/29/bookmarks-02020-05%22/Fri, 29 Oct 2021 10:56:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2021/10/29/bookmarks-02020-05%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="http://jonathansoma.com/lede/data-studio/classes/small-multiples/long-explanation-of-using-plt-subplots-to-create-small-multiples/">Long explanation of using plt subplots to create small multiples</a> Works through the various API choices one might make.</p>
</li>
<li>
<p><a href="https://aeroprecipe.com/">AeroPress Recipes - over 88 recipes - AeroPrecipe</a> Attractively presented collection.</p>
</li>
<li>
<p><a href="https://www.homegrounds.co/coffee-grind-chart/">The Last Coffee Grind Size Chart You’ll Ever Need</a> Good grind discussion and chart.</p>
</li>
<li>
<p><a href="https://blog.erratasec.com/2020/05/securing-work-at-home-apps.html">Errata Security: Securing work-at-home apps</a> “… don’t add gimmicky features, but instead, take this opportunity to do security things you should already be doing, starting with a ‘vulnerability disclosure program’ or ‘vuln program’.” Followed by a discussion of how to start such a program.</p>
</li>
<li>
<p><a href="https://moderncss.dev/">Modern CSS Solutions</a> “Modern CSS Solutions for Old CSS Problems.”</p>
</li>
<li>
<p><a href="https://blueslugs.com/2003/08/03/gigli-petit-douteux/">Gigli: petit douteux - blueslugs.com</a> @ahl @bcantrill @BaronDestructo Proof:</p>
</li>
<li>
<p><a href="https://www.rosettacode.org/wiki/Amb">Amb - Rosetta Code</a> “The Amb operator takes a variable number of expressions (or values if that’s simpler in the language) and yields a correct one which will satisfy a constraint in some future computation, thereby avoiding failure.”</p>
</li>
<li>
<p><a href="http://clarkesworldmagazine.com/kritzer_11_15/">Naomi Kritzer, “So Much Cooking”</a> Issue 110, November 2015.</p>
</li>
<li>
<p><a href="https://www.alexpghayes.com/blog/elon-musk-send-tweet/">aleatoric - synthetic control: elon’s tweet tanked tesla’s stock</a> “Anyway, I asked myself: can we causally attribute Tesla tanking stock price to this tweet? The answer is yes, yes, we absolutely can. In the following I use a synthetic control approach to estimate the causal impact of Musk’s tweet on the Tesla stock price…”</p>
</li>
</ul>Bookmarks, 02020-04https://blueslugs.com/2021/10/22/bookmarks-02020-04%22/Fri, 22 Oct 2021 20:27:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2021/10/22/bookmarks-02020-04%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://github.com/mifi/editly">mifi/editly: Slick, declarative command line video editing</a> “Editly is a tool and framework for declarative NLE (non-linear video editing) using Node.js and ffmpeg. Editly allows you to easily and programmatically create a video from set of clips, images and titles, with smooth transitions between and music overlaid.” In the past, I’ve used make(1), ffmpeg(1) and ImageMagick commands, so this more unified approach might be easier.</p>
</li>
<li>
<p><a href="https://drawsql.app/templates">Database schema templates by DrawSQL</a> “Collection of real world database schemas from open-source packages and real-world apps that you can use as inspiration when architecting your app.”</p>
</li>
<li>
<p><a href="https://pressthink.org/2020/04/five-improvements-in-the-design-of-coronavirus-coverage/">Five improvements in the design of coronavirus coverage - PressThink</a> Proposes an urgency index: summarized, ordered list of urgent topics.</p>
</li>
<li>
<p><a href="http://nautil.us/issue/84/outbreak/why-false-claims-about-covid_19-refuse-to-die">Why False Claims About COVID-19 Refuse to Die - Issue 84: Outbreak - Nautilus</a> “There is a pandemic of misinformation about COVID-19 spreading on social media sites. Some of this misinformation takes well-understood forms: baseless rumors, intentional disinformation, and conspiracy theories. But much of it seems to have a different character. In recent months, claims with some scientific legitimacy have spread so far, so fast, that even if it later becomes clear they are false or unfounded, they cannot be laid to rest. Instead, they become information zombies, continuing to shamble on long after they should be dead.” Discusses some specific cases of incorrect work and their metrics.</p>
</li>
<li>
<p><a href="https://apnews.com/d1f130f8826ef57c74db611e959937ac">Study: Warming makes US West megadrought worst in modern age</a> Summary of report in Science.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Ontario_Academic_Credit#Double_cohorts">Ontario Academic Credit - Wikipedia</a> Earlier in this timeline:</p>
</li>
<li>
<p><a href="https://github.com/paulokuong/noaa">paulokuong/noaa: NOAA Weather Service Python SDK</a> SDK for NOAA Weather Service REST API for getting recent and forecast data.</p>
</li>
</ul>Bookmarks, 02020-03https://blueslugs.com/2021/04/05/bookmarks-02020-03%22/Mon, 05 Apr 2021 21:24:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2021/04/05/bookmarks-02020-03%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://github.com/mbrt/gmailctl">mbrt/gmailctl: Declarative configuration for Gmail filters</a> A file format for representing Gmail filters, and a Golang-based utility for manipulating them (and applying them to a Gmail account).</p>
</li>
<li>
<p><a href="https://nixintel.info/osint/signs-youre-following-a-fake-twitter-account/">Signs You’re Following A Fake Twitter Account… – NixIntel</a> Techniques to discover synthesized profile pictures and to assess posting habits consistency with other profile data.</p>
</li>
<li>
<p><a href="https://www.dpreview.com/reviews/olympus-tg-6-review">Olympus TG-6 review: the best waterproof camera on the market: Digital Photography Review</a> Review of the performance/behavior of Olympus’s waterproof small camera.</p>
</li>
<li>
<p><a href="https://github.com/mbugert/laserscad">GitHub - mbugert/laserscad: A library for efficient lasercutting with OpenSCAD.</a> “A library for efficient lasercutting with OpenSCAD.” Render to DXF with Make/Python.</p>
</li>
<li>
<p><a href="https://github.com/bmsleight/lasercut">GitHub - bmsleight/lasercut: Module for openscad, allowing 3d models to be created from 2d lasercut parts</a> “Module for openscad, allowing 3d models to be created from 2d lasercut parts, with a flat file automatically generated.” Render to DXF via a shell script.</p>
</li>
<li>
<p><a href="https://github.com/monitoror/monitoror">GitHub - monitoror/monitoror: Unified monitoring wallboard — Light, ergonomic and reliable monitoring for anything.</a> “Unified monitoring wallboard — Light, ergonomic and reliable monitoring for anything.”</p>
</li>
</ul>Bookmarks, 02020-02https://blueslugs.com/2020/11/30/bookmarks-02020-02%22/Mon, 30 Nov 2020 13:53:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/11/30/bookmarks-02020-02%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://www.western-sales.com/TechTips/tempressupgrade.html">Tempress Upgrade</a> “Many prestigious manufacturers have used Grohe’s Tempress Pressure Balance rough valve as a starting point for their own trims. Manufacturers such as Dornbracht, Jado, Phylrich, Cifial, and many others have used - or are still using - the Tempress PBV. Sometimes replacement trim parts are difficult to find, or have been discontinued, or are difficult to identify.” Worked for us: upgraded two shower fixtures to Grohe.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/2018_Hawaii_false_missile_alert">2018 Hawaii false missile alert - Wikipedia</a> Article on false alert communicated using the EAS.</p>
</li>
<li>
<p><a href="https://conelrad.blogspot.com/2010/09/code-word-hatefulness-great-ebs-scare.html">CONELRAD Adjacent: Code Word “Hatefulness”: The Great EBS Scare of 1971</a> A blogpost on an EBS incident of 1971. Blog has other posts on related topics.</p>
</li>
<li>
<p><a href="http://www.ae5d.com/ebs.html">The EBS Authenticator Word List</a> Site with a number of implementation documents concerning the EBS.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Emergency_Alert_System">Emergency Alert System - Wikipedia</a> “The Emergency Alert System (EAS) is a national warning system in the United States put into place on January 1, 1997 (approved by the Federal Communications Commission (FCC) in November 1994),[1] when it replaced the Emergency Broadcast System (EBS), which in turn replaced CONELRAD.”</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Emergency_Broadcast_System">Emergency Broadcast System - Wikipedia</a> “The Emergency Broadcast System (EBS), sometimes called the Emergency Broadcasting System or the Emergency Action Notification System (EANS), was an emergency warning system used in the United States.” Successor to CONELRAD.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/CONELRAD">CONELRAD - Wikipedia</a> “CONELRAD (Control of Electromagnetic Radiation) was a method of emergency broadcasting to the public of the United States in the event of enemy attack during the Cold War.”</p>
</li>
<li>
<p><a href="https://github.com/wcventure/FuzzingPaper">wcventure/FuzzingPaper: Recent Fuzzing Paper</a> Literature survey of recent fuzz testing work.</p>
</li>
<li>
<p><a href="https://pbpython.com/record-linking.html">Python Tools for Record Linking and Fuzzy Matching - Practical Business Python</a> How to match records across datasets, potentially fuzzily.</p>
</li>
</ul>File serving over the Internet, for onehttps://blueslugs.com/2020/10/29/file-serving-for-one/Thu, 29 Oct 2020 16:48:36 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/10/29/file-serving-for-one/<p>For personal notes and development, there’s a lot to be said for using a shared
network file system. Dropbox has a collection of notification and sharing
features that don’t naturally fit development use (where many files are
intermediate products of a build process and not particularly interesting at
any point of their lifecycle). In this post, I outline the steps to build
a single server-to-multiple client file service configuration that might be
suitable for text editing and relatively small software builds. (You always
want one or more big servers with fast I/O for large builds.) Technologies used
are <a href="https://www.wireguard.com/">Wireguard</a>, <a href="https://github.com/dun/munge/">MUNGE</a>, and <a href="https://en.wikipedia.org/wiki/9P_%28protocol%29">9P</a>; examples are given
for Ubuntu.</p>
<p class="aside">
Dropbox is great for managing files shared with others, and also convenient for
some forms of archiving.
</p>
<p>The goal is to set up a network share that can be used from various systems. In
my initial deployment there will be a stationary workstation and a laptop.
Both are running current Ubuntu. The server is running current Ubuntu as well.</p>
<p>In most situations, my network connectivity—even tethered—is better
that what we had in university and at work. (MPK17 received hundred megabit
Ethernet long after most of the other buildings on campus.) That means, as
long as we can put up with some latency, a network file service might be
sufficient.</p>
<p>Our network transport is a Wireguard link to the server from each client. This
choice means that the authentication and file operations are encrypted as they
pass between client and server.</p>
<p>We have set up Wireguard using <a href="https://github.com/naggie/dsnet"><code>dsnet</code></a> for ease of administration.
<code>dsnet</code> is a lightweight command line utility for managing a Wireguard server
and its clients; in particular, it manages the IP address assignment for the
clients. Follow the <code>dsnet</code> author’s <a href="https://callanbryant.co.uk/blog/how-to-set-up-a-wireguard-vpn-in-minutes-with-dsnet/#how-to">instructional post</a> for the
initial configuration.</p>
<pre><code>$ sudo apt install wireguard
$ wget https://github.com/naggie/dsnet/releases/download/v0.1/dsnet-linux-amd64
$ sudo cp dsnet-linux-amd64 /usr/local/bin/dsnet
$ sudo dsnet init
[ edit /etc/dsnetconfig.json as appropriate ]
$ sudo dsnet up
</code></pre>
<p><code>dsnet</code>’s <code>add</code> subcommand can be used to generate the configuration for
a new client.</p>
<pre><code>$ sudo dsnet add glowy > dsnet-glowy.conf
</code></pre>
<p>(<code>glowy</code> is a Hades Canyon NUC with an illuminated logo on its top.)</p>
<p>Copy this configuration to the appropriate workstation. You’ll also need the
IP address of the server’s Wireguard interface; we’ll refer to this as
<code>SERVERADDR</code> below.</p>
<p class="aside">
<p>On Ubuntu, <code>wg-quick</code> requires <code>resolvconf</code>. One possible
<a href="https://superuser.com/questions/1500691/usr-bin-wg-quick-line-31-resolvconf-command-not-found-wireguard-debian">workaround</a> is:</p>
<pre><code>$ sudo ln -s /usr/bin/resolvectl /usr/local/bin/resolvconf
</code></pre>
</p>
<p>On that workstation, test the configuration using</p>
<pre><code>$ sudo apt install wireguard
$ wg-quick up ./dsnet-glowy.conf
</code></pre>
<p>Both authentication and file service will use the Wireguard link for transport.
The link is not configured to take all traffic from the client, although that
is certainly possible.</p>
<p>Authentication for file service is Munge, which will securely communicate the
user ID (UID) and group ID (GID) making each request. Your UIDs (and GIDs)
should match across systems.</p>
<p class="aside">
<p>Munge reminds me somewhat of <a href="https://en.wikipedia.org/wiki/Network_Information_Service">NIS</a>, in that a shared secret is used to
allow a group of machines to trust one another’s user and group IDs. Munge has
superior security characteristics to NIS, benefiting from delivering a smaller
set of features and using, well, cryptography.</p>
</p>
<p>On the server and each client install Munge.</p>
<pre><code>$ sudo apt install munge
</code></pre>
<p>The <code>postinstall</code> script for this package creates a weak key to keep the
installation time low, so on the server generate a better one:</p>
<pre><code>$ sudo create-munge-key -f -r
</code></pre>
<p>You need to place a copy of this key in <code>/etc/munge/munge.key</code> on each client
system. This file needs to be owned by the <code>munge</code> user and group. Updating the
key will require it to be distributed to each participating system, client and
server. (And restarting the service as well, once the key is in place.)</p>
<p>Finally, we use 9P for network file service. We are using the <a href="https://github.com/chaos/diod"><code>diod</code></a>
implementation.</p>
<p>On the server, we create a <code>/sync</code> directory, under which we will collect the
directories we plan to share.</p>
<pre><code>$ apt install diod
$ mkdir /sync/$USER
</code></pre>
<p>Then add <code>/sync/$USER</code> to /etc/diod.conf</p>
<p>You can invoke <code>diod</code> directly, with logging off and authentication on:</p>
<pre><code>$ sudo diod -f
</code></pre>
<p>(There are command line options for debugging and for deactivating
authentication.)</p>
<p>Finally set <code>DIOD_ENABLE</code> to true in <code>/etc/default/diod</code></p>
<pre><code>$ sudo vim /etc/default/diod
</code></pre>
<p>and ensure that the <code>diod</code> service starts successfully.</p>
<p>On the client, create a target directory for the mount</p>
<pre><code>$ mkdir ~/sync
</code></pre>
<p>And then use <code>diodmount</code> to make the mount:</p>
<pre><code>$ apt install diod
$ sudo diodmount -n $SERVERADDR:/sync/$USER ~/sync
$ ls ~/sync
</code></pre>
<p>Since this mount was the first time I had used 9P, I spent a brief period of
time copying around ~80MB files, just to get a feel for the performance.</p>
<pre><code>$ time cp $EIGHTY_MB_FILE /tmp
cp $EIGHTY_MB_FILE /tmp 0.00s user 0.14s system 66% cpu 0.222 total
$ time cp $EIGHTY_MB_FILE ~/sync
cp $EIGHTY_MB_FILE sync 0.00s user 0.23s system 0% cpu 2:38.76 total
$ stat $EIGHTY_MB_FILE
File: $EIGHTY_MB_FILE
Size: 81224528 Blocks: 158648 IO Block: 4096 regular file
Device: 802h/2050d Inode: 37748762 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1001/ $USER) Gid: ( 50/ staff)
Access: 2020-10-27 18:05:41.399117077 -0700
Modify: 2019-06-06 06:58:17.680609774 -0700
Change: 2020-10-27 15:26:29.596553909 -0700
Birth: 2019-06-06 06:58:13.608637639 -0700
</code></pre>
<p>That’s an effective rate of ~511 kilobytes/second. I have a typical Comcast home
cable link, so there’s a maximum of ~6 megabits/second available.</p>
<p>Linux has <a href="https://www.kernel.org/doc/Documentation/filesystems/caching/fscache.txt">FS-Cache</a>, a built-in caching subsystem for network file
systems. We can enable caching for 9P by using the <code>cache</code> mount option:</p>
<pre><code>$ sudo umount ~/sync
$ sudo diodmount -n $SERVERADDR:/sync/$USER ~/sync -o cache=fscache
</code></pre>
<p>If we rerun our copy operation, we see</p>
<pre><code>$ time cp $EIGHTY_MB_FILE ~/sync
cp $EIGHTY_MB_FILE sync 0.01s user 0.18s system 1% cpu 16.538 total
</code></pre>
<p>Which is an effective speed of ~4911 kilobytes/second. I suspect most of this
speedup is just making the operations asynchronous from the perspective of our
<code>cp</code>(1) invocation.</p>
<p class="aside">
<p>There isn’t much recent work on 9P performance. <a href="https://www.usenix.org/legacy/events/usenix05/tech/freenix/hensbergen.html">Van Hensbergen and Minnich</a> (2005)
showed that 9P was generally competitive with NFS on a variety of workloads.</p>
</p>
<p>In an attempt to make detaching and reattaching the mount simple, I wrote
a brief script, named <code>toggle-sync</code>. You’ll need to make sure <code>HOME</code>,
<code>SERVERADDR</code>, and <code>USER</code> are defined.</p>
<pre><code>#!/bin/bash -p
hostname=$(uname -n)
mountpoint=$HOME/sync
server=$SERVERADDR
serverdir=/sync/$USER
if ! which wg-quick; then
echo "may need apt install wireguard"
exit 1
fi
if ! which diodmount; then
echo "may need apt install diod"
exit 1
fi
if ! pgrep -af munged; then
echo "munged not running; may need apt install munge and completed key configuration"
fi
if ip addr | grep -q "dsnet-$hostname"; then
echo "dsnet-$hostname wireguard link present"
else
wg-quick up "./dsnet-$hostname.conf"
fi
if mount | grep -q /home/sch/sync; then
echo "$mountpoint mounted; unmounting"
sudo umount "$mountpoint"
else
echo "$mountpoint not mounted; mounting"
sudo diodmount -n "$server:$serverdir" "$mountpoint" -o cache=fscache
fi
</code></pre>
<p>So far this setup has been working well for notes and small files. This post
(and its Hugo build) were written (and invoked) from <code>~/sync</code>. It’s nice to be
able to switch machines without losing my working state.</p>Bookmarks, 02020-01https://blueslugs.com/2020/10/29/bookmarks-02020-01%22/Thu, 29 Oct 2020 16:39:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/10/29/bookmarks-02020-01%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://linuxnet.ca/ieee/oui/">Sanitized IEEE OUI Data (oui.txt)</a> “The IEEE oui.txt file has become somewhat inconsistent over the years and subsequently requires subvention for use in network infrastructure documentation and reporting. In response to this we have produced a [daily] sanitized edition that is available for download in bzip2, gzip, Zip and ASCII text. Our sanitizing process performs Title Case conversion of legacy all UPPERCASE OUI records, fixes for vendor name inconsistencies, spelling corrections, removal of superfluous and erroneous data artifacts that have crept into the original daily generated IEEE oui.txt over time.”</p>
</li>
<li>
<p><a href="https://github.com/paperwm/PaperWM">GitHub - paperwm/PaperWM: Tiled scrollable window management for Gnome Shell</a> GNOME extension that enables a tiled window manage experience.</p>
</li>
<li>
<p><a href="https://clickhouse.yandex/">ClickHouse — open source distributed column-oriented DBMS</a> “ClickHouse is an open source column-oriented database management system capable of real time generation of analytical data reports using SQL queries.”</p>
</li>
</ul>Bookmarks, 02019-12https://blueslugs.com/2020/07/02/bookmarks-02019-12%22/Thu, 02 Jul 2020 07:10:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/07/02/bookmarks-02019-12%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://github.com/mthh/jenkspy">GitHub - mthh/jenkspy: Compute Natural Breaks in Python (Fisher-Jenks algorithm)</a> “Compute “natural breaks” (Fisher-Jenks algorithm) on list/tuple/numpy.ndarray of integers/floats.”</p>
</li>
<li>
<p><a href="https://arxiv.org/abs/1911.04768">[1911.04768] Debugging Crashes using Continuous Contrast Set Mining</a> “…. Debugging groups of crashes is a manually intensive process that requires deep domain expertise and close inspection of traces and code, often under time constraints. We use contrast set mining, a form of discriminative pattern mining, to learn what distinguishes one group of crashes from another. Prior works focus on discretization to apply contrast mining to continuous data. We propose the first direct application of contrast learning to continuous data, without the need for discretization.”</p>
</li>
</ul>Didelphis virginiana afternoon prowlhttps://blueslugs.com/2020/05/18/didelphis-virginiana-afternoon-prowl/Mon, 18 May 2020 14:56:12 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/05/18/didelphis-virginiana-afternoon-prowl/<p>Over the years, I’ve seen opossums crossing the road at dusk and assumed
they were nocturnal or
<a href="https://en.wiktionary.org/wiki/crepuscular">crepuscular</a>. This fellow,
however, went along our back fence a couple of times last week, during
the middle of the afternoon. Perhaps it was able to adjust its
routine—by covering more territory?—during the quiet of the
shelter-in-place restrictions.</p>
<p><a data-flickr-embed="true" href="https://www.flickr.com/photos/schahn/49910566926" title="Possum seeking"><img src="https://live.staticflickr.com/65535/49910566926_8476e1e5a3_c.jpg" width="800" height="800" alt="Possum seeking"></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script></p>
<p>The opossum was poking its nose into the leaf litter every so often,
although in the image it’s probably monitoring Rockie’s relative position.
Some marsupials <em>must</em> prowl, right?</p>Commit to run a virtual eventhttps://blueslugs.com/2020/05/07/short-run-virtual/Thu, 07 May 2020 11:06:36 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/05/07/short-run-virtual/<p>I just committed to run the <a href="https://www.letsdothis.com/us/e/the-no-stress-loch-ness-virtual-running-challenge-2020-187590">Triple Nessie Challenge</a>. Dina’s
already done a virtual event, but I was reluctant, since I had a
best-in-a-decade 5K result in February.</p>Bookmarks, 02019-11https://blueslugs.com/2020/05/01/bookmarks-02019-11%22/Fri, 01 May 2020 09:01:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/05/01/bookmarks-02019-11%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://levelup.gitconnected.com/rate-limiting-a0783293026a">A Guide to Rate Limiting with Examples in JavaScript</a> “Rate limiting is an effective and relatively easy way to mitigate security risks. It will not be the only thing you do secure your applications, and it might not even be the most important thing you do to secure your applications, but it should ALWAYS be in your toolbox.”</p>
</li>
<li>
<p><a href="https://www.robertmelton.com/posts/syntax-highlighting-off/">No Frils (AKA: Syntax Highlighting Off)</a> “Anti-syntax highlighting theme for Vim. Strives to theme everything without gaps in a minimalist, syntax off manner.”</p>
</li>
<li>
<p><a href="https://arxiv.org/abs/1606.00318">[1606.00318] Discovering Phase Transitions with Unsupervised Learning</a> “We show that unsupervised learning techniques can be readily used to identify phases and phases transitions of many body systems. Starting with raw spin configurations of a prototypical Ising model, we use principal component analysis to extract relevant low dimensional representations the original data and use clustering analysis to identify distinct phases in the feature space.”</p>
</li>
<li>
<p><a href="https://arxiv.org/abs/1605.01735">[1605.01735] Machine learning phases of matter</a> “Neural networks can be used to identify phases and phase transitions in condensed matter systems via supervised machine learning. Readily programmable through modern software libraries, we show that a standard feed-forward neural network can be trained to detect multiple types of order parameter directly from raw state configurations sampled with Monte Carlo.”</p>
</li>
<li>
<p><a href="https://hack.org/mc/mgr/">The MGR Window System</a> “MGR, sometimes said to be short for ‘ManaGeR’, sometimes short for ‘Munger’, is a simple network transparent window system. It was originally developed for the Sun 3 series of workstations by Stephen Uhler and colleagues beginning in 1984 while at Bellcore (later Telcordia, now part of Ericsson) and later enhanced by many others.”</p>
</li>
<li>
<p><a href="https://arxiv.org/abs/1908.03795">[1908.03795] Eigenvectors from Eigenvalues</a> “We present a new method of succinctly determining eigenvectors from eigenvalues. Specifically, we relate the norm squared of the elements of eigenvectors to the eigenvalues and the submatrix eigenvalues.”</p>
</li>
<li>
<p><a href="https://vcstarterkit.substack.com/p/how-vcs-make-money">How VCs Make Money</a> “Digging into ‘Two and Twenty’ & VC compensation.” Example arithmetic about a 50M$ venture fund, plus other interesting analysis.</p>
</li>
<li>
<p><a href="https://github.com/lunaryorn/mdcat">GitHub - lunaryorn/mdcat: cat for markdown</a> “cat for Markdown.” Implemented in Rust; available in Homebrew.</p>
</li>
<li>
<p><a href="https://facebook.github.io/prophet/">Prophet | Prophet is a forecasting procedure implemented in R and Python. It is fast and provides completely automated forecasts that can be tuned by hand by data scientists and analysts.</a> “Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends are fit with yearly, weekly, and daily seasonality, plus holiday effects. It works best with time series that have strong seasonal effects and several seasons of historical data.” Implementations in Python and R.</p>
</li>
<li>
<p><a href="https://www.liip.ch/en/blog/time-series-prediction-a-short-comparison-of-best-practices">Time Series Prediction - A short introduction for pragmatists · Blog · Liip</a> “Are you trying to predict time series but don’t know where to start? This blog post will provide a comparison of the most prominent techniques and show you how to implement them.”</p>
</li>
<li>
<p><a href="https://layerci.com/blog/postgres-is-the-answer/">System design hack: Postgres is a great pub/sub & job server</a> “If you’re making any project of sufficient complexity, you’ll need a publish/subscribe server to process events. This article will introduce you to Postgres, explain the alternatives, and walk you through an example use case of pub/sub and its solution.”</p>
</li>
<li>
<p><a href="https://mickey.dev/posts/go-build-tags-testing/">Separate Your Go Tests with Build Tags | Josh Michielsen (Jmickey)</a> “Have you ever wanted to separate your unit tests from your integration or smoke tests? Go has a built-in mechanism for allowing you to logically separate your tests, in addition to adding conditionals (e.g. operating system or CPU architecture) with Build Tags.”</p>
</li>
</ul>Bookmarks, 02019-10https://blueslugs.com/2020/01/04/bookmarks-02019-10%22/Sat, 04 Jan 2020 07:22:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/01/04/bookmarks-02019-10%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://normform.netlify.com/">Normform</a> CSS improvements for forms.</p>
</li>
<li>
<p><a href="https://glyph.twistedmatrix.com/2018/01/shipping-pygame-mac-app.html">Deciphering Glyph :: Tips And Tricks for Shipping a PyGame App on the Mac</a> “A quick and dirty guide to getting that little PyGame hack you did up and running on someone else’s Mac.”</p>
</li>
<li>
<p><a href="https://github.com/terrycojones/daudin">GitHub - terrycojones/daudin: A Python command-line shell</a> “daudin is a UNIX command-line shell based on Python.”</p>
</li>
<li>
<p><a href="http://blog.rtwilson.com/five-new-ish-python-things-part-1/">Five new-ish Python things – Part 1 « Robin’s Blog</a> Some Python utilities (including a MacOS previewer for Jupyter notebooks) I hadn’t heard of.</p>
</li>
<li>
<p><a href="https://github.com/juruen/rmapi">juruen/rmapi: Go app that allows you to access your reMarkable tablet files through the Cloud API</a> Command line shell to manipulate reMarkable tablet contents.</p>
</li>
<li>
<p><a href="https://twitter.com/schahn/status/1186335704416051201/photo/1">Twitter</a> Pulled out a classic on a cooler morning.</p>
</li>
<li>
<p><a href="https://goaccess.io/">GoAccess - Visual Web Log Analyzer</a> A terminal-based web log analyzer</p>
</li>
</ul>Bookmarks, 02019-09https://blueslugs.com/2020/01/04/bookmarks-02019-09%22/Sat, 04 Jan 2020 07:21:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2020/01/04/bookmarks-02019-09%22/<p>One month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://twitter.com/i/web/status/1177024203377336320">Twitter</a> It is polite for an article on a report to link to the report. Possibly before the inevitable précis you felt you m…</p>
</li>
<li>
<p><a href="https://backgroundchecks.org/justdeleteme/">Just Delete Me | A directory of direct links to delete your account from web services.</a> Quick links (and assessment of deletion difficulty) for many web services.</p>
</li>
</ul>Bookmarks, 02019-07https://blueslugs.com/2019/11/12/bookmarks-02019-07%22/Tue, 12 Nov 2019 09:36:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/11/12/bookmarks-02019-07%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://www.wsj.com/articles/a-mexico-city-hotel-for-true-fans-of-midcentury-modernism-11563987930?mod=hp_listc_pos1">A Mexico City Hotel for True Fans of Midcentury Modernism - WSJ</a> Short review of a modern hotel and nearby attractions in Mexico City.</p>
</li>
<li>
<p><a href="https://www.smashingmagazine.com/2019/07/gorgeous-free-open-source-typefaces/">7 Gorgeous Free And Open-Source Typefaces And When To Use Them — Smashing Magazine</a> Review of some recently published fonts.</p>
</li>
<li>
<p><a href="https://an3223.github.io/Living-without-the-modern-browser/">Living without the modern browser – AN3223’s Blog – Linux and stuff</a> Examples of how to use text browsers and other small clients instead of a web browser.</p>
</li>
<li>
<p><a href="https://libertystreeteconomics.newyorkfed.org/2019/06/assessing-contagion-risk-in-a-financial-network.html">Assessing Contagion Risk in a Financial Network</a> Contagion risk modeling.</p>
</li>
<li>
<p><a href="https://www.machinelearningplus.com/time-series/arima-model-time-series-forecasting-python">ARIMA Model - Complete Guide to Time Series Forecasting in Python | ML+</a> Introduction to ARIMA models in Python</p>
</li>
</ul>Bookmarks, 02019-06https://blueslugs.com/2019/11/02/bookmarks-02019-06%22/Sat, 02 Nov 2019 08:48:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/11/02/bookmarks-02019-06%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://nationalparktypeface.com/">National Park Typeface</a> “A TYPEFACE DESIGNED TO MIMIC THE NATIONAL PARK SERVICE
SIGNS THAT ARE CARVED USING A ROUTER BIT.” (Upper case theirs.)</li>
</ul>Community center demolition visiblehttps://blueslugs.com/2019/10/26/hillview-demolition%22/Sat, 26 Oct 2019 07:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/10/26/hillview-demolition%22/<p><a data-flickr-embed="true" href="https://www.flickr.com/photos/schahn/48949573708/in/dateposted-public/"
title="p-hillview-demo-20181023">
<img src="https://live.staticflickr.com/65535/48949573708_2791edef23_z.jpg"
width="640" height="360" alt="p-hillview-demo-20181023" /></a><script
async src="//embedr.flickr.com/assets/client-code.js"
charset="utf-8"></script></p>
<p>Rockie and I have been regularly circling the Hillview Community Center
as one of our early morning walks. When the construction fences went
up, we adjusted our route. This Wednesday, we finally noticed
demolition on a larger scale.</p>Bookmarks, 02019-05https://blueslugs.com/2019/07/25/bookmarks-02019-05%22/Thu, 25 Jul 2019 06:06:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/07/25/bookmarks-02019-05%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://codingnest.com/modern-sat-solvers-fast-neat-and-underused-part-3-of-n/">Modern SAT solvers: fast, neat and underused (part 3 of N) — The Coding Nest</a> “In this part, we will look at how SAT solvers work and what heuristics and other tricks they employ in their quest for performance.”</p>
</li>
<li>
<p><a href="https://manticoresearch.com/2019/04/09/tf-idf-in-a-nutshell/">TF-IDF in a nutshell – Manticore Search</a> “In this article I’ll try to show in very clear examples how TF standing for ‘term frequency’ and it’s counterpart IDF standing for ‘inverse document frequency’ help to find what you’re looking for.”</p>
</li>
</ul>Bookmarks, 02019-04https://blueslugs.com/2019/07/25/bookmarks-02019-04%22/Thu, 25 Jul 2019 06:04:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/07/25/bookmarks-02019-04%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://practical-scheme.net/gauche/index.html">Gauche - A Scheme Implementation</a> “Gauche is an R7RS Scheme implementation developed to be a handy script interpreter, which allows programmers and system administrators to write small to large scripts for their daily chores.”</p>
</li>
<li>
<p><a href="https://launchpad.net/~umang/+archive/ubuntu/indicator-stickynotes">Indicator Stickynotes : Umang Varma</a> A stickynotes application for Ubuntu.</p>
</li>
<li>
<p><a href="https://beetstech.com/blog/decode-meaning-behind-apple-serial-number">Decode The Meaning Behind Your Apple Serial Number | BeetsBlog</a> “The serial numbers of Apple products contain a codified language that can give you information about your Apple device that can’t be found through any other means—everything from the location where it was manufactured, the date it was manufactured, and much more. This information can be valuable for troubleshooting issues with your device or just for curiosity’s sake. So let’s get to breaking down their impenetrable code.”</p>
</li>
</ul>Bookmarks, 02019-03https://blueslugs.com/2019/04/01/bookmarks-02019-03%22/Mon, 01 Apr 2019 18:21:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/04/01/bookmarks-02019-03%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://castel.dev/post/lecture-notes-1/">How I’m able to take notes in mathematics lectures using LaTeX and Vim | Gilles Castel</a> Uses context-aware snippets (and per-course special snippets).</p>
</li>
<li>
<p><a href="https://nullprogram.com/blog/2019/03/22/">Endlessh: an SSH Tarpit « null program</a> “This program opens a socket and pretends to be an SSH server. However, it actually just ties up SSH clients with false promises indefinitely — or at least until the client eventually gives up. After cloning the repository, here’s how you can try it out for yourself (default port 2222):</p>
<pre><code> $ make
$ ./endlessh &
$ ssh -p2222 localhost
</code></pre>
<p>Your SSH client will hang there and wait for at least several days before finally giving up. Like a mammoth in the La Brea Tar Pits, it got itself stuck and can’t get itself out. As I write, my Internet-facing SSH tarpit currently has 27 clients trapped in it. A few of these have been connected for weeks. In one particular spike it had 1,378 clients trapped at once, lasting about 20 hours.”</p>
</li>
</ul>Bookmarks, 02019-02https://blueslugs.com/2019/04/01/bookmarks-02019-02%22/Mon, 01 Apr 2019 18:21:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/04/01/bookmarks-02019-02%22/<p>February’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://blog.gtank.cc/modern-alternatives-to-pgp/">Modern Alternatives to PGP</a> A set of recommendations for (mostly) Golang modules for various cryptographic use cases, instead of using PGP/GPG.</p>
</li>
<li>
<p><a href="https://www.autodeskresearch.com/publications/samestats">The Datasaurus Dozen - Same Stats, Different Graphs: Generating Datasets with Varied Appearance and Identical Statistics through Simulated Annealing | Autodesk Research</a> Used annealing to morph a dataset to 12 other shapes, while preserving summary statistics.</p>
</li>
<li>
<p><a href="https://ritholtz.com/2013/10/more-noise-less-signal/">More Noise, Less Signal - The Big Picture</a> “[As] a thought experiment, I wondered what the process might look like if went another way: What would happen if you purposefully tried to assemble a “How-to” list to pursue the exact opposite goal — how to get more noise, and less signal?” In other words, what are the exactly wrong things to do as an investor?</p>
</li>
</ul>Bookmarks, 02019-01https://blueslugs.com/2019/04/01/bookmarks-02019-01%22/Mon, 01 Apr 2019 18:20:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/04/01/bookmarks-02019-01%22/<p>January’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://objective-see.com/products/blockblock.html">Objective-See BlockBlock</a> “BlockBlock continually monitors common persistence locations and displays an alert whenever a persistent component is added to the OS.” In beta.</p>
</li>
<li>
<p><a href="http://www.cs.ucr.edu/%7Eeamonn/MatrixProfile.html">UCR Matrix Profile Page</a> “The Matrix Profile (and the algorithms to compute it: …), has the potential to revolutionize time series data mining because of its generality, versatility, simplicity and scalability.”</p>
</li>
<li>
<p><a href="https://qz.com/480741/this-free-online-encyclopedia-has-achieved-what-wikipedia-can-only-dream-of/">The Stanford Encyclopedia of Philosophy has achieved what Wikipedia can only dream of — Quartz</a> “[The encyclopedia’s] creators have solved one of the internet’s fundamental problems: How to provide authoritative, rigorously accurate knowledge, at no cost to readers. It’s something the encyclopedia, or SEP, has managed to do for two decades.”</p>
</li>
</ul>Flocking and out of rangehttps://blueslugs.com/2019/01/05/cardinals/Sat, 05 Jan 2019 17:28:49 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/01/05/cardinals/<p><a data-flickr-embed="true" href="https://www.flickr.com/photos/schahn/31675691247/" title="Flocking and out of range"><img src="https://farm8.staticflickr.com/7918/31675691247_d5bd143986.jpg" width="500" alt="Flocking and out of range"></a></p>
<p>Seen in Lihue, HI.</p>Bookmarks, 02018-12https://blueslugs.com/2019/01/05/bookmarks-02018-12%22/Sat, 05 Jan 2019 08:00:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/01/05/bookmarks-02018-12%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://optician-sans.com/">Optician Sans – Free font based on historical optotypes</a> “Optician Sans is based on the same visual principles as the LogMAR chart, adjusted to be used as a fully functional display typeface.”</p>
</li>
<li>
<p><a href="https://www.matrix-vision.com/manuals/mvBlueLYNX/ProgrammingOwnApplications_page_IPK.html">MATRIX VISION - mvBlueLYNX Documentation: Programming own applications | IPK how-tos</a> A good, short overview of ipk package tools and construction.</p>
</li>
</ul>Bookmarks, 02018-11https://blueslugs.com/2019/01/05/bookmarks-02018-11%22/Sat, 05 Jan 2019 08:00:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/01/05/bookmarks-02018-11%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="https://github.com/precurse/ansible-smartos_provision">precurse/ansible-smartos_provision</a> Repository for SmartOS Ansible provisioning role.</p>
</li>
<li>
<p><a href="https://docs.ansible.com/ansible/latest/modules/vmadm_module.html">vmadm - Manage SmartOS virtual machines and zones. — Ansible Documentation</a> Ansible module for VM provisioning on SmartOS. Requires Python 2 in global zone.</p>
</li>
<li>
<p><a href="https://attack.mitre.org/">MITRE ATT&CK™</a> MITRE ATT&CK™ is a globally-accessible knowledge base of adversary tactics and techniques based on real-world observations. (Referred to as the “attack matrix”.)</p>
</li>
<li>
<p><a href="https://www.theregister.co.uk/2018/11/20/germany_versus_openwrt_ccc/">Germany pushes router security rules, OpenWRT and CCC push back • The Register</a> German requirements for routers.</p>
</li>
<li>
<p><a href="https://opensource.com/article/18/11/command-line-tools-writers">7 command-line tools for writers | Opensource.com</a> [No summary.]</p>
</li>
</ul>Bookmarks, 02018-10https://blueslugs.com/2019/01/05/bookmarks-02018-10%22/Sat, 05 Jan 2019 08:00:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2019/01/05/bookmarks-02018-10%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="http://www.doxsey.net/blog/kubernetes--the-surprisingly-affordable-platform-for-personal-projects">Kubernetes: The Surprisingly Affordable Platform for Personal Projects | doxsey.net</a> “Kubernetes makes sense for small projects and you can have your own Kubernetes cluster today for as little as $5 a month.” Small tutorial on setting up a cluster to run a web application.</li>
</ul>Bookmarks, 02018-08https://blueslugs.com/2018/10/01/bookmarks-02018-08%22/Mon, 01 Oct 2018 18:00:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/10/01/bookmarks-02018-08%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li>
<p><a href="http://smtlib.cs.uiowa.edu/">SMT-LIB The Satisfiability Modulo Theories Library</a> “SMT-LIB is an international initiative aimed at facilitating research and development in Satisfiability Modulo Theories (SMT).” In particular, a language for representing SMT problems that multiple solvers understand.</p>
</li>
<li>
<p><a href="https://github.com/AlDanial/cloc">GitHub - <code>AlDanial/cloc</code></a> “<code>cloc</code> counts blank lines, comment lines, and physical lines of source code in many programming languages.”</p>
</li>
<li>
<p><a href="https://towardsdatascience.com/why-automated-feature-engineering-will-change-the-way-you-do-machine-learning-5c15bf188b96">Why Automated Feature Engineering Will Change the Way You Do Machine Learning</a> “Automated feature engineering is a relatively new technique, but, after using it to solve a number of data science problems using real-world data sets, I’m convinced it should be a standard part of any machine learning workflow.”</p>
</li>
<li>
<p><a href="https://preserve.lehigh.edu/cgi/viewcontent.cgi?article=2581&context=etd">Oztekin, Dennis Ekin, “The Lattice Boltzmann Methods and Their Applications to Fluid Flows” (2014). Theses and Dissertations. Paper 1581.</a> “The history of the Lattice Boltzmann Method and its application to fluid mechanics are
investigated here. Detailed formulations are provided to form a basis for the Lattice
Boltzmann Method and its many variations. These variations are designed to overcome
shortcomings in the standard single relaxation time Lattice Boltzmann model. Presented
here are: a model that utilizes the non-equilibrium parts of the stress tensor, the
Regularized Lattice Boltzmann model; a model that converts over to momentum space,
the Multi-Relaxation Time Lattice Boltzmann model; and a model that corrects itself
using the entropy equation, the entropic Lattice Boltzmann model. Extensions for the
Lattice Boltzmann method are derived that include: external forces, multiphase flows,
and thermal flows. Various types of boundary conditions are modeled using different
approaches. A detailed explanation on extracting common macroscopic flow properties in
physical units is provided. These extracted properties can be used to check temporal and
spatial convergence. A two dimensional, nine velocity model and a three dimensional,
fifteen velocity model are used to provide examples of a number of the approaches
mentioned. A two dimensional and three dimensional lid-driven cavity flow is used to
illustrate these methods.”</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Lattice_Boltzmann_methods">Lattice Boltzmann methods - Wikipedia</a> “Lattice Boltzmann methods (LBM) … [are] a class of computational fluid dynamics (CFD) methods for fluid simulation. " Successor to lattice gas automaton methods.</p>
</li>
</ul>Bookmarks, 02018-06https://blueslugs.com/2018/07/19/bookmarks-02018-06%22/Thu, 19 Jul 2018 07:39:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/07/19/bookmarks-02018-06%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://ucsusa.maps.arcgis.com/apps/MapSeries/index.html?appid=cf07ebe0a4c9439ab2e7e346656cb239">US Coastal Property at Risk from Rising Seas</a> “This national analysis identifies the number of US homes at risk from chronic flooding over the coming decades due to sea level rise.”</li>
</ul>Bookmarks, 02018-05https://blueslugs.com/2018/06/09/bookmarks-02018-05%22/Sat, 09 Jun 2018 16:56:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/06/09/bookmarks-02018-05%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://plumbum.readthedocs.io/en/latest/">Plumbum: Shell Combinators and More — Plumbum: Shell Combinators</a> “Plumbum… is a small yet feature-rich library for shell script-like programs in Python. The motto of the library is ‘Never write shell scripts again’, and thus it attempts to mimic the shell syntax (shell combinators) where it makes sense, while keeping it all Pythonic and cross-platform.”</li>
<li><a href="https://github.com/RelaxedJS/ReLaXed">GitHub - RelaxedJS/ReLaXed: Create PDF documents using web technologies</a> “ReLaXed creates PDF documents interactively using HTML or Pug (a shorthand for HTML). It allows complex layouts to be defined with CSS and JavaScript, while writing the content in a friendly, minimal syntax close to Markdown or LaTeX.”</li>
<li><a href="https://macdown.uranusjr.com/">MacDown: The open source Markdown editor for macOS</a> “MacDown is an open source Markdown editor for macOS, released under the MIT License. "</li>
<li><a href="http://weasyprint.org/">WeasyPrint converts HTML/CSS documents to PDF - WeasyPrint</a> “WeasyPrint is a visual rendering engine for HTML and CSS that can export to PDF. It aims to support web standards for printing. WeasyPrint is free software made available under a BSD license.”</li>
</ul>Bookmarks, 02018-04https://blueslugs.com/2018/05/17/bookmarks-02018-04%22/Thu, 17 May 2018 17:38:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/05/17/bookmarks-02018-04%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://vincent.bernat.im/en/blog/2018-more-privacy-blog">A more privacy-friendly blog | Vincent Bernat</a> “When I started this blog, I embraced some free services, like Disqus or Google Analytics. These services are quite invasive for users’ privacy. Over the years, I have tried to correct this to reach a point where I do not rely on any “privacy-hostile” services.”</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax">Spread syntax - JavaScript | MDN</a> “Spread syntax allows an iterable such as an array expression or string to be expanded in places where zero or more arguments (for function calls) or elements (for array literals) are expected, or an object expression to be expanded in places where zero or more key-value pairs (for object literals) are expected.” The spread operator is “…”.</li>
</ul>Bookmarks, 02018-03https://blueslugs.com/2018/04/10/bookmarks-02018-03%22/Tue, 10 Apr 2018 09:43:06 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/04/10/bookmarks-02018-03%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://blog.insightdatascience.com/always-start-with-a-stupid-model-no-exceptions-3a22314b9aaa">Always start with a stupid model, no exceptions. – Insight Data</a> Advocates starting with simple models, like linear or logistic regression, and then understanding where those initial models fail.</li>
<li><a href="http://www.lawyersgunsmoneyblog.com/2014/07/policy-imagination">What Is a “Policy Imagination”? - Lawyers, Guns & Money</a> Interesting for citation of mid-20th century “National Balance Sheet” model by Baxter.</li>
<li><a href="http://roughjs.com/">Rough.js</a> “Rough.js is a light weight (~8k), Canvas based library that lets you draw in a sketchy, hand-drawn-like, style. The library defines primitives to draw lines, curves, arcs, polygons, circles, and ellipses. It also supports drawing SVG paths.”</li>
<li><a href="https://github.com/mpetazzoni/ptftpd">GitHub - mpetazzoni/ptftpd: A TFTP/PXE tool suite written in Python</a> “pTFTPd is a collection of tools related to TFTP. It includes a TFTP server, a TFTP client, and a complete PXE solution based on this TFTP server and a micro-DHCP or BOOTP server. All these tools are written in Python and designed to be fast, RFC compliant and easy to use.”</li>
<li><a href="http://input.fontbureau.com/">Input: Fonts for Code</a> “Input is a flexible system of fonts designed specifically for code by David Jonathan Ross. It offers both monospaced and proportional fonts, all with a large range of widths, weights, and styles for richer code formatting.”</li>
</ul>Bookmarks, 02018-02https://blueslugs.com/2018/03/06/bookmarks-02018-02%22/Tue, 06 Mar 2018 18:02:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/03/06/bookmarks-02018-02%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://github.com/Submanifold/latex-mimosis">GitHub - Submanifold/latex-mimosis: A minimal & modern LaTeX template for your (bachelor’s | master’s | doctoral) thesis</a> “This repository contains a minimal & modern LaTeX template for dissertations and other university documents.” Very nice; A4 by default.</li>
<li><a href="http://sfepy.org/doc-devel/index.html">SfePy: Simple Finite Elements in Python</a> “SfePy is a software for solving systems of coupled partial differential equations (PDEs) by the finite element method in 1D, 2D and 3D. It can be viewed both as black-box PDE solver, and as a Python package which can be used for building custom applications. The word “simple” means that complex FEM problems can be coded very easily and rapidly.”</li>
<li><a href="https://medium.com/actualize-network/modern-css-explained-for-dinosaurs-5226febe3525">Modern CSS Explained For Dinosaurs – Actualize – Medium</a> Survey from CSS basics to methodologies used today.</li>
</ul>Bookmarks, 02018-01https://blueslugs.com/2018/03/06/bookmarks-02018-01%22/Tue, 06 Mar 2018 18:02:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/03/06/bookmarks-02018-01%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://create.adobe.com/2018/1/8/not_another_free_ima.html?trackingid=BWBX35BS&mv=email">Not Another Free Image Click-Bait Article | Create</a> “High-quality, free images that you can legally modify for commercial projects do exist. Here’s where to find digital files you can use in any [graphical] application.”</li>
<li><a href="https://backtracks.fm/">Podcast analytics and hosting - Backtracks</a> Current pricing for a hobbyist is ~480$/a.</li>
<li><a href="http://www.oreilly.com/tim/herbert/index.html">Tim O’Reilly - Frank Herbert - O’Reilly Media</a> O’Reilly wrote a short book–now out of print–on Frank Herbert.</li>
<li><a href="http://karinapuente.com/index/">55 [In]visible Cities Project — KARINA PUENTE</a> Drawings of the cities described in Calvino’s <em>Invisible Cities</em>.</li>
</ul>Bookmarks, 02017-12https://blueslugs.com/2018/01/23/bookmarks-02017-12%22/Tue, 23 Jan 2018 17:52:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2018/01/23/bookmarks-02017-12%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://engineering.instagram.com/let-your-code-type-hint-itself-introducing-open-source-monkeytype-a855c7284881">Let your code type-hint itself: introducing open source MonkeyType</a> “Today we are excited to announce we’re open-sourcing MonkeyType, our tool for automatically adding type annotations to your Python 3 code via runtime tracing of types seen.” Trace Python 3 scripts, then output captured type assignments (or apply to source).</li>
<li><a href="https://github.com/gka/schnack">gka/schnack: 🗣️ Simple node app for Disqus-like drop-in commenting on static websites</a> “schnack.js is a simple node app for Disqus-like drop-in commenting on static websites.”</li>
<li><a href="https://github.com/jessfraz/weather">GitHub - jessfraz/weather: Weather via the command line.</a> “Weather via the command line. Uses the darksky.net API so it’s super accurate. Also includes any current weather alerts in the output.”</li>
<li><a href="http://www.bzarg.com/p/12-trail-runs-under-10-miles-in-sf-and-the-east-bay/">12 trail runs under 10 miles in SF and the East Bay | Bzarg</a> “… I offer below a catalog of twelve routes we’ve found over the last year. Some of these have alternate routes, so be sure to use the Google Maps layer view to selectively view the one you’re interested in, so the two routes don’t clutter each other.”</li>
<li><a href="http://python.apichecklist.com/">Python API Checklist</a> “Useful checklist for building good Python library APIs.” Many of the design principles apply to any small library interface.</li>
<li><a href="https://2ton.com.au/HeavyThing/">HeavyThing x86_64 assembler library | 2 Ton Digital</a> An library for application programming in x86 assembly.</li>
</ul>Bookmarks, 02017-11https://blueslugs.com/2017/12/18/bookmarks-02017-11%22/Mon, 18 Dec 2017 15:08:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/12/18/bookmarks-02017-11%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://blog.lizzie.io/linux-containers-in-500-loc.html#sec-2-5">Linux containers in 500 lines of code</a> A very strong article on the code necessary to construct a container from scratch on Linux. Careful commentary and citations on capabilities and seccomp restrictions to limit processes within the container.</li>
</ul>Bookmarks, 02017-10https://blueslugs.com/2017/11/05/bookmarks-02017-10%22/Sun, 05 Nov 2017 15:30:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/11/05/bookmarks-02017-10%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://twitter.com/andrejpwalker/status/922628584619085824">Twitter</a> RT @ashleymloftin: RT if you’re an adult who uses the library.</li>
<li><a href="https://statico.github.io/vim3.html">Vim After 15 Years | Ian Langworth’s Things of Variable Interest</a> Vim 8 added a lot of much-needed functionality, and new community sites like VimAwesome have made plugin discovery and evaluation easier. I’ve been doing a lot more work with Vim lately and have spent some time configuring my workflow for peak efficiency, so here’s a snapshot of my current state.</li>
<li><a href="https://wonderunit.com/storyboarder/">Storyboarder - The best and easiest way to storyboard. | Wonder Unit</a> “Storyboarder makes it easy to visualize a story as fast you can draw stick figures. Quickly draw to test if a story idea works. Create and show animatics to others. Express your story idea without making a movie.”</li>
<li><a href="http://blog.erratasec.com/2017/10/responsible-encryption-fallacies.html">Errata Security: “Responsible encryption” fallacies</a> RT @ErrataRob: I wrote a thing on “responsible disclosure”. I’m not happy with it, but some ideas need to be addressed.</li>
<li><a href="https://blog.hostedgraphite.com/2016/04/26/no-brogrammers-practical-tips-for-writing-inclusive-job-ads/">No brogrammers: Practical tips for writing inclusive job ads</a> “By paying attention to the language we use to describe ourselves, our ideal candidates, and the job responsibilities, we can broaden the net of candidates that might apply and help in some small way to tackle the tech diversity problem.”</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API">Page Visibility API - Web APIs | MDN</a> “The Page Visibility API lets you know when a webpage is visible or in focus. With tabbed browsing, there is a reasonable chance that any given webpage is in the background and thus not visible to the user. When the user minimizes the webpage or moves to another tab, the API sends a visibilitychange event regarding the visibility of the page. You can detect the event and perform some actions or behave differently.” Occurs regularly on mobile browsers.</li>
<li><a href="https://github.com/milochristiansen/lua">milochristiansen/lua: A Lua 5.3 VM and compiler written in Go.</a> “A Lua 5.3 VM and compiler written in Go.” Has some language/library pruning, in support of security goals.</li>
</ul>Bookmarks, 02017-09https://blueslugs.com/2017/10/01/bookmarks-02017-09%22/Sun, 01 Oct 2017 15:32:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/10/01/bookmarks-02017-09%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://asciinema.org/a/BnmdIYpE2BQAkyjKb3TH1eG7u">OmniOS build - asciinema</a> RT @OmniOSce: Want to build #OmniOS yourself? It’s easier than you think!
#illumos</li>
<li><a href="https://github.com/tomazk/envcfg">GitHub - tomazk/envcfg: Un-marshaling environment variables to Go structs</a> Interesting golang module that manages marshalling of application-relevant environment variables to and from a struct. Includes a convenient .ClearEnvVars() method that unsets the variable set, which would be used prior to spawning a child process.</li>
</ul>Bookmarks, 02017-08https://blueslugs.com/2017/09/20/bookmarks-02017-08%22/Wed, 20 Sep 2017 23:32:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/09/20/bookmarks-02017-08%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://grisha.org/blog/2017/03/22/tgres-0-dot-10-dot-0b-time-series-with-go-and-postgresql/">Tgres 0.10.0b - Time Series with Go and PostgreSQL - Grisha Trubetskoy</a> “Tgres is a Go program which can receive time series data via Graphite, Statsd protocols or an http pixel, store it in PostgreSQL, and provide Graphite-like access to the data in a way that is compatible with tools such as Grafana. You could think of it as a drop-in Graphite/Statsd replacement, though I’d rather avoid direct comparison, because the key feature of Tgres is that data is stored in PostgreSQL.”</li>
<li><a href="https://mxb.at/blog/offline-forms/">Offline-Friendly Forms | Max Böck - Frontend Web Developer</a> “Forms on the web don’t usually play nice with bad connections. If you try to submit a form while offline, you’ll most likely just lose your input…. With the introduction of Service Workers, developers are now able to supply experiences on the web that will work even without an internet connection. While it’s relatively easy to cache static resources, things like forms that require server interaction are harder to optimize. It is possible to provide a somewhat useful offline fallback though.”</li>
<li><a href="http://ferret-lang.org/">Ferret Programmer’s Manual</a> “Ferret is a free software Clojure implementation, it compiles a restricted subset of the Clojure language to self contained ISO C++11 which allows for the use of Clojure in real time embedded control systems.”</li>
<li><a href="https://github.com/hslatman/awesome-threat-intelligence">GitHub - hslatman/awesome-threat-intelligence: A curated list of Awesome Threat Intelligence resources</a> “A curated list of awesome Threat Intelligence resources.”</li>
</ul>Bookmarks, 02017-07https://blueslugs.com/2017/08/02/bookmarks-02017-07%22/Wed, 02 Aug 2017 21:21:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/08/02/bookmarks-02017-07%22/<p>Last month’s bookmarks from <a href="http://pinboard.in/u:schahn">pinboard.in</a>:</p>
<ul>
<li><a href="https://savvyapps.com/blog/how-to-build-restful-api-mobile-app">A Massive Guide to Building a RESTful API for Your Mobile App - Savvy Apps</a> “In our experience, we’ve found that establishing guidelines on how to build better APIs for mobile apps saves time and effort during development and reduces headache later on in the process…. We wrote this guide to outline the best practices for building out APIs, web services, and databases for mobile apps and mobile clients. In this post, we go in-depth on creating a RESTful API specifically for mobile apps.”</li>
<li><a href="http://calver.org/">Calendar Versioning — CalVer</a> “CalVer is a software versioning convention that is based on your project’s release calendar, instead of arbitrary numbers.”</li>
<li><a href="https://mxb.at/blog/how-to-turn-your-website-into-a-pwa/">How to turn your website into a PWA | Max Böck - Frontend Web Developer</a> “A Progressive Web App, or PWA, uses modern web capabilities to deliver an app-like user experience. Any website can be a PWA - here’s how to do it.”</li>
<li><a href="https://www.wired.com/2017/07/cheap-fountain-pens/">Fountain Pen Buying Guide: 7 Options Under $30 | WIRED</a> “We’ve rounded up seven inexpensive fountain pens (all are under $30; one is only $3) that either are disposable or employ swappable cartridges to make refilling simple and tidy.”</li>
<li><a href="https://letsencrypt.org//2017/07/06/wildcard-certificates-coming-jan-2018.html">Wildcard Certificates Coming January 2018 - Let’s Encrypt - Free SSL/TLS Certificates</a> Wildcard certificates will be offered free of charge via our upcoming ACME v2 API endpoint. We will initially only support base domain validation via DNS for wildcard certificates, but may explore additional validation options over time.</li>
</ul>Quick tournament link, 7/22https://blueslugs.com/2017/07/22/quick-tournament-link-722/Sat, 22 Jul 2017 12:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/07/22/quick-tournament-link-722/<p>Nathaniel is debuting with MVLA this weekend in his first tournament of the summer :</p>
<ul>
<li><a href="http://events.gotsport.com/events/schedule.aspx?EventID=59218&Gender=Boys&Age=14">2017 Juventus Tournament of Champions U14B</a></li>
</ul>Glossyhttps://blueslugs.com/2017/04/23/glossy/Sun, 23 Apr 2017 10:40:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/04/23/glossy/<p><img src="https://blueslugs.com/2017/04/23/P1000019.jpg" alt="Establishing station" title="Glossy brewing equipment"></p>
<p>Even the ceramic cone (then in use) has a sheen.</p>Building `make-guile` on MacOShttps://blueslugs.com/2017/04/09/building-make-guile-on-macos/Sun, 09 Apr 2017 13:10:00 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2017/04/09/building-make-guile-on-macos/<p>I’ve been experimenting with <a href="https://www.gnu.org/software/make/">GNU Make</a> with the optional <a href="https://www.gnu.org/software/guile/">Guile</a>
support. On Debian, <code>make-guile</code> is a package, but on MacOS I had to build
a local copy, tying in the <a href="https://brew.sh">Homebrew</a> build of Guile.</p>
<p>First, to verify that your installation of GNU Make doesn’t already have Guile
support, use this small Makefile to test the <code>.FEATURES</code> variable.</p>
<pre><code>$ cat > ~/Makefile.test-guile
has_guile:
@if echo $(.FEATURES) | grep -vq guile; then \
echo "no \c"; \
fi; echo "guile support"
^D
</code></pre>
<p>Now we have a test we can use with various GNU Make deployments:</p>
<pre><code>$ make -f ~/Makefile.test-guile
no guile support
</code></pre>
<p>To build make, we will need a C compilation environment, the source archive for
GNU Make, and a working <code>libguile</code>. For the latter, I chose to reuse the
<code>guile</code> built by Homebrew.</p>
<pre><code>$ brew install guile
</code></pre>
<p>Then, configuration should look something like</p>
<pre><code>$ ./configure $(autoargs) --with-guile \
GUILE_CFLAGS=-I/usr/local/include/guile/2.2 \
GUILE_LIBS="-L/usr/local/lib \
-lguile-2.2.0"
....
</code></pre>
<p>(<code>autoargs</code> is a utility that sets <code>PREFIX</code> and other <code>autoconf</code> variables for
installation into my home directory on the local system.)</p>
<p>After a <code>make</code> and <code>make install</code>, we should have a version of <code>make</code> we can
invoke:</p>
<pre><code>$ make -f ~/Makefile.test-guile
guile support
</code></pre>
<p>Now we have a means to experiment with Scheme in the context of the Make/Guile
platform.</p>Updating CPPFunction in old readline consumershttps://blueslugs.com/2016/10/23/updating-cppfunction-in-old-readline-consumers/Sun, 23 Oct 2016 13:19:10 -0700stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2016/10/23/updating-cppfunction-in-old-readline-consumers/<p>One of my favourite open source utilities is <a href="http://www.rpcurnow.force9.co.uk/tdl/">tdl</a>, a
command-line to-do list manager. I was recently updating a SmartOS VM
for development work, and noticed that I lacked a working <code>tdl</code> binary.
An attempt to build it resulted in a failure like</p>
<pre><code>gcc -O2 -Wall -DUSE_DOTLOCK=1 -DUSE_READLINE=1 -DBARE_READLINE_H=0 -DUSE_RL_COMPLETION_MATCHES=1 -c inter.c
inter.c: In function 'interactive_text_readline':
inter.c:559:3: error: unknown type name 'Function'
inter.c:562:25: warning: assignment from incompatible pointer type [enabled by default]
inter.c:568:21: warning: assignment from incompatible pointer type [enabled by default]
inter.c: In function 'interactive_text':
inter.c:636:41: error: 'CPPFunction' undeclared (first use in this function)
inter.c:636:41: note: each undeclared identifier is reported only once for each function it appears in
inter.c:636:54: error: expected expression before ')' token
inter.c:638:54: error: expected expression before ')' token
inter.c: In function 'interactive':
inter.c:656:41: error: 'CPPFunction' undeclared (first use in this function)
inter.c:656:54: error: expected expression before ')' token
inter.c: At top level:
inter.c:320:15: warning: 'tdl_completion' defined but not used [-Wunused-function]
inter.c:343:15: warning: 'null_tdl_completion' defined but not used [-Wunused-function]
inter.c: In function 'get_line_stdio':
inter.c:605:1: warning: control reaches end of non-void function [-Wreturn-type]
Makefile:61: recipe for target 'inter.o' failed
make: *** [inter.o] Error 1
</code></pre>
<p>Version 1.5.2 of <code>tdl</code> was released on 02004-02-03. The contemporary version
of GNU <code>readline</code> would have been 4.3; today, <code>pkgsrc</code> on SmartOS delivers
<code>readline</code> 6.3, which was released 02014-02-26. I know I’ve built <code>tdl</code> much
more recently than 02004, so I decided to spend some time to determine what’s
changed between these two components.</p>
<p>With 6.3, the compatibility type definitions for <code>Function</code>, <code>CPFunction</code>,
<code>CPPFunction</code>, and <code>VFunction</code> were finally removed. Each of these “old style”
readline function types can typically be replaced with the “new style” types as
follows</p>
<ul>
<li>
<p><code>Function</code> becomes <code>rl_hook_func_t</code> in hook assignments. <code>Function</code> may map
to other function types in <code>rltypedefs.h</code> if a non-void argument list is
given.</p>
</li>
<li>
<p><code>VFunction</code> becomes <code>rl_voidfunc_t</code>.</p>
</li>
<li>
<p><code>VCPFunction</code> becomes <code>rl_vcpfunc_t</code>.</p>
</li>
<li>
<p><code>CPFunction</code> becomes <code>rl_compentry_func_t</code>.</p>
</li>
<li>
<p><code>CPPFunction</code> becomes <code>rl_completion_func_t</code>.</p>
</li>
</ul>
<p>The <a href="https://blueslugs.com/~sch/inter.c-patch">patch for <code>tdl-1.5.2:inter.c</code></a> resolves all but the final
warning above, and should lead to happy task tracking with <code>tdl</code>.</p>
<p>(If you are on MacOS X (and potentially on other systems that deliver
<code>editline</code>), then the <code>editline</code> include files that provide <code>readline.h</code>
declarations still provide the old style definitions.)</p>Panorama near Levi's Stadiumhttps://blueslugs.com/2016/10/15/panorama-near-levis-stadium/Sat, 15 Oct 2016 23:30:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2016/10/15/panorama-near-levis-stadium/<p><img src="https://blueslugs.com/2016/10/15/IMG_20161015_191744-PANO.jpg" alt="Panorama near Levi’s Stadium" title="Panorama near Levi's Stadium"></p>
<p>Last year, I decided to combine and upload our fourteen years of digital
photos to <a href="https://photos.google.com">Google Photos</a>. An enjoyable
aspect of Photos is that the application will notify you of new products
it has created from your incoming photos, such as flipbook-style
animations and filtered/enhanced pictures.</p>
<p>Nathaniel was playing a first round State Cup game at the Santa Clara
soccer complex Saturday evening.
(We were <a href="https://blueslugs.com/2015/11/25/warmup-by-toyota-gate/">here a year ago</a>.
I suppose there was a Super Bowl in between these visits.)
The weather this weekend was dominated by the remnants of
<a href="https://en.wikipedia.org/wiki/Typhoon_Songda_(2016)">Typhoon Songda</a>, which became an atmospheric river storm along the west coast.
It was too wet to bring out the DSLR, so I took quick pictures with my
phone.</p>
<p>The next day, Google Photos sent me the above panorama, which it must
have stitched together from a couple of pictures I had taken early in
the game. Cool.</p>
<p>(Palo Alto lost, 1-2.)</p>Quick tournament link, 8/5https://blueslugs.com/2016/08/05/quick-tournament-link-85/Fri, 05 Aug 2016 14:38:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2016/08/05/quick-tournament-link-85/<p>Nathaniel is active this weekend in his first tournament of the summer :</p>
<ul>
<li><a href="http://events.gotsport.com/events/schedule.aspx?EventID=48492&Gender=Boys&Age=14" >Santa Clara Sporting Invitational U14B</a></li>
</ul>Warmup by Toyota Gatehttps://blueslugs.com/2015/11/25/warmup-by-toyota-gate/Wed, 25 Nov 2015 16:51:49 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2015/11/25/warmup-by-toyota-gate/<p><a href="https://www.flickr.com/photos/schahn/23007556570/in/dateposted/" data-flickr-embed="true" title="Warmup by Toyota Gate"><img src="https://farm6.staticflickr.com/5796/23007556570_d76ce29235_z.jpg" width="640" height="360" alt="Warmup by Toyota Gate" /></a></p>
<p>Nathaniel’s soccer team played a night game in Santa Clara a couple of weeks ago, at the field complex right beside Levi’s Stadium. (We lost, 0-3. It’s been a tough season.)</p>Quick tournament link, 11/25https://blueslugs.com/2015/11/25/quick-tournament-link-1125/Wed, 25 Nov 2015 15:56:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2015/11/25/quick-tournament-link-1125/<p>Nathaniel is active in a tournament this coming weekend. Bracket link:</p>
<ul>
<li><a href="http://events.gotsport.com/events/schedule.aspx?EventID=46937&Gender=Boys&Age=12" >Surf Cup Thanksgiving, U12B</a>, North San Diego</li>
</ul>
<p>Regional cross-country championships are on Sunday in Fresno. We’re waiting to see which of our teams qualified.</p>Quick tournament link, 5/23https://blueslugs.com/2015/05/15/quick-tournament-link-523/Fri, 15 May 2015 16:58:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2015/05/15/quick-tournament-link-523/<p>Nathaniel is active in a tournament next weekend. Bracket link:</p>
<ul>
<li><a href="http://events.gotsport.com/events/schedule.aspx?EventID=42248&Gender=Boys&Age=11" >Cerritos Memorial, U11B Nike</a>, Long Beach and vicinity</li>
</ul>
<p>Ben’s running in the 3M meet this weekend.</p>Quick tournament link, 3/7https://blueslugs.com/2015/03/06/quick-tournament-link-37/Sat, 07 Mar 2015 00:30:49 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2015/03/06/quick-tournament-link-37/<p>Nathaniel is active in a tournament this weekend. Convenient link to his bracket:</p>
<ul>
<li><a href="http://events.gotsport.com/events/schedule.aspx?EventID=41554&GroupID=424396&Gender=Boys&Age=12" >Spring Showcase, U12B Gold</a>, Redwood City</li>
</ul>
<p>Ben is waiting for the youth track season to start.</p>Using Astral from a known locationhttps://blueslugs.com/2015/01/26/using-astral-known-location/Tue, 27 Jan 2015 06:18:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2015/01/26/using-astral-known-location/<p>I’ve been working out a minor idea involving the control of some
household actions based on local time, but relative to sunrise and
sunset rather than a naïve time of day. Simon Kennedy’s <a
href="http://www.sffjunkie.co.uk/python-astral.html">Astral</a> is a
Python module that can compute these times, but its examples focus on
retrieval of locations from major cities. Most places aren’t major
cities in the module’s list, so I spent a little time to read the
source to determine what other entry points were enabled.</p>
<p>It turns out that the <code>Location</code> class is perfect for those times when
you can’t associate a site with a major city, but know the
latitude and longitude (from GPS or a mapping service, for example). An
example usage follows:</p>
<pre><code>#!/usr/bin/python
"""Example of using astral with a location not in the module's
built-in catalog."""
import astral
import datetime
# From A. Mariano, MacOS units(1), 1993.
FT_PER_METRE = 3.2808399
# Construct our location. Longitude west and latitude south are
# negative.
los_altos = astral.Location(info=("Los Altos", "USA", 37.3681,
-122.0975, "US/Pacific",
157/FT_PER_METRE))
# "civil", which means 6 degrees below the horizon, is the default
# value for computing dawn and dusk. But this usage shows how to
# set it before calculation.
los_altos.solar_depression = "civil"
tomorrow = datetime.date.today() + datetime.timedelta(1)
result = los_altos.sun(date=tomorrow)
for k in ["dawn", "sunrise", "noon", "sunset", "dusk"]:
print "%7s %s" % (k, result[k])
</code></pre>node.js v10.03 on oi_151a7https://blueslugs.com/2014/08/02/node-js-v10-03-oi_151a7/Sun, 03 Aug 2014 04:21:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2014/08/02/node-js-v10-03-oi_151a7/<p><a href="http://blueslugs.com/2012/12/27/building-nodejs-on-openindiana/" title="Building node.js on OpenIndiana">My 2012 instructions for building node.js on OpenIndiana</a> still work on recent bits. Now to write some software.</p>piCorePlayerhttps://blueslugs.com/2014/02/04/picoreplayer/Wed, 05 Feb 2014 00:41:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2014/02/04/picoreplayer/<p>I learned that Logitech has brought the Squeezebox product line to end to life. I’m not prepared to replace (or research what might replace) our current audio infrastructure, so I’m experimenting with a <a href="https://sites.google.com/site/picoreplayer/home" >piCorePlayer</a> install to see if a low cost, Raspberry Pi solution can solve this problem, much like <a href="http://blueslugs.com/2014/01/06/sprinkler-valve-break-repair/" >OpenSprinkler has addressed home irrigation</a>.</p>Lunch: Fletch's, San Mateohttps://blueslugs.com/2014/02/04/lunch-fletchs-san-mateo/Wed, 05 Feb 2014 00:36:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2014/02/04/lunch-fletchs-san-mateo/<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;">
<a href="http://www.flickr.com/photos/schahn/12310389704/" title="Hot Dog and Slider, Fletch's, San Mateo, CA"><img src="http://farm4.staticflickr.com/3729/12310389704_e59ff5ce44.jpg" alt="Hot Dog and Slider, Fletch's, San Mateo CA by schahn" /></a><br /><span style="margin: 0;"><a href="http://www.flickr.com/photos/schahn/12310389704/" >Hot Dog and Slider, Fletch’s, San Mateo, CA</a>, a photo by <a href="http://www.flickr.com/photos/schahn/" >schahn</a> on Flickr.</span>
</div>
<p>We went on a drive today, to try Fletch’s Chicago-style hot dogs and sliders. They make their own dipping sauce, which has a touch of spice and went well with the fries. I couldn’t muster the appetite, but there is a Beard Papa on the very same block of 2nd Ave.</p>Instrumented soccer, fall 2013https://blueslugs.com/2014/01/13/instrumented-soccer-fall-2013/Tue, 14 Jan 2014 07:12:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2014/01/13/instrumented-soccer-fall-2013/<p>I just started the spring season in my recreational soccer league last weekend. And I’m still using Adidas’s miCoach system to record statistics in each game. Earlier I showed a <a href="http://blueslugs.com/2013/06/13/instrumented-soccer/" >couple</a> <a href="http://blueslugs.com/2013/06/30/instrumented-soccer-630/" >of</a> individual sessions, with image captures from the miCoach site. Here I’m going to summarize the season, and compare it to the previous season (Summer 2013). Top line summary of the season</p>
<ul>
<li>11 games, 9/8 – 12/29</li>
<li>8 goals
<ul>
<li>Compared to 1 in Summer 2013</li>
<li>All on turf</li>
</ul>
</li>
</ul>
<p>For the quantities tracked by the Speed Cell, we have a group of measurements, summarized as follows</p>
<ul>
<li>Distance: 4.0 ± 0.6 miles per game, with a best of 5.1 miles on 12/1. (Improved over Summer 2013, 3.9 ± 0.5 mpg.)</li>
<li>Sprints: 20.5 ± 4.5 sprints per game, with a best of 30 on 12/1. (Improved over Summer 2013, 18.5 ± 4.7 spg.)</li>
<li>Maximum speed: 15.0 ± 0.4 mph, with a best of 15.52 mph on 9/15 and 10/6. (Improved over Summer, 2013 14.5 ± 1.1 mph.)</li>
</ul>
<p>miCoach offers badges (“achievements”) for various performance levels: on 12/1, 5.1 miles of total distance and 0.55 miles of “hi intensity distance” resulted in the Pro achievements for those two categories. Still haven’t reached the Pro mark for Maximum Speed, which I suspect will require a burst over 16 mph. (On 6/9, 3.9 miles of distance and 15.17 mph maximum speed earned the respective Club achievements. On 7/14, 0.38 miles of high intensity distance earned the corresponding Club achievement.)</p>
<p>I was pretty happy with my showing on December 1, but Sean Ingle’s Sunday article in <em>The Guardian</em>, on Chelsea and England defender Ashley Cole, shows how low on the performance scale these numbers are:</p>
<blockquote>
<p>The additional physical demands are clear from Prozone’s data. In 2003-04 Premier League full-backs made an average of 29.5 sprints – any movement greater than seven metres a second – over a game. This season that figure is exactly 50. A decade ago the average recovery time for a full-back between high-intensity activities – any movement greater than 5.5m/s, or a three-quarters speed run – was 56.4sec. Now it is 40.4sec.</p>
</blockquote>
<p>— <a href="http://www.theguardian.com/football/blog/2014/jan/12/ashley-cole-chelsea-full-backs" >Ashley Cole faces life in the slow lane as demands of the job intensify</a></p>
<p>(Of course, I’m ten years older than Ashley Cole, so I am pleased just to be on the field, uninjured, and possessing a little bit of pace.)</p>
<p>It’s going to be hard to compare the spring season with this one, as the new team only has part-time goalkeepers, and I’ll have to take many more shifts in net. (The two times I played keeper during the fall were 13 sprint games.) Other than working on my metrics, my only goal for this season is to finally score one on the grass fields.</p>United States Drought Monitorhttps://blueslugs.com/2014/01/07/united-states-drought-monitor/Tue, 07 Jan 2014 17:10:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2014/01/07/united-states-drought-monitor/<p>As I mentioned in the sprinkler repair/upgrade post, Northern California continues its now multi-year drought. The <a href="http://droughtmonitor.unl.edu/" >United States Drought Monitor</a> currently labels the conditions as <em>D2 – severe drought</em>.</p>Sprinkler valve break and repairhttps://blueslugs.com/2014/01/06/sprinkler-valve-break-repair/Tue, 07 Jan 2014 07:17:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2014/01/06/sprinkler-valve-break-repair/<p>Early last summer, Nathaniel was in the back yard, practicing his kicks into our <a href="http://shop.kixsports.com/kixkube.aspx" >KixKube</a>. One particularly strong kick missed the cube, and smashed into the exposed sprinkler valves, breaking through the ¾” PVC pipe below one of the valves. The break led immediately to that portion of the garden and lawn being covered in water, so I rushed to close the water main at the street and then scurried to Home Depot to get a PVC cap and fresh (fast setting) PVC cement.</p>
<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;">
<a href="http://www.flickr.com/photos/schahn/11674803205/" title="Water supply capped, broken valve turned by schahn, on Flickr"><img src="http://farm3.staticflickr.com/2834/11674803205_a1bbb80763.jpg" width="500" height="500" alt="Water supply capped, broken valve turned" /></a><br /><a href="http://www.flickr.com/photos/schahn/11674803205/" >Water supply capped, broken valve turned</a>, a photo by <a href="http://www.flickr.com/photos/schahn/" >schahn</a> on Flickr.</span>
</div>
<p>You can see the cap at the right of the above photo; it’s the piece below the blue PVC cement-stained pipe. The fragments of plastic are the remains of the storage container I placed over the valves to protect them from further misses. (Not successfully.)</p>
<p>I decided to make two improvements when I rebuilt this complex: to add a ball valve before the sprinkler valves, so that I can make repairs without turning off water to the entire house, and to add a third sprinkler valve for a drip system. You can see the ball valve underneath the rightmost valve in the picture below; the new valve is the leftmost.</p>
<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;">
<a href="http://www.flickr.com/photos/schahn/11675935306/" title="Sprinklers repaired and robustly reboxed by schahn, on Flickr"><img src="http://farm4.staticflickr.com/3786/11675935306_de75802ea4.jpg" width="500" height="333" alt="Sprinklers repaired and robustly reboxed" /></a> <br /><a href="http://www.flickr.com/photos/schahn/11675935306/" >Sprinklers repaired and robustly reboxed</a>, a photo by <a href="http://www.flickr.com/photos/schahn/" >schahn</a> on Flickr.</span>
</div>
<p>It took a bit of tweaking to get the joints and valves sealed tight, with one or two connections having to be redone. Once I had the valves watertight and the wiring reconnected, my system testing showed that our Rain8 WLM, which was an X10 wireless-based irrigation control, had suffered a power blow-out as well.</p>
<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;">
<a href="http://www.flickr.com/photos/schahn/1160855195/" title="Sprinklers repaired and robustly reboxed by schahn, on Flickr" class="broken_link" rel="nofollow"><img src="http://farm4.staticflickr.com/3724/11760855195_4a43cb4635.jpg" width="500" height="500" alt="Sprinklers repaired and robustly reboxed" /></a> <br /><a href="http://www.flickr.com/photos/schahn/1160855195/" class="broken_link" rel="nofollow">OpenSprinkler Pi</a>, a photo by <a href="http://www.flickr.com/photos/schahn/" >schahn</a> on Flickr.</span>
</div>
<p>Since the Rain8 WLM had been discontinued, I decided to replace the controller with an <a href="http://rayshobby.net/?page_id=5816" >OpenSprinkler Pi</a>, using WiFi for wireless access. For the X10-based controller, I had built my own set of irrigation programs for <a href="http://blueslugs.com/2005/07/05/unexpected-new-server/" ><code>cooler</code></a>, which had been moving from shell scripts invoking <code>flipit</code> driven by <code>cron</code>(1M) to using Redis for state and eventually to a web server model, but I dropped all of that—for now—in favour of <a href="https://github.com/rszimm/sprinklers_pi/wiki" >Sprinklers Pi</a> running directly on <code>sprinkles</code> (the Pi). With the combination of a regular and a seeding schedule, I have equivalent (or better, with the Weather Underground integration) capability to the previous implementation. The new system has been working well.</p>
<h2 id="overseeding">Overseeding</h2>
<p>With the watering infrastructure restored, I did our fall overseeding, three months late, using a mix of low-water grass and white clover, topped with new soil and compost. These guys—mature and immature white-crested swallows (<em>Zonotrichia leucophrys nuttalli</em>)—showed up once the grass seed hit the ground (and walkway). Let’s hope they leave enough seed to grow. (The mature one is the one sporting the white crest with black stripes on his head.)</p>
<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;">
<a href="http://www.flickr.com/photos/schahn/11663506413/" title="IMGP2333 by schahn, on Flickr"><img src="http://farm6.staticflickr.com/5512/11663506413_948d0256b1.jpg" width="500" height="333" alt="IMGP2333" /></a><br /><span style="margin: 0;"><a href="http://www.flickr.com/photos/schahn/11612614123/" >White-crested swallows feeding on grass seed</a>, a photo by <a href="http://www.flickr.com/photos/schahn/" >schahn</a> on Flickr.</span>
</div>
<p>This is the second California animal species or subspecies we’ve mentioned here that is named in honour of <a href="http://en.wikipedia.org/wiki/Thomas_Nuttall" >Thomas Nuttall</a>. (Earlier in the summer, <a href="http://blueslugs.com/2013/07/28/picoides-nuttalli-foraging/" >we saw a Nuttall’s woodpecker</a>.)</p>
<h2 id="weeding-by-grid">Weeding by grid</h2>
<p>Now that we’ve begun repairing the lawn with new grass, the final phase will be plucking out the crabgrass that dominated one corner. I’m going to work systematically through the lawn using a grid system, plucking out each crabgrass shoot.</p>
<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;">
<a href="http://www.flickr.com/photos/schahn/11761643406/" title="Grid by schahn, on Flickr"><img src="http://farm4.staticflickr.com/3725/11761643406_1f784c70b6.jpg" width="500" height="333" alt="Grid" /></a> <br /><a href="http://www.flickr.com/photos/schahn/11761643406/" >Grid</a>, a photo by <a href="http://www.flickr.com/photos/schahn/" >schahn</a> on Flickr.</span>
</div>
<p>There’s about ½” of new soil spread over top to provide new nutrients, but there are also some pretty beaten down bare patches. We’ll see what the spring growth brings.</p>
<h2 id="next-steps">Next steps</h2>
<p>Assuming I establish some level of control over the crabgrass, I’ll connect a small drip irrigation system to that unused valve and introduce a corresponding third schedule to the Sprinklers Pi configuration. If that goes well, I’ll add a second valve to the front lawn for drip—unless we decide that even a small front lawn is an indulgence during a severe drought. (In which case, maybe I’ll transplant the sod from the front to the back and go drip-only in the front to the citrus trees and oleander.)</p>Blog traffic summary, 2013https://blueslugs.com/2013/12/31/blog-traffic-summary-2013/Tue, 31 Dec 2013 09:29:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/12/31/blog-traffic-summary-2013/<p><a href="http://jetpack.me/annual-report/40234864/2013/" >wordpress.com annual report:</a> This year’s most popular post was <a href="http://blueslugs.com/2013/07/29/figuring-out-8v8-formations-by-reduction/" >my short treatment of youth soccer formations</a>. It didn’t have much competition, however, as I wasn’t able to write much here in 2013.</p>Lunch: Freewheel Brewing Co., Redwood Cityhttps://blueslugs.com/2013/12/28/lunch-freewheel-brewing-co-redwood-city/Sun, 29 Dec 2013 00:30:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/12/28/lunch-freewheel-brewing-co-redwood-city/<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;">
<a href="http://www.flickr.com/photos/schahn/11612614123/" title="Hot Dog, Freewheel Brewing Co., Redwood City, CA"><img src="http://farm8.staticflickr.com/7459/11612614123_21a36fee66.jpg" alt="Hot Dog, Freewheel Brewing Co., Redwood City, CA by schahn" /></a><br /><span style="margin: 0;"><a href="http://www.flickr.com/photos/schahn/11612614123/" >Hot Dog, Freewheel Brewing Co., Redwood City, CA</a>, a photo by <a href="http://www.flickr.com/photos/schahn/" >schahn</a> on Flickr.</span>
</div>
<p>Not too far from the office, FreeWheel Brewing has good beer and hearty food. The sausage board is tasty, if one has the appetite, but the hot dog is reliable and well accompanied by a pint. (Half pints available for those meeting-rich afternoons.)</p>Weekend tournament quick links, 8/31https://blueslugs.com/2013/08/28/weekend-tournament-quick-links-831/Thu, 29 Aug 2013 04:36:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/08/28/weekend-tournament-quick-links-831/<p>The boys are both active in tournaments this weekend. Convenient links to their brackets:</p>
<ul>
<li><a href="http://events.gotsport.com/events/schedule.aspx?EventID=31996&Gender=Boys&Age=12" >Copa Madera, U12B</a>, Redwood City</li>
<li><a href="http://www.t7sports.com:8080/2005/k166420.htm" >NHB Cup 2013, U10B</a>, Huntington Beach</li>
</ul>Lunch: New England Lobster Market & Eatery, Burlingamehttps://blueslugs.com/2013/08/27/lunch-new-england-lobster-market-eatery-burlingame/Tue, 27 Aug 2013 21:51:49 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/08/27/lunch-new-england-lobster-market-eatery-burlingame/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/9608262925/" title="photo sharing"><img src="http://farm4.staticflickr.com/3730/9608262925_21af5f9e56.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/9608262925/" >Seasonal Lobster Roll, New England Lobster Market & Eatery</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>We drove farther than average to visit the New England Lobster Market & Eatery <a href="http://www.yelp.com/biz/new-england-lobster-market-and-eatery-burlingame" title="Seasonal lobster roll">[Yelp]</a>, but the pleasant outdoor space they’ve created a hundred yards or so from the shore of San Francisco Bay combined with a very credible lobster roll made it worthwhile. The potato chips are also excellent.</p>Figuring out 8v8 formations by reductionhttps://blueslugs.com/2013/07/29/figuring-out-8v8-formations-by-reduction/Tue, 30 Jul 2013 06:00:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/07/29/figuring-out-8v8-formations-by-reduction/<p>For the younger ages of the California competitive leagues the boys have played in, sides are eight players each, and don’t move to the adult 11-a-side game until the spring season of U11. Ben is in his second season of 11-a-side, while Nathaniel has a few seasons of 8-a-side still to go. Since we try to be informed spectators of each, I thought it would be interesting to comment on the 8v8 formations as they relate to the adult formations.</p>
<p>Wikipedia’s coverage of soccer (“association football”) topics is extensive—covering players, club and national teams, tournament histories, and aspects of the game. The article on <a href="http://en.wikipedia.org/wiki/Soccer_formations" >soccer formations</a> gives an overview of both the historical development of formations and a summary of the current common formations. We’ll use it as a basis for identifying key adult formations; the article covers many more.</p>
<p>For formations with three rows, defenders–midfielders–forwards, an 8 player formation can be derived from an 11 player formation by subtracting one player from each row. Since the four row formations are refinements of the midfielders into a pair of sub ranks, we treat formations like the 4–2–3–1 and 4–3–1–2, as variations of the 4–5–1 and 4–4–2, respectively.</p>
<h1 id="442--331">4–4–2 → 3–3–1</h1>
<p>You’ll see a lot of teams playing the 3–3–1, as it’s the recommended 8v8 formation in the US Soccer curriculum. Although your striker has to work hard to apply pressure on his or her own, he or she benefits by being the focus of attacks up the middle. This formation has natural width and a well-populated midfield, although I haven’t seen many teams that encourage their outside defenders to make runs forward. (So we see many conservative 3–3–1 teams.) When your team moves up, you’ll find the 4–4–2 is one of the recommended 11v11 formations for U12 in the US Soccer curriculum. (Your striker may find the transition challenging, as they will have to pair with a peer, rather than be the single focus.)</p>
<h1 id="433--322">4–3–3 → 3–2–2</h1>
<p>The 4–3–3 is the other recommended 11v11 formation for U12 in the US Soccer curriculum, so it’s natural to hope that it’s 8v8 reduced form would be easy to use as well. However, the midfield and forward part of the resulting formation is narrow, meaning that it’s easy for opponents to find space to work through; against a 3–3–1, the 3–2–2 is at a numerical disadvantage in the midfield. I’m not sure I’ve seen any team line up in a 3–2–2.</p>
<h1 id="451--340">4–5–1 → 3–4–0</h1>
<p>Ben’s team in 2012 ended up playing in a 3–4–0 for much of their spring season. I believe what the coach was trying to address was the forwards’ tendencies to not come back on defense once possession was lost. The drawback is that, without a single striker occupying the defense (to maintain length), the opposing defenders can come forward and capture cleared balls easily. It’s also unclear which of the midfield is responsible for pressuring the opponent, although teams with good individual defensive instincts or training might enjoy the flexibility of having the closest player apply the pressure.</p>
<h1 id="343--232">3–4–3 → 2–3–2</h1>
<p><a href="https://en.wikipedia.org/wiki/Wigan_Athletic_F.C." >Wigan Athletic</a> under Martinez in recent years stood out in the Premier League for playing a 3–4–3. Its reduction, the 2–3–2, might work as a tactic for a 3–3–1 team trying to bring more offense to bear in the final portion of a game. The two defender line will have to be very strong, or your keeper will be very busy.</p>
<h1 id="352--241">3–5–2 → 2–4–1</h1>
<p>Nathaniel’s team often plays in a 2–4–1 since they have a number of outside midfielders willing to run from goal line to goal line and cover the opposing outside forward when on defense. Risky like the 2–3–2 if the defenders aren’t strong and coordinated, although the extra player in midfield should stop the opponent from finding overloads as easily as they might against a 2–3–2.</p>
<h1 id="5mn--4m-1n-1">5–<em>m</em>–<em>n</em> → 4–<em>(m-1)</em>–<em>(n-1)</em></h1>
<p>I haven’t seen anyone playing four defenders in 8v8, because we haven’t seen anyone willing to give up most of their offensive chances by clamping down defensively. (Most youth tournaments award points for goals scored, in addition to the game result, so losing 2–3 can be better than tying 0–0. In other areas, you might see youth teams happy to draw…)</p>
<h1 id="translating-per-position-comments">Translating per-position comments</h1>
<p>If you are trying to describe each position’s responsibilities in an 8v8, the key difference between the responsibilities in the adult formation and in the reduction comes from the change in each row from an odd to an even number of players. That can be made even simpler: the even-numbered rows need to be very clear about how to divide their coverage of the field (left-right or left-center left-center right-right), while the odd-numbered rows should find this allocation clear (solo or left-center-right). For some formations, positions are otherwise almost unchanged: the wide players in the 3–3–1 have the same responsibility to go forward as their counterparts in the 4–4–2. But, much like our striker in the 3–3–1 must learn to coordinate with a second striker in the 4–4–2, so will the central defender in a 3–<em>m</em>–<em>n</em> mesh with a partner in a 4–<em>(m+1)</em>–<em>(n+1)</em>.</p>Picoides nuttalli foraginghttps://blueslugs.com/2013/07/28/picoides-nuttalli-foraging/Mon, 29 Jul 2013 04:25:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/07/28/picoides-nuttalli-foraging/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/9387950555/" title="photo sharing"><img src="http://farm4.staticflickr.com/3807/9387950555_8e362cb33c.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/9387950555/" >Nuttall’s woodpecker</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>While retrieving a few items from the car I parked out front, I heard the burst of a woodpecker tapping, and grabbed my camera (with an 80 – 320 mm lens for soccer) to see if I could get a good enough picture for identification. The camera rig was much more suitable than the camcorder I used to snap <a href="http://blueslugs.com/2005/12/01/falco-columbarius-in-pole-position/" >a merlin in 2005</a>.</p>
<p>Ben looked at the photo and worked through his options in the <em>AMNH Birds of North America</em>. Based on the range, the barred back, and red crown, he thinks it’s an example of Nuttall’s Woodpecker (but it could be a Ladder-backed or a hybrid of the two).</p>
<p>This serene moment of observation ended when the squirrel in that same tree, directly above me, dropped a walnut on my head.</p>Instrumented soccer, 6/30https://blueslugs.com/2013/06/30/instrumented-soccer-630/Sun, 30 Jun 2013 23:07:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/06/30/instrumented-soccer-630/<p>I managed to get back out on the soccer field, after the two field sessions of the Class E clinic and a weekend in Reno shuttling the boys around. Even though I had worked in some accelerations into my runs, I tweaked my right hamstring at the clinic and so I knew today wasn’t going to be great for sprints. (The hardest part about the clinic was participating in all of the other students’ demonstration drills—about 13 hours of drills.) So, today was about playing smart.</p>
<p>The summary was<figure id="attachment_32199" style="width: 531px" class="wp-caption alignnone"></p>
<p><a href="http://blueslugs.com/2013/06/p-micoach-20130630-workout.png" ><img src="http://blueslugs.com/2013/06/p-micoach-20130630-workout.png" alt="miCoach soccer summary, 2013-06-30" width="531" height="155" class="size-full wp-image-32199" /></a><figcaption class="wp-caption-text">miCoach summary, 2013-06-30</figcaption></figure></p>
<p>The duration suggests a combination of a brief warmup, at least compared to <a href="http://blueslugs.com/2013/06/13/instrumented-soccer/" >9 June</a>, and 40 minute halves instead of full 45s. (It’s a 90F weekend.) Since I couldn’t go all out in the sprints, I made sure to cruise a bit more to get into good position, which is reflected in the high intensity distance being about the same as the previous game.</p>
<p>Another useful graph from the miCoach soccer report is the <em>timeline</em>:<figure id="attachment_32196" style="width: 753px" class="wp-caption alignnone"></p>
<p><a href="http://blueslugs.com/2013/06/p-micoach-timeline-20130630.png" ><img src="http://blueslugs.com/2013/06/p-micoach-timeline-20130630.png" alt="miCoach soccer timeline, 2013-06-30" width="753" height="183" class="size-full wp-image-32196" /></a><figcaption class="wp-caption-text">miCoach timeline, 2013-06-30</figcaption></figure></p>
<p>Looks like I sat out for a long substitution in the first half; I’ll have to call for a sub sooner. This week’s goal: further hamstring recovery.</p>Instrumented soccerhttps://blueslugs.com/2013/06/13/instrumented-soccer/Fri, 14 Jun 2013 05:10:45 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/06/13/instrumented-soccer/<p>After talking with one of the dads on Nathaniel’s team, I decided to start playing soccer again, this time in the <a href="http://paasl.us" >PAASL</a> Men’s B division. (I played a single season of <a href="http://www.ayso1.org/adult.shtml" >AYSO Adult League</a> in fall of 2011, but work got a bit too busy. Before that there’s an 18 year hiatus.) For running and lifting, various Android apps—<a href="http://www.worksmartlabs.com/cardiotrainer/about.php" >CardioTrainer</a> and <a href="https://play.google.com/store/apps/details?id=com.driftwood.workouts&hl=en" >Strong Log</a>—have given me enough feedback data to adjust training plans, but for soccer, it’s a bit awkward to carry a phone on your shirt sleeve. Since I didn’t want to play without some form of instrumentation, I began to research.</p>
<p>The only single player system for soccer I’ve found is <a href="http://micoach.adidas.com/us/" >Adidas miCoach</a>, which consists of a pod that slips into a recess under the insole of your left boot, a receiver, a synchronization program, and a web application which provides the reporting. I chose the Mac/PC package, where the receiver is a USB device, to use with my laptop. Since I hadn’t played in a while, I was curious to see what the summary was. When I got home, I ran the sync app, and logged into the miCoach site. The summary panel from my first game, which includes the warmup, is below:<figure id="attachment_32182" style="width: 531px" class="wp-caption alignnone"></p>
<p><a href="http://blueslugs.com/2013/06/p-micoach-workout-20130609.png" ><img src="http://blueslugs.com/2013/06/p-micoach-workout-20130609.png" alt="miCoach summary, 2013-06-09" width="531" height="143" class="size-full wp-image-32182" /></a><figcaption class="wp-caption-text">miCoach summary, 2013-06-09</figcaption></figure></p>
<p>Even these five numbers were illuminating: distance travelled, at just under 4 miles, was comfortable, given my regular runs. But I don’t do a lot of speed work, and the demonstrations and touches I perform with Ben’s team are low intensity, and the second half—except for one or two runs—was much more of a challenge in terms of summoning speed. (It feels like a brief incantation is required at my age. Twenty years ago speed was always available…) I’ll make sure to add more accelerations when I’m out on the roads, or just suck it up and run some wind sprints.</p>
<p>miCoach gives more detailed results than that summary; I’ll show a few of these in future posts. No measurements this weekend, as I’m attending the Class E coaching clinic.</p>Blog traffic summary, 2012https://blueslugs.com/2013/01/11/blog-traffic-summary-2012/Fri, 11 Jan 2013 22:33:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2013/01/11/blog-traffic-summary-2012/<p><a href="http://jetpack.me/annual-report/40234864/2012/" >wordpress.com annual report:</a> I turned WordPress.com’s Jetpack on in the fall; this morning I received their generated report for the past few months. #1 this year? The sauce spoon—not a technical post.</p>node.js for OpenIndiana via SFEhttps://blueslugs.com/2012/12/30/node-js-for-openindiana-via-sfe/Sun, 30 Dec 2012 22:17:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/12/30/node-js-for-openindiana-via-sfe/<p><a href="https://twitter.com/tomww" title="@tomww on Twitter">@tomww</a> points out that the <a href="http://wiki.openindiana.org/oi/Spec+Files+Extra+Repository" >Spec Files Extra (SFE) repository</a> is packaging recent <code>node.js</code> versions, built with their GCC 4.6.3 compilers. That means installation is as simple as a pair of <code>pkg</code>(5) invocations</p>
<pre><code># pkg set-publisher -p http://pkg.openindiana.org/sfe
# pkg install runtime/javascript/nodejs
</code></pre>
<p>The current version is 0.8.16, built less than 24 hours ago. Cool.</p>Bookmarks from Tue Aug 21 2012 to Thu Dec 27 2012https://blueslugs.com/2012/12/29/bookmarks-from-tue-aug-21-2012-to-thu-dec-27-2012/Sun, 30 Dec 2012 06:00:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/12/29/bookmarks-from-tue-aug-21-2012-to-thu-dec-27-2012/<p>These are recent links Stephen has saved on <a href="http://pinboard.in" ><a href="http://pinboard.in">http://pinboard.in</a></a>.</p>
<ul>
<li><a href="http://blueslugs.com/2012/12/27/building-nodejs-on-openindiana/" >Building node.js on OpenIndiana | blueslugs.com</a> Building node.js on OpenIndiana</li>
<li><a href="https://github.com/dilshod/xlsx2csv" >dilshod/xlsx2csv · GitHub</a> “Converts xslx xml excel files to csv format. It is fast, and works for huge xlsx files.” And works well enough to stop me from custom-coding a handler for each spreadsheet I get handed.</li>
<li><a href="http://www.coffeelint.org/" >CoffeeLint – Lint your CoffeeScript</a> A style checker for CoffeeScript.</li>
<li><a href="http://joshuarudd.github.com/typeset.css/" >Typeset.css – a no-nonsense CSS typography reset for styling user-generated content like blog posts, comments, and forum content</a> “A no-nonsense CSS typography reset for styling user-generated content like blog posts, comments, and forum content.” Reset with good stylistic bias.</li>
<li><a href="http://jasonwryan.com/blog/2012/07/09/syslinux/" >Replacing Grub With Syslinux – jasonwryan.com</a> Example of syslinux with arch/pacman.</li>
<li><a href="http://m.theatlantic.com/magazine/archive/2012/06/the-perfected-self/8970/" >The Perfected Self – Atlantic Mobile</a></li>
<li><a href="http://www.johndcook.com/blog/2010/06/14/generating-poisson-random-values/" >Generating Poisson random values — The Endeavour</a> “Below is an algorithm that has expected run time independent of the argument λ. The algorithm is fairly simple, though it takes a moderate amount of theoretical justification to explain. It goes back to 1979 and so may not the most efficient algorithm available. It is definitely not the most efficient algorithm if you need to generate a large number of samples using the same parameter λ.”</li>
</ul>Building node.js on OpenIndianahttps://blueslugs.com/2012/12/27/building-nodejs-on-openindiana/Fri, 28 Dec 2012 07:58:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/12/27/building-nodejs-on-openindiana/<p>More specifically, these instructions should let you build <a href="http://nodejs.org" >node</a> 0.8.16, the current stable version, on <code>oi_151a5</code>:</p>
<pre><code>$ uname -a
SunOS cooler 5.11 oi_151a5 i86pc i386 i86pc Solaris
</code></pre>
<p>(<a href="http://blueslugs.com/2005/07/05/unexpected-new-server/" >cooler</a> is in its seventh year of service, having run many builds of Solaris, OpenSolaris, and, now, OpenIndiana.) First, you’ll need a GCC 4.x compiler. If you attempt to use the 3.4.3 <code>gcc</code> compiler, you’ll get</p>
<pre><code>cc1: error: unrecognized command line option "-fno-tree-vrp"
cc1: error: unrecognized command line option "-fno-tree-sink"
</code></pre>
<p>in the output from your failed build. So, use the Illumos GCC 4.4.4 build, which you can install via</p>
<pre><code>$ sudo pkg install developer/illumos-gcc developer/gnu-binutils
</code></pre>
<p>which led to the installation on my system, of 3 packages, and a total of 56.9MiB of content downloaded. Include these new tools in your path for the build:</p>
<pre><code>$ export PATH=/opt/gcc/4.4.4/bin:/usr/gnu/bin:$PATH
</code></pre>
<p>To help the node build find the appropriate Standard C++ library for linking, we set the linker run path, via the environment. (By having a correct run path, our <code>node</code> binary won’t need <code>LD_LIBRARY_PATH</code> to be set to pick up <code>libstdc++.so.6</code>.) We can then configure, and issue the (GNU) make to start a build:</p>
<pre><code>$ export LD_RUN_PATH=/opt/gcc/4.4.4/lib
$ CC=gcc ./configure --prefix=$HOME
$ CC=gcc gmake
</code></pre>
<p>You can test the resulting binary</p>
<pre><code>$ ./node
> process.version;
'v0.8.16'
> ^D
</code></pre>
<p>and install the node platform to the configured location.</p>
<pre><code>$ CC=gcc gmake install
</code></pre>
<p>And now you have a working <code>node.js</code> for your OpenIndiana system. <code>npm</code> is installed as well, so you can begin downloading the modules needed for your development. (If you’re running OmniOS, it looks like the <a href="http://pkg.omniti.com/omniti-ms/" >“managed services” repository</a> includes a <code>pkg</code>(5)-installable node.js package, so you can install that interpreter directly. Maybe that’s what cooler should run next.)</p>Lunch: Rainbow Pizza, San Mateohttps://blueslugs.com/2012/10/02/lunch-rainbow-pizza-san-mateo/Tue, 02 Oct 2012 22:21:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/10/02/lunch-rainbow-pizza-san-mateo/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/8048386711/" title="photo sharing"><img src="http://farm9.staticflickr.com/8459/8048386711_d3b7072872.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/8048386711/" >Gyro, Rainbow Pizza</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>A morning craving for a <a href="http://en.wikipedia.org/wiki/Gyro_(food)" >gyro</a> sandwich led to a search session. The reviews suggested we try Rainbow Pizza, a Greek-Italian restaurant, tucked away in a valley among the San Mateo hills. Good gyro, physically enormous menus. I think we’ll go back to try the pizza.</p>Taxi bannerhttps://blueslugs.com/2012/09/25/taxi-banner/Tue, 25 Sep 2012 18:16:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/09/25/taxi-banner/<p><a href="http://www.flickr.com/photos/schahn/8024032563/" title="Taxi banner by schahn, on Flickr"><img src="http://farm9.staticflickr.com/8171/8024032563_b4542b387e.jpg" width="500" height="375" alt="Taxi banner" /></a></p>
<p>I haven’t thought about that steaming cup logo lately. (Or Sun Sans…)</p>post-review returns HTTP 500 with cribbed repository configurationhttps://blueslugs.com/2012/09/05/post-review-returns-http-500/Wed, 05 Sep 2012 23:12:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/09/05/post-review-returns-http-500/<p>We run <a href="http://www.reviewboard.org" >ReviewBoard</a> at work; we set up each hosted Git repository as new projects are started. I made a silly error a few weeks ago: when I created a new repository, I filled in the Mirror Path setting with that of a previous repository. This mistake leads to client output like</p>
<pre><code>$ post-review 7fdd345e22783b289be128205cc0c47935057e20
Error creating review request: HTTP 500
</code></pre>
<p>Your administrator mail address should receive a message with a body like</p>
<pre><code>Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/Django-1.3.3-py2.7.egg/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/site-packages/Django-1.3.3-py2.7.egg/django/views/decorators/cache.py", line 79, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/Django-1.3.3-py2.7.egg/django/views/decorators/vary.py", line 22, in inner_func
response = func(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/Djblets-0.6.22-py2.7.egg/djblets/webapi/resources.py", line 397, in __call__
result = view(request, api_format=api_format, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/Djblets-0.6.22-py2.7.egg/djblets/webapi/resources.py", line 581, in post
return self.create(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/ReviewBoard-1.6.11-py2.7.egg/reviewboard/webapi/decorators.py", line 127, in _check
return view_func(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/Djblets-0.6.22-py2.7.egg/djblets/webapi/decorators.py", line 88, in _checklogin
return view_func(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/Djblets-0.6.22-py2.7.egg/djblets/webapi/decorators.py", line 62, in _call
return view_func(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/Djblets-0.6.22-py2.7.egg/djblets/webapi/decorators.py", line 231, in _validate
return view_func(*args, **new_kwargs)
File "/usr/lib/python2.7/site-packages/ReviewBoard-1.6.11-py2.7.egg/reviewboard/webapi/resources.py", line 5984, in create
Q(local_site=local_site))
File "/usr/lib/python2.7/site-packages/Django-1.3.3-py2.7.egg/django/db/models/manager.py", line 132, in get
return self.get_query_set().get(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/Django-1.3.3-py2.7.egg/django/db/models/query.py", line 351, in get
% (self.model._meta.object_name, num, kwargs))
MultipleObjectsReturned: get() returned more than one Repository -- it returned 2! Lookup parameters were {}
</code></pre>
<p>each time a review is submitted against one of these repositories.</p>
<p>You can fix this condition by correcting the Mirror Path of the new repository; it’s not a ReviewBoard issue.</p>Bookmarks for June 25th through August 20thhttps://blueslugs.com/2012/08/20/bookmarks-for-june-25th-through-august-20th/Mon, 20 Aug 2012 22:01:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/08/20/bookmarks-for-june-25th-through-august-20th/<p>These are my links for June 25th through August 20th:</p>
<ul>
<li><a href="http://www.endofthreefitness.com/crossfit-equipment-how-build-plyometric-box/" >How to Build a Plyometric Box</a> – Plan for a pylometric box, rectangular</li>
<li><a href="http://library.crossfit.com/free/pdf/49_06_plyo_boxes.pdf" >Crossfit journal – Pylo box with slanted sides</a> – Plan for a slanted side pylometric jumping box.</li>
<li><a href="http://www.useit.com/homepageusability/guidelines.html" >113 Design Guidelines for Homepage Usability (Nielsen Norman Group)</a> – A laundry list for basic site quality/usability.</li>
<li><a href="http://jeremyckahn.github.com/blog/2012/07/01/treating-javascript-like-a-30-year-old-language/" >Treating JavaScript like a 30 year old language – Jeremy Kahn’s Dev Blog</a> – Some style and tools recommendations for programming JavaScript.</li>
<li><a href="http://labs.juiceanalytics.com/chartchooser.html" >Juice Labs – Chart Chooser</a> – HTML5 tool to select appropriate chart based on (simple) requirements.</li>
</ul>Bookmarks for March 10th through May 24thhttps://blueslugs.com/2012/05/24/bookmarks-for-march-10th-through-may-24th/Thu, 24 May 2012 17:02:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/05/24/bookmarks-for-march-10th-through-may-24th/<p>These are my links for March 10th through May 24th:</p>
<ul>
<li><a href="http://gpluspc.com/" >Google+ Photographer’s Conference | May 22-23, San Francisco</a> – Interesting list of presenters and topics. Some videos are available on the conference’s G+ page.</li>
<li><a href="http://ma.tt/2009/05/how-p2-changed-automattic/" >How P2 Changed Automattic — Matt Mullenweg</a> – P2 is a conversation focused WP blog theme. Simon Phipps is experimenting with P2. Filled a communications gap at WordPress.</li>
<li><a href="http://twitter.com/schahn/status/186503261086429186/photo/1" >Untitled (<a href="http://twitter.com/schahn/status/186503261086429186/photo/1">http://twitter.com/schahn/status/186503261086429186/photo/1</a>)</a> – Never seen ads on corner flags before.</li>
<li><a href="http://clonedigger.sourceforge.net/index.html" >Clone Digger</a> – “Clone Digger aimed to detect similar code in Python and Java programs. The synonyms for the term “similar code” are “clone” and “duplicate code”.”</li>
<li><a href="http://skx.me" class="broken_link" rel="nofollow">SwiftKey – smarter typing for everyone</a> – SwiftKey X has saved me 10,000 keystrokes! Check it out at</li>
</ul>Lunch: Classic 101 Burgers and Shakes, Belmonthttps://blueslugs.com/2012/03/23/lunch-classic-101-burgers-and-shakes-belmont/Sat, 24 Mar 2012 06:40:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/03/23/lunch-classic-101-burgers-and-shakes-belmont/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/7004679473/" title="photo sharing"><img src="http://farm8.staticflickr.com/7264/7004679473_27d08c364e.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/7004679473/" >Mushroom burger, from Classic 101 Burgers and Shakes</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>Classic 101 Burgers and Shakes <a href="http://www.yelp.com/biz/classic-101-burgers-and-shakes-belmont" alt="Yelp review">[Yelp]</a> makes a reliable, basic burger. It’s one of the few hamburger-serving restaurants from the tour I return to without hesitation. (When I’m not up for a new location, Classic 101, with its generally predictable serving latency, is the current default.) They make an excellent malted milkshake, too.</p>Lunch: Saruno Burger [Truck], Menlo Parkhttps://blueslugs.com/2012/03/15/lunch-saruno-burger-truck-menlo-park/Fri, 16 Mar 2012 06:39:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/03/15/lunch-saruno-burger-truck-menlo-park/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/6983724581/" title="photo sharing"><img src="http://farm8.staticflickr.com/7063/6983724581_9594626f1a.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/6983724581/" >Menchi burger, by Saruno Burger</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>The Saruno Burger truck <a href="http://www.yelp.com/biz/saruno-burger-brisbane" >[Yelp]</a>, which is based out of Brisbane, made a stop in our neighborhood, allowing us to try its Japanese interpretation of the hamburger without our usual drive up or down US101. The Menchi burger is a hamburger and onion patty, coated in breadcrumbs, deep fried, and served on a brioche bun. Tasty.</p>Lunch: Rave Burger, San Mateohttps://blueslugs.com/2012/03/08/lunch-rave-burger-san-mateo/Thu, 08 Mar 2012 18:44:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/03/08/lunch-rave-burger-san-mateo/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/6964799157/" title="photo sharing"><img src="http://farm8.staticflickr.com/7042/6964799157_189f626760.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/6964799157/" >Greek burger, from Rave Burger</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>A colleague and I are working through the better burger places on the Peninsula. We’ve been juicily making our way north; Tuesday we hit Rave Burger <a href="http://www.yelp.com/biz/rave-burger-san-mateo" >[Yelp]</a>, where I enjoyed the tasty Greek burger shown.</p>Bookmarks for March 5th through March 7thhttps://blueslugs.com/2012/03/07/bookmarks-for-march-5th-through-march-7th/Wed, 07 Mar 2012 18:02:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/03/07/bookmarks-for-march-5th-through-march-7th/<p>These are my links for March 5th through March 7th:</p>
<ul>
<li><a href="http://colllor.com/" >Colllor – Turn one color into many alternative ones</a> – “Create consistent color schemes: With Colllor it is much easier to generate a consistent color palette with just a few clicks. You should use colors consistently, so you have a common look and feel throughout your design.”</li>
<li><a href="http://colorbrewer2.org/" >Colorbrewer: Color Advice for Maps</a> – A colour choice advisor, targetted for cartography.</li>
<li><a href="http://vis.stanford.edu/wrangler/" >Data Wrangler</a> – “Wrangler is an interactive tool for data cleaning and transformation.”</li>
<li><a href="http://code.google.com/p/google-refine/" >google-refine – Google Refine, a power tool for working with messy data (formerly Freebase Gridworks) – Google Project Hosting</a> – “Google Refine is a power tool for working with messy data, cleaning it up, transforming it from one format into another, extending it with web services, and linking it to databases like Freebase.”</li>
<li><a href="http://inductionapp.com/" >Induction ⚡ A Polyglot Database Client For Mac OS X</a> – Can talk to (and visually explore on) a variety of SQL/NoSQL datastores.</li>
</ul>Bookmarks for January 19th through March 1sthttps://blueslugs.com/2012/03/01/bookmarks-for-january-19th-through-march-1st/Fri, 02 Mar 2012 07:03:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2012/03/01/bookmarks-for-january-19th-through-march-1st/<p>These are my links for January 19th through March 1st:</p>
<ul>
<li><a href="http://www.technologyreview.com/blog/arxiv/27620/" >How to Build a Speech-Jamming Gun – Technology Review</a> – Waiting for the inevitable headphones that auto-respond with “stop copying me!”…</li>
<li><a href="http://bleaklow.com/2012/02/29/why_im_ditching_the_arduino_software_platform.html" class="broken_link" rel="nofollow">Why I’m ditching the Arduino software platform – Alan’s Ramblings</a> – Alan’s ditching Arduino’s stack and going to the metal; write() is reason enough.</li>
<li><a href="http://dtrace.org/blogs/brendan/2012/03/01/the-use-method-solaris-performance-checklist/" >Brendan’s blog » The USE Method: Solaris Performance Checklist</a> – RT @brendangregg: new blog post: the USE Method: Solaris performance checklist</li>
<li><a href="https://github.com/brianfrankcooper/YCSB" >brianfrankcooper/YCSB – GitHub</a> – “The goal of the YCSB project is to develop a framework and common set of workloads for evaluating the performance of different “key-value” and “cloud” serving stores.”</li>
<li><a href="http://swtch.com/~rsc/regexp/regexp4.html" >Regular Expression Matching with a Trigram Index</a> – “… Code Search is no longer online. To mark the occasion, I thought it would be appropriate to write a little about how Code Search worked. The actual Code Search was built on top of Google’s world-class document indexing and retrieval tools; this article is accompanied by an implementation that works well enough to index and search large code bases on a single computer.”</li>
<li><a href="http://blog.fogcreek.com/the-trello-tech-stack/" >The Trello Tech Stack – Fog Creek Blog</a> – “We have consistently opted for promising (and often troublesome) new technologies that would deliver an awesome experience over more mature alternatives. We’re about a year in, and it’s been a lot of fun.”</li>
</ul>Bookmarks for October 18th through December 20thhttps://blueslugs.com/2011/12/22/bookmarks-for-october-18th-through-december-20th/Thu, 22 Dec 2011 23:01:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/12/22/bookmarks-for-october-18th-through-december-20th/<p>These are my links for October 18th through December 20th:</p>
<ul>
<li><a href="http://dtrace.org/blogs/brendan/2011/12/18/visualizing-device-utilization/" >Brendan’s blog » Visualizing Device Utilization</a> – Brendan’s overview of visualizing utilization is a must read.</li>
<li><a href="http://blog.ascher.ca/2011/12/19/you-knew-the-old-mozilla-meet-the-new-mozilla/" >You knew the old Mozilla, meet the new Mozilla – david ascher</a> – RT @davidascher: New blog post about my take on Mozilla in 2012:</li>
<li><a href="http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-083-ips-basics-523756.html" >Untitled (<a href="http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-083-ips-basics-523756.html">http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-083-ips-basics-523756.html</a>)</a> – I like @glynnfoster’s pkg(5) summary: a good introduction.</li>
<li><a href="http://ur1.ca/6hwco" >(500) <a href="http://ur1.ca/6hwco">http://ur1.ca/6hwco</a></a> – Made my annual #Wikipedia donation today.</li>
<li><a href="http://www.mrmoneymustache.com/2011/11/23/how-to-become-a-kickass-plumber-with-pex/" >How to Become a Kickass Plumber – with PEX | Mr. Money Mustache</a> – “The technological revolution that made this activity drastically more easy and fun was the replacement of soldered copper pipes with flexible reinforced polyethylene pipes. These are commonly referred to as PEX (short for Poly-Ethylene-Crosslinked)…. PEX is so much better than copper in every way, you should immediately roll your eyes and sing a circus clown song at anyone who tells you they still do their plumbing with copper.”</li>
<li><a href="https://market.android.com/details?id=com.touchtype.swiftkey.phone.trial&referrer=utm_source=Twitter&utm_medium=Personalize&utm_campaign=SKX1" class="broken_link" rel="nofollow">SwiftKey X Keyboard Free – Android Market</a> – I’ve just personalized @SwiftKey X for Android with my Twitter posts! Get it free at</li>
<li><a href="http://splinter.cobrateam.info/" class="broken_link" rel="nofollow">splinter</a> – “Splinter is an open source tool for testing web applications using Python. It lets you automate browser actions, such as visiting URLs and interacting with their items.”</li>
</ul>Bookmarks for October 10th through October 17thhttps://blueslugs.com/2011/10/17/bookmarks-for-october-10th-through-october-17th/Mon, 17 Oct 2011 18:01:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/10/17/bookmarks-for-october-10th-through-october-17th/<p>These are my links for October 10th through October 17th:</p>
<ul>
<li><a href="http://rickharrison.github.com/validate.js/" >validate.js</a> – “Lightweight JavaScript form validation library inspired by CodeIgniter. No dependencies…”</li>
<li><a href="http://googleblog.blogspot.com/2011/10/fall-sweep.html" >Official Google Blog: A fall sweep</a> – Disappointed at Code Search closing. It’s an odd man out in the mostly focus-on-G+ fall sweep.</li>
<li><a href="http://fennb.com/microcaching-speed-your-app-up-250x-with-no-n" class="broken_link" rel="nofollow">Microcaching: Speed your app up 250x with no new code – Fenn’s Thoughts</a> – “Microcaching is like an insulation layer for your app – Let’s say your wordpress install (or rails app) can handle 20 requests/sec fairly happily. This is fine, up until the point where you get on HN and Reddit at the same time (greatest day of your life) and right at the critical time, your site collapses spectacularly amidst the deafening snarky jeers of your peers. The idea behind microcaching is to cap the amount of requests that can make it through to your app by letting nginx bear the brunt of your pageviews by caching content for a very small amounts of time (ie: 1 second or less).” Interesting technique; example nginx configuration given and explained.</li>
<li><a href="http://www.android-x86.org/" >Android-x86 – Porting Android to x86</a> – “This is a project to port Android open source project to x86 platform…” Works in VirtualBox, at least.</li>
<li><a href="http://www.alistapart.com/articles/css-positioning-101/" >A List Apart: Articles: CSS Positioning 101</a> – A very clear introduction to CSS positioning.</li>
</ul>Bookmarks for September 7th through October 5thhttps://blueslugs.com/2011/10/06/bookmarks-for-september-7th-through-october-5th/Thu, 06 Oct 2011 21:02:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/10/06/bookmarks-for-september-7th-through-october-5th/<p>These are my links for September 7th through October 5th:</p>
<ul>
<li><a href="http://www.slideshare.net/kohsuke/jenkins-user-conference-2011" >Untitled (<a href="http://www.slideshare.net/kohsuke/jenkins-user-conference-2011">http://www.slideshare.net/kohsuke/jenkins-user-conference-2011</a>)</a> – RT @kohsukekawa: My #jenkinsconf key note slides posted at</li>
<li><a href="http://www.theonion.com/articles/historians-politely-remind-nation-to-check-whats-h,26183/" >Historians Politely Remind Nation To Check What’s Happened In Past Before Making Any Big Decisions | The Onion – America’s Finest News Source</a> – RT @TheOnion: Historians Politely Remind Nation To Check What’s Happened In Past Before Making Any Big Decisions</li>
<li><a href="http://www.charlietanksley.net/philtex/primarily-pandoc/" >Primarily Pandoc: Writing in Markdown instead of LaTeX « PhilTeX</a> – Nice article on using pandoc for composition, rather than LaTeX. Includes example ePUB.</li>
<li><a href="http://dan.bravender.us/2009/6/21/Simple_Quickcheck_implementation_for_Python.html" >Simple Quickcheck implementation for Python</a> – Also links to a couple of other QuickCheck Python implementations. (Found based on bos’s Strange Loop talk.)</li>
<li><a href="http://imakewebthings.github.com/deck.js/" >deck.js » Modern HTML Presentations</a> – HTML/JS/CSS for in-browser presentations.</li>
</ul>Bespoke services: site/redishttps://blueslugs.com/2011/09/29/bespoke-services-siteredis/Fri, 30 Sep 2011 06:35:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/09/29/bespoke-services-siteredis/<p>For prototyping web applications, I have recently come to rely on having <a href="http://redis.io" alt="redis.io" title="redis.io">Redis</a> handy. In various sketches or early versions, I’ve used it to store event logs, to persist a collection of simple objects, or to conveniently manage a particularly large dictionary.</p>
<p>To make it easy to have a <code>redis-server</code> running on an OpenSolaris-derived system, I’ve written an smf(5) service manifest:</p>
<ul>
<li><a href="http://blueslugs.com/~sch/manifest/redis.xml" >redis.xml</a></li>
</ul>
<p>The default configuration of Redis is good enough for most prototyping scenarios, so this manifest assumes (a) that you’ve built and installed Redis to <code>/usr/local</code>, its default install location, and (b) are happy with the default configuration. In its default configuration, <code>redis-server</code> does not daemonize, and writes a log message every 5 seconds—you’ll very much want to change the latter if you move to production.</p>
<h2 id="exercises">Exercises</h2>
<ol>
<li>Add a property group and property to store a configuration location, and modify the start method appropriately. This enhancement should be on the service, such that it can be easily overridden on each instance. (*)</li>
</ol>Bookmarks for July 21st through August 13thhttps://blueslugs.com/2011/08/21/bookmarks-for-july-21st-through-august-13th/Mon, 22 Aug 2011 00:00:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/08/21/bookmarks-for-july-21st-through-august-13th/<p>These are my links for July 21st through August 13th:</p>
<ul>
<li><a href="http://docs.python-requests.org/en/latest/index.html" >Requests: HTTP for Humans — Requests v0.5.1 documentation</a> – “Requests is an ISC Licensed HTTP library, written in Python, for human beings. Most existing Python modules for sending HTTP requests are extremely verbose and cumbersome. Python’s builtin urllib2 module provides most of the HTTP capabilities you should need, but the api is thoroughly broken. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks. Things shouldn’t be this way. Not in Python.”</li>
<li><a href="http://docs.python-requests.org/en/latest/index.html" >Requests: HTTP for Humans — Requests v0.5.1 documentation</a> – “Requests is an ISC Licensed HTTP library, written in Python, for human beings. Most existing Python modules for sending HTTP requests are extremely verbose and cumbersome. Python’s builtin urllib2 module provides most of the HTTP capabilities you should need, but the api is thoroughly broken. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks. Things shouldn’t be this way. Not in Python.”</li>
<li><a href="https://github.com/assaf/zombie" >assaf/zombie – GitHub</a> – “Zombie.js is a lightweight framework for testing client-side JavaScript code in a simulated environment. No browser required.”</li>
<li><a href="http://manual.aptosid.com/en/bios-freedos-en.htm" >aptosid Manuals – Upgrade BIOS FreeDOS</a> – “You may want, or have a need, to update the BIOS of your PC, when the manufacturer of the motherboard announces some improvement of BIOS software. The installer program usually offered is an application to run MS-DOS. This is a way to update BIOS from a USB in linux. This will work with USB keys, USB sticks and with micro/mini/SD cards (with a suitable adapter).”</li>
<li><a href="http://headjs.com/" >head.js</a> – “Load scripts like images. Use HTML5 and CSS3 safely. Target CSS for different screens, paths, states and browsers. Make it the only script in your HEAD. A concise solution to universal issues.” Multi-function JS lib, with parallel loading.</li>
</ul>Bookmarks for June 22nd through July 19thhttps://blueslugs.com/2011/07/21/bookmarks-for-june-22nd-through-july-19th/Thu, 21 Jul 2011 07:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/07/21/bookmarks-for-june-22nd-through-july-19th/<p>These are my links for June 22nd through July 19th:</p>
<ul>
<li><a href="http://code.alecperkins.net/coffeetable/" class="broken_link" rel="nofollow">CoffeeTable – Code – Alec Perkins</a> – A drop-in workbench for experimentation, CoffeeTable provides a CoffeeScript-fluent console on a page, with persistent history and auto-suggest.</li>
<li><a href="http://www.google.ca/intl/en/jobs/waterloo/" class="broken_link" rel="nofollow">Waterloo – Jobs – Google</a> – Google opened an office a mile from my old high school. That neighborhood was all closed shoe and tire factories.</li>
<li><a href="http://dtrace.org/blogs/bmc/2011/07/12/in-defense-of-intrapreneurialism/" >The Observation Deck » In defense of intrapreneurialism</a> – RT @bcantrill: In defense of intrapreneurialism: And curse you @trevoro for having taunted me with that red cape!</li>
<li><a href="http://matt.io/entry/uq" >matt blags – hivemind devops alert: nginx sucks at ssl</a> – Benchmark of SSL handling by nginx, stunnel, stud, and the author’s patched stud.</li>
<li><a href="http://ssssnakes.com/smoke/" >smoke.js</a> – “A framework-agnostic styled alert system for javascript. Lightweight, flexible, css3 animation, blah blah blah easy to use…”</li>
<li><a href="http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/" >Eli Bendersky’s website » Blog Archive » Parsing C++ in Python with Clang</a> – RT @tuan_kuranes_rs: Parsing C++ in Python with Clang:</li>
<li><a href="http://blueslugs.com/2011/07/02/mexi-dog-from-the-patty-shack/" >Lunch: The Patty Shack, Redwood City, CA | blueslugs.com</a> – Bacon-wrapped hot dogs arrive in #redwoodcity.</li>
<li><a href="http://jonasgalvez.com.br/Software/HCSS.html" class="broken_link" rel="nofollow">Jonas Galvez: HCSS</a> – hcss is a CSS compiler that that allows you to use HTML element hierarchy to define CSS rules. hcss employs simple conventions for defining nested rules and minimalist class inheritance.</li>
<li><a href="http://dtrace.org/blogs/ahl/2011/07/01/flash-news-i-wish-i-could-read/" >Adam Leventhal’s blog » Flash news I wish I could read</a> – RT @ahl: new blog post » Flash news I wish I could read</li>
<li><a href="http://en.wikipedia.org/wiki/Traffic_Light_Protocol" >Traffic Light Protocol – Wikipedia, the free encyclopedia</a> – “The Traffic Light Protocol (TLP) was created[1][2] to encourage greater sharing of sensitive information. The originator signals how widely they want their information to be circulated beyond the immediate recipient.” A simple document classification scheme.</li>
<li><a href="http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html" >How to take advantage of Redis just adding it to your stack</a> – “Redis is different than other database solutions in many ways: it uses memory as main storage support and disk only for persistence, the data model is pretty unique, it is single threaded and so forth. I think that another big difference is that in order to take advantage of Redis in your production environment you don’t need to switch to Redis. You can just use it in order to do new things that were not possible before, or in order to fix old problems.” Redis’s author illustrates some problems Redis makes easy.</li>
<li><a href="http://gephi.org/" >Gephi, an open source graph visualization and manipulation software</a> – “Gephi is an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs.” Java-based, uses OpenGL, cross-platform.</li>
<li><a href="http://www.facebook.com/note.php?note_id=10150091919122277" >Dive Into Dojo GFX | Facebook</a> – SitePen’s note on dojox.gfx has slightly more detailed examples than the base documentation.</li>
</ul>Menu: grilled salmon, anise, tomato, scallion, plus broiled goat cheese saladhttps://blueslugs.com/2011/07/17/menu-grilled-salmon-anise-tomato-scallion-plus-broiled-goat-cheese-salad/Sun, 17 Jul 2011 20:45:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/07/17/menu-grilled-salmon-anise-tomato-scallion-plus-broiled-goat-cheese-salad/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/5944477467/" title="photo sharing"><img src="http://farm7.static.flickr.com/6132/5944477467_aab62a9e06.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/5944477467/" >Cooked because we had new propane</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>Dina took the boys out for the afternoon, so I decided to fire up the grill for dinner. The recipes are from Carroll (1999) and Brennan (2002). (The salad is not pictured; I didn’t broil the goat cheese pucks long enough, so plating was a challenge.)</p>
<p>Vinum California Rose for preparation and dinner.</p>
<h3 id="references">References</h3>
<p>Brennan, Georgeanne. <em>Salad: William Sonoma Collection.</em> (Free Press, 2002).</p>
<p>Carroll, John Phillip. <em>Grilling.</em> Williams-Sonoma Kitchen Library. (Time Life Medical, 1992).</p>Irritating retrogradehttps://blueslugs.com/2011/07/06/retrograde/Wed, 06 Jul 2011 23:28:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/07/06/retrograde/<p>A government agency I interact with has updated their web-based client software. The original application was a basic sequence of web forms. Its replacement? An approximately ~50MiB Silverlight-based application. In the process of the update, they discarded my original web account and password. The backend service that the application must communicate with is still slow, operating costs now include the bandwidth to update cached copies (for performance reasons), and the application itself has new usability issues. Because of the switch from standardized Web technologies to Silverlight, the majority of their customers can’t run the application on their phone or tablet. (If it were Flash, iPads would still be excluded.) How was this change an upgrade, again?</p>Menu: Gazpacho, Grilled Steak with Chimichurri, Taco with Potato-Egg-Chevre-Salse Verdehttps://blueslugs.com/2011/07/04/menu-gazpacho-grilled-steak-with-chimichurri-taco-with-potato-egg-chevre-salse-verde/Tue, 05 Jul 2011 06:17:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/07/04/menu-gazpacho-grilled-steak-with-chimichurri-taco-with-potato-egg-chevre-salse-verde/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/5902885545/" title="photo sharing"><img src="http://farm6.static.flickr.com/5115/5902885545_3c18478fa2.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/5902885545/" >Cooked for Independence Day 2011</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>We served a light meal for Fourth of July this year–we had only a single dinner guest, and Benjamin is still at camp. The gazpacho and steak recipes were based on those in this month’s <em>Cook’s Illustrated</em>, while the taco filling comes from Bayless’s <em>Authentic Mexican</em>. (The filling is becoming a regular offering at our house.)</p>
<p>Red Stripe and Pacifico served during the preparation phase; a Malbec with dinner. Sorbet for dessert.</p>Lunch: The Patty Shack, Redwood City, CAhttps://blueslugs.com/2011/07/02/mexi-dog-from-the-patty-shack/Sat, 02 Jul 2011 20:34:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/07/02/mexi-dog-from-the-patty-shack/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/5902956520/" title="Mexi-dog at The Patty Shack by schahn, on Flickr"><img src="http://farm7.static.flickr.com/6010/5902956520_4287d523e5.jpg" style="border: solid 2px #000000;" alt="Mexi-dog, The Patty Shack" /></a> <br /> <a href="http://www.flickr.com/photos/schahn/5902329499/" title="Counter at The Patty Shack by schahn, on Flickr"><img src="http://farm6.static.flickr.com/5111/5902329499_cd5bff5427.jpg" style="border: solid 2px #000000;" alt="Counter at The Patty Shack" /></a>
</div>
<p>Nathaniel and I, after reading most of the menus on Broadway in search of a hot dog, stopped at The Patty Shack <a href="http://www.yelp.com/biz/the-patty-shack-redwood-city" >[Yelp]</a> on Main St. Having enjoyed Tijuana Dogs at Fremont’s now-defunct Juan More Taco, I was pretty excited to have a local source for bacon-wrapped hot dogs. Nathaniel enjoyed his corn dog; he’s torn between the Shack’s better product versus Ben Franks’s location beside the train tracks at Whipple.</p>Bookmarks for May 24th through June 18thhttps://blueslugs.com/2011/06/18/bookmarks-for-may-24th-through-june-18th/Sun, 19 Jun 2011 03:00:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/06/18/bookmarks-for-may-24th-through-june-18th/<p>These are my links for May 24th through June 18th:</p>
<ul>
<li><a href="http://twitpic.com/5detxl" >Twitpic – Share photos and videos on Twitter</a> – Bike friendliness: free air by rack</li>
<li><a href="http://www.asciiflow.com/" >Asciiflow – ASCII Flow Diagram Tool</a> – Browser-based drawing tool for creating block comment-friendly diagrams.</li>
<li><a href="http://languagelog.ldc.upenn.edu/nll/?p=3154" >Language Log » Translated phrase-list jokes</a> – “The recently-posted Anglo-EU Translation Guide shares 3 phrases with the 2004 Economist column (some expressive details aside), lacking 2 others and adding 12 more. So a combined Anglospeak phrase book would have 17 entries, as compiled below…”</li>
<li><a href="http://www.android.com/filetransfer/" >Android.com</a> – Android File Transfer is an application for Macintosh computers (running Mac OS X 10.5 or later) you can use to view and transfer files between your Mac and an Android device (running Android 3.0 or later).</li>
<li><a href="http://inside.saab.com/saab-zero-emissions-fleet-under-construction/" class="broken_link" rel="nofollow">Saab Zero Emissions fleet under construction | Inside Saab by Steven Wade</a> – Prototypes being assembled; possibly our next car. #saab</li>
</ul>Never answer surveys!https://blueslugs.com/2011/05/21/never-answer-surveys/Sat, 21 May 2011 08:42:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/05/21/never-answer-surveys/<p>The number of sites asking me to take a brief survey has exploded in the past six months. I’m also seeing email and paper mail requests to participate in surveys creep up too. If this increase is an indicator of an improving economy—as we interpret the worsening traffic on US101—that’s great, but it doesn’t affect my goal, which is to convince you that you should never answer surveys.</p>
<p>There are three reasons I’m trying to persuade you to avoid surveys. First, after almost a year at a startup, I’m very sensitive to time wasting activities. Second, I don’t believe survey originators are valuing that time fairly. Finally, since the survey terms rarely limit use of the submitted information, I want you to recognize that, in addition to being undercompensated for the information you shared, you have no control over how or for what end the information will be used.</p>
<p>We’ll visit each of these in turn, but before that, let me identify two exceptions where you might choose to submit a survey. Much of my arguments are going to depend on viewing one or both of the time and information that the survey involves as having some value. So, if the survey giver has no ability to compensate you for your time, you might choose to view your completion of the survey as a donation. That would allow you to return surveys to a selection of charities. Similarly, if you support the survey giving organization’s goals—like a Swedish car manufacturer with a fine product, but struggling in the market—you could answer their surveys in the hope that the value of the information you shared incrementally helps them to reach their goals. (Acting on a survey request being substantially less investment than purchasing a car.) A shareholder of a company that is surveyed by that same company might choose to answer in the hopes of seeing their investment succeed.</p>
<p>If the survey organization doesn’t fit into those categories, it’s very likely that you shouldn’t respond. Let’s see why.</p>
<blockquote>
<p>“I recommend to you to take care of minutes: for hours will take care of themselves.” – Earl of Chesterfield</p>
</blockquote>
<p>The first concern is that surveys require time, and return no information. Just the request, as a rejected dialogue on a web page or an email to be deleted, has already cost a minute. Typical surveys run from 3 – 5 minutes to 30 minutes or more, plus that initial minute of interruption. What do we receive for that minute? Presumably the survey giver now knows more about us, and can adjust their products or pricing to be more appealing to those people who answered the survey identically. We receive nothing—not even information shared by other respondents, so that we might get some comparative demographics about our fellow customers.</p>
<p>I think we would all get sensitized to a stream of requests for work (the surveys) for which we got nothing back. Eventually, even the most accommodating personality would just refuse. They might even slam down the telephone, or press the delete key really hard. That’s why surveys often offer to enter submitters into a draw for one or more prizes; this tactic is meant to suggest that you are being compensated for your effort.</p>
<p>Before we analyze a specific survey request, let’s establish a useful baseline for comparison. Minimum wage in California since 2008 is $8/hr, which corresponds to $16,000 annually. The survey requests all claim to need only minutes of our time, so a more natural unit is a minute of compensation. For the California, the minimum per-minute wage is $0.13.</p>
<p>I just received a survey offer today. It’s from a for-profit company, whose goals aren’t of particular interest to me. That means it’s a convenient example to evaluate. The survey claims to require 3 minutes for a chance at $2500. (We’ll omit the minute we lost reading the offer; it makes the numbers worse.) To determine whether or not the survey’s compensation is worthwhile, we will compare the minimum wage for 3 minutes:</p>
<p>$$ 3\thinspace\rm{minutes} \times $0.13\thinspace/\thinspace\rm{minutes} = $0.39 $$</p>
<p>against the <em>expectation value</em> of the lottery draw. The expectation value, written <em>⟨value⟩</em>, is defined as the sum over all of the outcome values multiplied by the probability that each particular outcome occurs. Since, when we lose, the outcome value is 0, the only contributing term is when we win:</p>
<p>$$ \langle \rm{value} \rangle = \rm{value} \times P [\rm{we\ win\ lottery}] $$</p>
<p>The value of the prize is $2500. To determine the probability, we assume each respondent has an equal chance to win. Then we are left to estimate the likely number of respondents to the survey. If each respondent has an equal chance, then the probability is</p>
<p>$$ P[\rm{we\ win\ lottery}] = {1 \over \rm{number\ of\ respondents}} $$</p>
<p>The company in question, after a brief search, had 3 – 4 million customers in a recent report. If we assume they sampled 1% of their customers, that’s a pool of 30,000 – 40,000 potential respondents. If 1000 people respond, our expectation value is $2.50; if 10,000 people respond, our expectation value is $0.25, less than our minimal compensation. (The expectation value is equal when 6,410 people respond.)</p>
<p>So, for a reasonable assumption about number of respondents, we see that the expectation value of the prize is in the vicinity of the minimum wage for the time contributed. If our example company sampled a larger set, then it’s very likely the expectation value will be less than minimum wage; if you value your time substantially higher than minimum wage, the expectation value of the prize will not be compensating. Thus, in most cases, when you submitted your survey, you received neither useful information nor compensating value.</p>
<p>(Before moving on, we should flip our perspective: how did the surveying company value the information submitted and the impact on customer time? There’s the amount of the prize. We could divide that amount by the number of respondents, and see the valuation above; we might divide by the number of invitations, which is substantially lower. If data acquisition costs only a few cents per customer, is it likely that the data will be valued more highly in a strategic discussion?)</p>
<p>The last reason to avoid submitting surveys is that you are sharing information about yourself, or your household, with an organization into which you likely have limited insight. Beyond whether or not the data you submitted in your response has a meaningful impact on the company’s decisions, there are questions about the use of that data after its initial analysis. Some surveys say they won’t share your email or contact information, or explicitly ask for permissions around contact; in the bulk of these, though, no limitations are placed on the use of the submitted data. That’s worrying, but abstract.</p>
<p>The more concrete concern is that your information will be used by the company for goals other than the product improvement ones we’ve assumed above. Your information might be used to assess your ability to contribute to a political campaign, or to determine the compensation rates of your employer. Your disclosure of a preference for Scandinavian automobiles to your bank might be eventually shared with a domestic or foreign car manufacturer, who would rather you didn’t hold such a preference. Since there is no agreement on how the information can be used, you should expect that some of the survey data you submitted has been shared, or sold, and has circulated wildly. Why continue to refresh it?</p>
<p>Responding to surveys is a flawed activity in three ways: you receive no information in return for the information you submitted, you receive inadequate compensation for the time taken, and you have no assurance or control over the use of the information over any period of time. I suppose, as we look at those three concerns, that an idealized survey can be described as</p>
<ul>
<li>a survey that includes a simple summary of the responses to each question, returned within a reasonable time following the survey period,</li>
<li>a survey with guaranteed payment in some useful form, in an amount that reflects the value of the responder’s time and the giver’s use of the information, and</li>
<li>a survey that covers the use and retention of the submitted information with a actual, easily understood license.</li>
</ul>
<p>If you receive a survey with those characteristics, I suppose you might consider submitting it. Otherwise, you should stop.</p>Bookmarks for May 9th through May 20thhttps://blueslugs.com/2011/05/20/bookmarks-for-may-9th-through-may-20th/Fri, 20 May 2011 16:00:47 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/05/20/bookmarks-for-may-9th-through-may-20th/<p>These are my links for May 9th through May 20th:</p>
<ul>
<li><a href="http://kkovacs.eu/cool-but-obscure-unix-tools" >Cool, but obscure unix tools :: KKovacs</a> – “Just a list of 20 (now 28) little-known tools for the command line.” Nice presentation; a few are new to me.</li>
<li><a href="http://arxiv.org/abs/1105.1383" >[1105.1383] Topological Considerations for Tuning and Fingering Stringed Instruments</a> – We present a formal language for assigning pitches to strings for fingered multi-string instruments, particularly the six-string guitar. Given the instrument’s tuning (the strings’ open pitches) and the compass of the fingers of the hand stopping the strings, the formalism yields a framework for simultaneously optimizing three things: the mapping of pitches to strings, the choice of instrument tuning, and the key of the composition. Final optimization relies on heuristics idiomatic to the tuning, the particular musical style, and the performer’s proficiency.</li>
<li><a href="http://www.datacollective.org/sparkblocks.html" >Tweetable Sparkblocks – The Data Collective</a> – Form to generate a sparkline bar graph that’s capable of being Tweeted (and presumable pasted many places).</li>
<li><a href="http://www.blogofile.com/" >Blogofile</a> – Blogofile is a static website compiler, primarily (though not exclusively) designed to be a simple blogging engine. It requires no database and no special hosting environment. You customize a set of templates with Mako, create posts in a markup language of your choice (see Post Content) and Blogofile renders your entire website as static HTML and Atom/RSS feeds which you can then upload to any old web server you like.</li>
<li><a href="http://twitpic.com/4vjl2k" >Twitpic – Share photos and videos on Twitter</a> – Why I am changing a flat tire. #nail</li>
</ul>Bookmarks for April 25th through May 5thhttps://blueslugs.com/2011/05/05/bookmarks-for-april-25th-through-may-5th/Thu, 05 May 2011 19:02:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/05/05/bookmarks-for-april-25th-through-may-5th/<p>These are my links for April 25th through May 5th:</p>
<ul>
<li><a href="http://www.smashingmagazine.com/2011/05/05/innovative-techniques-to-simplify-signups-and-logins/" >Innovative Techniques To Simplify Sign-Ups and Log-Ins – Smashing Magazine</a> – Good survey of best practices around login/signup for websites.</li>
<li><a href="http://creativemachines.cornell.edu/eureqa" >Eureqa | Cornell Creative Machines Lab</a> – Eureqa (pronounced “eureka”) is a software tool for detecting equations and hidden mathematical relationships in your data. Its goal is to identify the simplest mathematical formulas which could describe the underlying mechanisms that produced the data.</li>
<li><a href="https://github.com/jonashaag/bjoern" >jonashaag/bjoern – GitHub</a> – A screamingly fast, ultra-lightweight asynchronous WSGI server for CPython, written in C using Marc Lehmann’s high performance libev event loop and Ryan Dahl’s http-parser_.</li>
<li><a href="http://nodebox.net/code/index.php/Graph" >NodeBox | Graph</a> – “The NodeBox Graph library includes algorithms from NetworkX for betweenness centrality and eigenvector centrality, Connelly Barnes’ implementation of Dijksta shortest paths (here) and the spring layout for JavaScript by Aslak Hellesoy and Dave Hoover (here). The goal of this library is visualization of small graphs (<200 elements)…”</li>
<li><a href="http://www.theregister.co.uk/2011/04/25/estonia_cyberwar_interview/print.html" >Cyberwarriors on the Eastern Front: In the line of fire packet floods [printer-friendly] • The Register</a> – Interview on 2007 cyberattack with Estonia MoD undersec’y: “… banning the use of cyberweapons is not realistic.”</li>
</ul>Lunch: Zero Zero, San Francisco, CAhttps://blueslugs.com/2011/04/29/lunch-zero-zero-san-francisco-ca/Fri, 29 Apr 2011 22:57:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/04/29/lunch-zero-zero-san-francisco-ca/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/5677801948/" title="photo sharing"><img src="http://farm6.static.flickr.com/5148/5677801948_df93ee6369.jpg" style="border: solid 2px #000000;" alt="" /></a> <br /> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/5677801948/" >Pizza stand at Zero Zero</a>, originally uploaded by <a href="http://www.flickr.com/photos/schahn/" >schahn</a>.</span>
</div>
<p>Our considerate server brought us tastes of two distinct wines to assist our selection. Note that Zero Zero doesn’t open for lunch until 12 p.m. If you arrive before your tablemates, LuLu next door has a bar; in spring, their special cocktails use fresh basil.</p>Lunch: Birch Street, Palo Alto, CAhttps://blueslugs.com/2011/04/22/lunch-birch-street-palo-alto-ca/Fri, 22 Apr 2011 23:33:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/04/22/lunch-birch-street-palo-alto-ca/<p>Had a nice lunch off California Ave today. <a href="http://www.yelp.com/biz/birch-street-palo-alto#hrid:yfP2ka3viXW4KubSPvtzxQ" alt="Yelp review">[Yelp: Birch St]</a></p>First 'quatshttps://blueslugs.com/2011/01/09/first-quats/Sun, 09 Jan 2011 21:30:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2011/01/09/first-quats/<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/schahn/5340391140/" title="photo sharing"><img style="border: solid 2px #000000;" src="http://farm6.static.flickr.com/5009/5340391140_8f7071d3c9.jpg" alt="" /></a> <span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/schahn/5340391140/" >Kumquats</a>, originally uploaded by <a href="http://www.flickr.com/people/schahn/" >schahn</a>.</span>
</div>
<p>When Dina and I moved to California, the first plant we bought was a dwarf kumquat. We planted it in an oak half-barrel, which, as an alleged byproduct of the wine industry, was another novelty. It survived years on our apartment’s porch, the move to our small house, and years more on the driveway. I couldn’t, however, resuscitate it from a summer of neglect caused by a renovation project.</p>
<p>So, at the end of the past summer, we bought and planted a new dwarf kumquat. And waited.</p>
<p>This morning, Benjamin and I went for a walk downtown. (7.36 km total, according to the phone.) On our way out, we noticed these two fruits on a limb of the tree. It’s a small first crop, but it won’t be long before I’m making kumquat-lemon marmalade again.</p>Bookmarks for 29 October through 4 Novemberhttps://blueslugs.com/2010/11/04/bookmarks-for-29-october-through-4-november/Fri, 05 Nov 2010 04:00:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/11/04/bookmarks-for-29-october-through-4-november/<ul>
<li><a href="http://blog.madpython.com/2010/10/17/fuzzy-mathematics-with-fuzzpy-part-1/" class="broken_link" rel="nofollow">Fuzzy Mathematics with FuzzPy (Part 1) | Mad Python</a> – Python module to work with fuzzy numbers, sets, and graphs. Integrated with GraphViz for visualization.</li>
<li><a href="https://www.eff.org/https-everywhere" >HTTPS Everywhere | Electronic Frontier Foundation</a> – “HTTPS Everywhere is a Firefox extension …. It encrypts your communications with a number of major websites.”</li>
</ul>Jack-o'-lanterns, 2010https://blueslugs.com/2010/10/31/jack-o-lanterns-2010/Mon, 01 Nov 2010 01:57:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/10/31/jack-o-lanterns-2010/<p><a href="http://www.flickr.com/photos/schahn/5133655915/" title="photo sharing"><img src="http://farm2.static.flickr.com/1240/5133655915_54a661ab4d_m.jpg" alt="" style="border: solid 0px #000000;" /></a> <br clear="all" /></p>
<p>In which Dina patiently uses our pumpkin carving saws on two large specimens.</p>Bookmarks for 13 October through 23 Octoberhttps://blueslugs.com/2010/10/23/bookmarks-for-13-october-through-23-october/Sun, 24 Oct 2010 04:00:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/10/23/bookmarks-for-13-october-through-23-october/<ul>
<li><a href="http://justin.harmonize.fm/index.php/2010/10/bujagali-incredibly-fast-javascript-templating/" class="broken_link" rel="nofollow">Bujagali: Incredibly Fast JavaScript Templating</a> – Interesting approach to templating: render on either client or server as part of your application.</li>
<li><a href="http://coobs.eu.org/py-multicast/" >py-multicast – Python IP multicast library</a> – “py-multicast provides an easy to use interface to receive multicast streams”.</li>
</ul>Bookmarks for 1 October through 7 Octoberhttps://blueslugs.com/2010/10/07/bookmarks-for-1-october-through-7-october/Thu, 07 Oct 2010 17:07:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/10/07/bookmarks-for-1-october-through-7-october/<ul>
<li><a href="http://fitzgen.github.com/pycco/" class="broken_link" rel="nofollow">pycco</a> – A port of docco for Python: produces very attractive literate programming-like HTML output, using Markdown and Pygments.</li>
<li><a href="http://vis.cs.ucdavis.edu/~ogawa/research/storylines/" class="broken_link" rel="nofollow">Software Evolution Storylines</a> – From Michael Ogawa, developer of code swarms, a more linear visualization of code integrations and correlations.</li>
<li><a href="http://arxiv.org/abs/1009.5718" >[1009.5718] Monitoring wild animal communities with arrays of motion sensitive camera traps</a> – “Motion sensitive camera traps offer a visual sensor to record the presence of a broad range of species providing location -specific information on movement and behavior. Modern digital camera traps that record video present new analytical opportunities, but also new data management challenges. This paper describes our experience with a terrestrial animal monitoring system at Barro Colorado Island, Panama.” Includes a short discussion of camera failure cases, effective lifetimes, and initial calibration.</li>
<li><a href="http://arxiv.org/abs/1009.0626" >[1009.0626] Approximate results for a generalized secretary problem</a> – “A version of the classical secretary problem is studied, in which one is interested in selecting one of the b best out of a group of n differently ranked persons who are presented one by one in a random order. It is assumed that b is a preassigned (natural) number. It is known, already for a long time, that for the optimal policy one needs to compute b position thresholds, for instance via backwards induction. In this paper we study approximate policies, that use just a single or a double position threshold, albeit in conjunction with a level rank. We give exact and asymptotic (as n tends to infinity) results, which show that the double-level policy is an extremely accurate approximation.”</li>
<li><a href="http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0013181" >PLoS ONE: Iridovirus and Microsporidian Linked to Honey Bee Colony Decline</a> – “We used Mass spectrometry-based proteomics (MSP) to identify and quantify thousands of proteins from healthy and collapsing bee colonies. MSP revealed two unreported RNA viruses in North American honey bees, Varroa destructor-1 virus and Kakugo virus, and identified an invertebrate iridescent virus (IIV) (Iridoviridae) associated with CCD colonies. Prevalence of IIV significantly discriminated among strong, failing, and collapsed colonies. In addition, bees in failing colonies contained not only IIV, but also Nosema.”</li>
</ul>Bookmarks for 14 September through 28 Septemberhttps://blueslugs.com/2010/09/28/bookmarks-for-14-september-through-28-september/Tue, 28 Sep 2010 21:00:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/09/28/bookmarks-for-14-september-through-28-september/<ul>
<li><a href="http://retinart.net/typography/marksunknown" >Typographic Marks Unknown – Retinart</a> – A brief history of the pilcrow, ampersand, section sign, asterisk, and hedera, with comments on usage.</li>
<li><a href="http://typography.com/ask/showBlog.php?blogID=84" >H&FJ News – Pilcrow & Capitulum</a> – A brief history of the pilcrow–that “reversed ‘P’ for paragraph” character–with some samples.</li>
<li><a href="http://wiki.debian.org/MeetBot" >MeetBot – Debian Wiki</a> – “MeetBot is designed to assist in running meetings, taking notes, and so on. It is in pure python, as a plugin to supybot.”</li>
<li><a href="http://www.zint.org.uk/zintSite/default.aspx" class="broken_link" rel="nofollow">Zint Open Source Barcode Generator</a> – “Zint is an Open Source barcode encoding and image generating library written entirely in C and released under GPLv3 or later.” In particular, offers QR code output in SVG format.</li>
</ul>Bookmarks for 7 September through 14 Septemberhttps://blueslugs.com/2010/09/14/bookmarks-for-7-september-through-14-september/Tue, 14 Sep 2010 10:00:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/09/14/bookmarks-for-7-september-through-14-september/<ul>
<li><a href="http://www.zint.org.uk/zintSite/default.aspx" class="broken_link" rel="nofollow">Zint Open Source Barcode Generator</a> – “Zint is an Open Source barcode encoding and image generating library written entirely in C and released under GPLv3 or later.” In particular, offers QR code output in SVG format.</li>
<li><a href="http://arxiv.org/abs/1009.0550" >[1009.0550] Optimizing Selective Search in Chess</a> – Fun.</li>
<li><a href="http://arxiv.org/abs/0907.3135" >[0907.3135] Fast Searching in Packed Strings</a> – “On a standard unit-cost word-RAM with logarithmic word size we present an algorithm using time $$ O\left(\frac{n}{\log_\sigma n} + m + \occ\right). $$ Here $\occ$ is the number of occurrences of $P$ in $Q$. For $m = o(n)$ this improves the $O(n)$ bound of the Knuth-Morris-Pratt algorithm.”</li>
<li><a href="http://ngircd.barton.de/" >ngIRCd: Next Generation IRC Daemon</a> – “ngIRCd is a free open source server for Internet Relay Chat (IRC), which is being developed under the GNU General Public License (GPL). It has been written from scratch…”</li>
<li><a href="http://arxiv.org/abs/1008.1770" >[1008.1770] A complex network approach to robustness and vulnerability of spatially organized water distribution networks</a> – Examines water distribution networks using network and graph theory techinques.</li>
</ul>Bookmarks for 3 August through 7 Septemberhttps://blueslugs.com/2010/09/07/bookmarks-for-3-august-through-7-september/Tue, 07 Sep 2010 22:00:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/09/07/bookmarks-for-3-august-through-7-september/<ul>
<li><a href="http://ngircd.barton.de/" >ngIRCd: Next Generation IRC Daemon</a> – “ngIRCd is a free open source server for Internet Relay Chat (IRC), which is being developed under the GNU General Public License (GPL). It has been written from scratch…”</li>
<li><a href="http://arxiv.org/abs/1008.1770" >[1008.1770] A complex network approach to robustness and vulnerability of spatially organized water distribution networks</a> – Examines water distribution networks using network and graph theory techinques.</li>
<li><a href="http://arxiv.org/abs/1008.2345" >[1008.2345] Trident, a new pseudo random number generator based on coupled chaotic maps</a> – Generates random numbers using chaotic mappings. Passes NIST and other random number quality tests.</li>
<li><a href="http://lessframework.com/" >Less Framework 2</a> – Lightweight HTML5 friendly layout CSS.</li>
<li><a href="http://klee.llvm.org/" >The KLEE Symbolic Virtual Machine</a> – Can explore state space of C programs and auto-generate appropriate test cases to maximize coverage.</li>
</ul>Bespoke services: site/supervisordhttps://blueslugs.com/2010/09/04/bespoke-services-sitesupervisor/Sat, 04 Sep 2010 23:47:24 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/09/04/bespoke-services-sitesupervisor/<p>Recently, I’ve been experimenting with <a href="http://supervisord.org" >supervisor</a>, which is a Python-based process restarter for Unix/Linux. <a href="http://lincolnloop.com/" >Lincoln Loop</a> recently offered <a href="http://lincolnloop.com/blog/2010/jun/24/automatically-running-supervisord-startup/" >instructions on running supervisor under upstart</a>, which is applicable to some of the current Linux distributions. On OpenSolaris and related systems, the service management facility, smf(5), can be used to ensure your supervisors stay online. Below is a simple manifest that starts (and restarts) supervisord after a small set of services becomes available.</p>
<ul>
<li><a href="http://blueslugs.com/~sch/manifest/supervisord.xml" >supervisord.xml</a></li>
</ul>
<p>If you don’t provide a <code>supervisor.conf</code> in one of the standard locations, enabling this service instance will result in it heading immediately to the maintenance state, as the start method will fail repeatedly. You can use <code>svcs -x</code> to perform this diagnosis:</p>
<pre class="sh">$ svcs -x ~
svc:/site/supervisord:default (supervisor process control system)
State: maintenance since Sat Sep 04 16:34:14 2010
Reason: Start method failed repeatedly, last exited with status 2.
See: http://sun.com/msg/SMF-8000-KS
See: utmpd(1M)
See: utmpx(4)
See: /var/svc/log/site-supervisord:default.log
Impact: This service is not running.
</pre>
<p>The log file will contain a message, with some amount of repetition, like</p>
<pre>[ Sep 4 16:34:13 Enabled. ]
[ Sep 4 16:34:13 Rereading configuration. ]
[ Sep 4 16:34:13 Executing start method ("/usr/bin/supervisord"). ]
Error: No config file found at default paths (/usr/etc/supervisord.conf, /usr/supervisord.conf, supervisord.conf, etc/supervisord.conf, /etc/supervisord.conf); use the -c option to specify a config file at a different path
For help, use /usr/bin/supervisord -h
[ Sep 4 16:34:13 Method "start" exited with status 2. ]
</pre>
<p>It’s worth noting that all of the programs run by a single instance of supervisord will be in the same process contract. If you know the fault characteristics of your programs, you may wish to use multiple instances of <code>supervisord</code> to keep programs with “sympathetic” failure modes and frequencies. You may also need to ignore core dumps and external signals, depending on the programs you are running; on recent systems, you can see /var/svc/manifest/network/http-apache22.xml for an example of a <code>startd</code> property group that does so. Alternatively, you could modify your configuration to run each of the programs to be <a href="http://blueslugs.com/wordpress/2004/12/01/personal-restarters-and-ctrun1/" >started in independent contracts using <code>ctrun</code>(1)</a>.</p>
<h2 id="exercises">Exercises</h2>
<ol>
<li>We should really provide a property group that contains the key invocation settings as properties. I’ve omitted it here, particularly for the configuration file, because the method token expansion outlined in <code>smf_method</code>(5) lacks handling for unset property values. (*)</li>
<li>Extend <code>supervisord</code> to understand process contracts. This exercise would include constructing a Python module to interact with the contract filesystem. (***)</li>
</ol>Bookmarks for 1 July through 19 Julyhttps://blueslugs.com/2010/07/19/bookmarks-for-1-july-through-19-july/Mon, 19 Jul 2010 19:01:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/07/19/bookmarks-for-1-july-through-19-july/<ul>
<li><a href="http://matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicates/" >3 shell scripts: Kill weasel words, avoid the passive, eliminate duplicates</a> – “So, I’ve decided to replace myself with a shell script. In particular, I’ve created shell scripts for catching three problems: the passive voice, weasel words, and<br /> lexical illusions.”</li>
<li><a href="http://arxiv.org/abs/0811.0113" >[0811.0113] A Bayesian Framework for Opinion Updates</a> – “Opinion Dynamics lacks a theoretical basis. In this article, I propose to use a decision-theoretic framework, based on the updating of subjective probabilities, as that basis. We will see we get a basic tool for a better understanding of the interaction between the agents in Opinion Dynamics problems and for creating new models.”</li>
<li><a href="http://www.texotela.co.uk/code/jquery/newsticker/" >TexoTela jQuery – newsticker</a> – A fade-in/fade-out newsticker for jQuery.</li>
<li><a href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html" >jQuery liScroll – a jQuery News Ticker</a> – “liScroll is a jQuery plugin that transforms any given unordered list into a scrolling News Ticker.”</li>
<li><a href="http://en.wikipedia.org/wiki/Taguchi_methods" >Taguchi methods – Wikipedia, the free encyclopedia</a> – “Taguchi methods are statistical methods developed by Genichi Taguchi to improve the quality of manufactured goods, and more recently also applied to, engineering, biotechnology, marketing and advertising.”</li>
</ul>Bookmarks for 8 June through 29 Junehttps://blueslugs.com/2010/06/29/bookmarks-for-8-june-through-29-june/Wed, 30 Jun 2010 04:02:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/06/29/bookmarks-for-8-june-through-29-june/<ul>
<li><a href="http://arxiv.org/abs/1006.5169" >[1006.5169] Hyperbolic Geometry of Complex Networks</a> – Interesting.</li>
<li><a href="http://measuringmeasures.com/blog/2010/6/9/learning-about-network-theory.html" class="broken_link" rel="nofollow">Learning about Network Theory</a> – A brief introduction, with links to resources.</li>
<li><a href="http://networkx.lanl.gov/" >NetworkX v1.1</a> – “NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.”</li>
<li><a href="http://arxiv.org/abs/1006.1786" >[1006.1786] Measuring Meaning on the World-Wide Web</a> – A brief paper exploring word-word correlations on the Web, with some interesting specific examples.</li>
<li><a href="http://arxiv.org/abs/1006.1231" >[1006.1231] On the Insertion Time of Cuckoo Hashing</a> – “Cuckoo hashing is an efficient technique for creating large hash tables with high space utilization and guaranteed constant access times. There, each item can be placed in a location given by any one out of k different hash functions.”</li>
</ul>adirent.[ch]: Adding d_type to struct dirent on OpenSolarishttps://blueslugs.com/2010/06/13/adirent-ch-adding-d_type-to-struct-dirent-on-opensolaris/Mon, 14 Jun 2010 02:47:47 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/06/13/adirent-ch-adding-d_type-to-struct-dirent-on-opensolaris/<p>An occasional porting problem you may encounter when compiling programs for OpenSolaris is the absence of <code>d_type</code> in the directory entry structure returned by <code>readdir</code>(3C). I hit this issue when experimenting with <a href="http://www.djcbsoftware.nl/code/mu/" >mu</a> as a search solution for my accumulated email.</p>
<p>A trivial example of the failure you might see would be caused by the following program:</p>
<pre><code>#include <sys/types.h>
#include <dirent.h>
#include <err.h>
#include <stdio.h>
int
main(int argc, char *argv[])
{
DIR *d;
struct dirent *e;
if ((d = opendir("/")) == NULL)
err(1, "opendir failed");
for (e = readdir(d); e != NULL; e = readdir(d)) {
if (e->d_type != DT_UNKNOWN)
(void) printf("recognized filetype for '%s'\n",
e->d_name);
}
(void) closedir(d);
return (0);
}
</code></pre>
<p>When we attempt to compile this program with <code>gcc</code>, we get something like</p>
<pre><code>$ gcc a.c
a.c: In function `main':
a.c:16: error: structure has no member named `d_type'
a.c:16: error: `DT_UNKNOWN' undeclared (first use in this function)
a.c:16: error: (Each undeclared identifier is reported only once
a.c:16: error: for each function it appears in.)
</code></pre>
<p>Studio <code>cc</code> will give similar output:</p>
<pre><code>$ /opt/SunStudioExpress/bin/cc a.c
"a.c", line 16: undefined struct/union member: d_type
"a.c", line 16: undefined symbol: DT_UNKNOWN
cc: acomp failed for a.c
</code></pre>
<p>The addition of <code>d_type</code> to <code>struct dirent</code> came first for the BSD Unixes and was later added to Linux. Because it’s not easy to add members to well-known structures and preserve binary compatibility, OpenSolaris and Solaris lack this field, as well as the <code>DT_*</code> constant definitions. (If <code>d_type</code> were to become part of the Unix standards, Solaris would likely have to introduce a second family of <code>opendir()</code>/<code>readdir()</code>/<code>closedir()</code> functions and a second version of the structure, similar to how large files were introduced for 32-bit programs.)</p>
<p>Because we fail at compilation time, our workaround has to modify either the program’s source code or its build environment. (Preloading is too late.) It’s probably possible to combine a few definitions and a shared object that we include via <code>LD_PRELOAD</code> but it seems easier to just provide a C wrapper around <code>readdir</code>(3C) and an alternate <code>struct dirent</code>. We develop this approach in the next section.</p>
<h2 id="dirent-and-readdir"><code>DIRENT</code> and <code>READDIR</code></h2>
<p>The approach we take is</p>
<ol>
<li>Introduce <code>DIRENT</code> and <code>READDIR</code> via <code>adirent.h</code>.</li>
<li>Change the source program such that each call to <code>readdir()</code> is replaced by <code>READDIR()</code> and each use of <code>struct dirent</code> is replaced by <code>DIRENT</code>. In each file so modified, add a <code>#include <adirent.h></code>.</li>
<li>Compile adirent.c via <code>gcc -I. -O2 -c adirent.c</code> or equivalent.</li>
<li>Add <code>adirent.o</code> to the link line for each binary that includes one of the files modified in step 2.</li>
</ol>
<p>If we apply these steps to our example above, we get</p>
<pre><code>#include <sys/types.h>
#include <adirent.h>
#include <err.h>
#include <stdio.h>
int
main(int argc, char *argv[])
{
DIR *d;
DIRENT *e;
if ((d = opendir("/")) == NULL)
err(1, "opendir failed");
for (e = READDIR(d); e != NULL; e = READDIR(d)) {
if (e->d_type != DT_UNKNOWN)
(void) printf("recognized filetype for '%s'\n",
e->d_name);
}
(void) closedir(d);
return (0);
}
</code></pre>
<p>with the result that compilation and execution now work</p>
<pre><code>$ gcc -O2 -I. -c adirent.c
$ gcc -I. a.c adirent.o
$ ./a.out
</code></pre>
<p>This shim function and definitions should be sufficient for most ports around this incompatibility, but there are some additional comments worth making.</p>
<p><em>Performance.</em> Because many programs expect <code>d_type</code> to be one of <code>DT_REG</code> or <code>DT_DIR</code> to save on a <code>stat</code>(2) call, this shim will force those programs into an alleged “slow” path. The actual impact of returning <code>DT_UNKNOWN</code> on every call will be program- and situation-dependent; it didn’t seem to affect my mail indexing.</p>
<p><em>Multithreaded programs.</em> The current implementation does not protect the static structure defined in <code>adirent.c</code>. Programs with multiple threads performing <code>readdir</code>(3C) calls through <code>READDIR()</code> will get unexpected results. It should be relatively straightforward to dynamically allocate one <code>struct adirent</code> for each thread coming through <code>READDIR()</code> for the first time.</p>
<h2 id="downloads">Downloads</h2>
<p>I suppose these should be in a repository on Bitbucket or GitHub. For now, they’re just simple downloads:</p>
<ul>
<li><a href="http://blueslugs.com/~sch/adirent/adirent.c" title="Function implementation">adirent.c</a></li>
<li><a href="http://blueslugs.com/~sch/adirent/adirent.h" title="Header definitions">adirent.h</a></li>
</ul>
<h2 id="acknowledgments">Acknowledgments</h2>
<p>I discussed this problem with <a href="http://blogs.sun.com/dp" >Dan</a>, who in particular noted that <code>DT_UNKNOWN</code> was always a legal return value for <code>d_type</code>. <a href="http://blogs.sun.com/barts" >Bart</a> looked over my shoulder and spied at least one error during the debugging phase.</p>A cruise for World Oceans Dayhttps://blueslugs.com/2010/06/12/a-cruise-for-world-oceans-day/Sun, 13 Jun 2010 05:44:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/06/12/a-cruise-for-world-oceans-day/<p><a href="http://www.flickr.com/photos/schahn/4695196952/" title="photo sharing"><img src="http://farm5.static.flickr.com/4069/4695196952_272cb6d3d8_m.jpg" alt="" style="border: solid 0px #000000;" /></a> <br clear="all" /></p>
<p>We went on the <a href="http://www.sfbaymsi.org/" >Marine Science Institute</a>‘s cruise today, which was in part to celebrate <a href="http://en.wikipedia.org/wiki/World_Oceans_Day" >World Oceans Day 2010</a>. Part of the cruise involved sampling the bay floor and a short trawl with a net. (All animals caught are returned to the bay later in the day.) Ben got to hold a juvenile leopard shark.</p>Bookmarks for 18 May through 2 Junehttps://blueslugs.com/2010/06/02/bookmarks-for-18-may-through-2-june/Wed, 02 Jun 2010 16:03:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/06/02/bookmarks-for-18-may-through-2-june/<ul>
<li><a href="http://arxiv.org/abs/1006.0200" >[1006.0200] The 1958 Pekeris-Accad-WEIZAC Ground-Breaking Collaboration that computed Ground States of Two-Electron Atoms (and its 2010 Redux)</a> – Koutschan and Zeilberger examine and “re-enact” Pekeris’s 1958 calculation of the ground state of the two-electron atom.</li>
<li><a href="http://www.itl.nist.gov/div897/sqg/dads/" >Dictionary of Algorithms and Data Structures</a> – “This is a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions.” Hosted at NIST.</li>
<li><a href="https://www.ohloh.net/p/pkg5" >pkg(5) on ohloh.net</a> – pkg(5)’s repository is now mirrored at genunix.org, so we have ohloh’s code and commit analysis. I’ll never catch any of those guys.</li>
<li><a href="http://developer.yahoo.net/blogs/hadoop/2010/05/towards_enterpriseclass_compat.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+YDNHadoop+%28Hadoop+and+Distributed+Computing+at+Yahoo%21%29&utm_content=Google+Reader" >Towards Enterprise-Class Compatibility for Apache Hadoop (Hadoop and Distributed Computing at Yahoo!)</a> – The Yahoo! Hadoop team has classified the Hadoop interfaces, using a taxonomy derived from the OpenSolaris ARC interface taxonomy.</li>
<li><a href="http://queue.acm.org/detail.cfm?id=1506423" >Eric Schrock, Debugging AJAX in production – ACM Queue</a> – I missed this article last year, but Eric’s written a nice essay with some example code for improving the debuggability of AJAX applications.</li>
</ul>Pipes arrivehttps://blueslugs.com/2010/05/17/pipes-arrive/Tue, 18 May 2010 05:08:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/05/17/pipes-arrive/<p><a href="http://www.flickr.com/photos/schahn/4617344749/" title="Large pipe by schahn, on Flickr"><img src="http://farm4.static.flickr.com/3303/4617344749_ed75f10012_m.jpg" width="240" height="161" alt="Large pipe" /></a> <a href="http://www.flickr.com/photos/schahn/4617345055/" title="Another large pipe by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4026/4617345055_d84a832e62_m.jpg" width="240" height="161" alt="Another large pipe" /></a> <a href="http://www.flickr.com/photos/schahn/4617345371/" title="Still another large pipe by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4040/4617345371_9cf3cc1666_m.jpg" width="240" height="161" alt="Still another large pipe" /></a></p>
<p>This morning, the pipe segments began to arrive for the section of <a href="http://wsipbdpl5peninsula.blogspot.com/" class="broken_link" rel="nofollow">Bay Division Pipeline No. 5</a> nearest us. The pipes are a distinct dark blue-green, with the ends capped with paper.</p>Bookmarks for 3 May through 13 Mayhttps://blueslugs.com/2010/05/13/bookmarks-for-3-may-through-13-may/Thu, 13 May 2010 21:00:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/05/13/bookmarks-for-3-may-through-13-may/<ul>
<li><a href="http://evaluator.vitrue.com/" class="broken_link" rel="nofollow">Social Page Evaluator</a> – “Our solution is designed to provide an assessment of a brand’s Facebook Page value and the effectiveness of its social media efforts.”</li>
<li><a href="http://sfwater.org/Project.cfm/MC_ID/21/MSC_ID/360/MTO_ID/525/PRJ_ID/266" >SFWATER.ORG : BDPL Reliability Upgrade – Pipeline Peninsula</a> – Project status page for the BDPL5 Peninsula project.</li>
<li><a href="http://wsipbdpl5peninsula.blogspot.com/" class="broken_link" rel="nofollow">Water System Improvement Program BDPL5Peninsula</a> – Blog for the Bay Division Pipeline No. 5 Peninsula construction project.</li>
<li><a href="http://www.pcworld.idg.com.au/article/345707/shoot_edit_manage_photos_android/" >Shoot, edit, and manage photos in Android – PC World</a> – A good intro to the Camera and Gallery applications for Android.</li>
<li><a href="http://thestaticvoid.com/post/2010/05/02/a-professional-photo-workflow-for-opensolaris/" >A Professional Photo Workflow for OpenSolaris « Unwinding the Stack</a> – Comments on Argyll, LensFun, and UFRaw, all available on OpenSolaris and all available via pkg(5) from <a href="http://pkg.thestaticvoid.com:10000">http://pkg.thestaticvoid.com:10000</a></li>
</ul>Large machine, trench workhttps://blueslugs.com/2010/05/08/large-machine/Sat, 08 May 2010 19:28:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/05/08/large-machine/<p><a href="http://www.flickr.com/photos/schahn/4589919900/" title="Large machine by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4014/4589919900_6e51ac5baa_m.jpg" alt="" style="border: solid 0px #000000;" /></a> <a href="http://www.flickr.com/photos/schahn/4589960404/" title="Other side by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4024/4589960404_003789f82a_m.jpg" width="240" height="180" alt="Other side" /></a> <br clear="all" /></p>
<p>They assembled this machine this week, but haven’t fired it up. The pipeline runs right behind our property, so I expect we’ll hear the crunching of treads and a large motor (or more than one) fire up early in the morning soon.</p>
<p><a href="http://www.flickr.com/photos/schahn/4589952802/" title="Lined up by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4054/4589952802_bacdc770c4_m.jpg" width="180" height="240" alt="Lined up" /></a> <a href="http://www.flickr.com/photos/schahn/4589961778/" title="Preparing by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4001/4589961778_da8c5c060c_m.jpg" width="180" height="240" alt="Preparing" /></a> <br clear="all" /></p>
<p>When you’re digging a miles-long trench, there’s a clear axis of work. And it looks like they’ll be removing the road surface soon.</p>Reasonable photos from 2009https://blueslugs.com/2010/05/05/reasonable-photos-from-2009/Thu, 06 May 2010 05:56:30 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/05/05/reasonable-photos-from-2009/<p>I’ve started uploading a subset of my photos to Flickr. Here are four from 2009 I’m reasonably happy with, with some commentary.</p>
<p><a href="http://www.flickr.com/photos/schahn/4582828645/" title="Scrub jay by schahn, on Flickr"><img src="http://farm4.static.flickr.com/3301/4582828645_d15252b39d_m.jpg" alt="Scrub jay" width="240" height="161" /></a></p>
<p>We took a short trip north to the coast in the spring, camping a few nights at the Bodega Dunes site in Sonoma Coast SP. This bird was interested in our activities, although not as aggressive as some distant cousins at San Simeon.</p>
<p><a href="http://www.flickr.com/photos/schahn/4583460394/" title="Model Saturn V by schahn, on Flickr"><img src="http://farm4.static.flickr.com/3311/4583460394_61b1d63cbf_m.jpg" alt="Model Saturn V" width="240" height="161" /></a></p>
<p>NASA Ames had an event last year, with much model rocketry on the airfield. This model Saturn V was one of the most impressive rockets fired, and I was happy to catch it as it took off.</p>
<p><a href="http://www.flickr.com/photos/schahn/4582834287/" title="Dock by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4071/4582834287_0b24661f7e_m.jpg" alt="Dock" width="240" height="161" /></a></p>
<p>The dock at the cottage. Weathered, if not gnarly.</p>
<p><a href="http://www.flickr.com/photos/schahn/4582832423/" title="Sign by schahn, on Flickr"><img src="http://farm5.static.flickr.com/4015/4582832423_0ffa546514_m.jpg" alt="Sign" width="240" height="161" /></a></p>
<p>I was amused by the modification to this sign. (O.P.P. is short for Ontario Provincial Police; C.P.O. for Community Policing Office; C-3PO for a particular protocol droid.)</p>Tent interior at Peter Pan 360https://blueslugs.com/2010/05/05/tent-interior-at-peter-pan-360/Thu, 06 May 2010 02:02:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/05/05/tent-interior-at-peter-pan-360/<p><a href="http://www.flickr.com/photos/schahn/4581826219/" title="photo sharing"><img src="http://farm5.static.flickr.com/4054/4581826219_8309c9cd7e_m.jpg" alt="" style="border: solid 0px #000000;" /></a> <br clear="all" /></p>
<p>We went up to San Francisco to see the Peter Pan show at Ferry Park today. The kids were very excited by the human-powered ticking crocodile. There’s a large concession tent for use before the show and at intermission; this shot is of one of its peaks.</p>El Camino beautification scoophttps://blueslugs.com/2010/05/05/el-camino-beautification-scoop/Thu, 06 May 2010 01:57:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/05/05/el-camino-beautification-scoop/<p><a href="http://www.flickr.com/photos/schahn/4582426081/" title="photo sharing"><img style="border: solid 0px #000000;" src="http://farm5.static.flickr.com/4054/4582426081_2876123e9d_m.jpg" alt="" /></a></p>
<p>There are a couple of major construction projects in Redwood City. On El Camino Real, the block between Broadway and Brewster is being updated, as part of the multi-county Grand Boulevard project. This excavator was standing sentry on the Broadway end. Closer to our house, a new high-pressure water line–part of the Hetch Hetchy system that supplies San Francisco–is being installed, which requires its own host of excavators of all sizes.</p>Bookmarks for 17 March through 22 Aprilhttps://blueslugs.com/2010/04/22/bookmarks-for-17-march-through-22-april/Thu, 22 Apr 2010 17:00:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/04/22/bookmarks-for-17-march-through-22-april/<ul>
<li><a href="http://cci.mit.edu/" >MIT Center for Collective Intelligence</a> – “Our basic research question is: How can people and computers be connected so that—collectively—they act more intelligently than any individuals, groups, or computers have ever done before?'”</li>
<li><a href="http://sloanreview.mit.edu/the-magazine/articles/2010/spring/51308/online-reputation-systems-how-to-design-one-that-does-what-you-need/" >Online Reputation Systems: How to Design One That Does What You Need – The Magazine – MIT Sloan Management Review</a> – Specific questions to consider when designing a reputation system.</li>
<li><a href="http://www.dailymail.co.uk/sciencetech/article-1260946/The-stunning-pictures-sleeping-insects-covered-early-morning-dew.html" >The stunning pictures of sleeping insects covered in early morning dew | Mail Online</a> – “These remarkable photographs were taken by physiotherapist Miroslaw Swietek at around 3am in the forest next to his home. / Using a torch, the 37-year-old amateur photographer hunts out the motionless bugs in the darkness before setting up his camera and flash just millimetres from them.”</li>
<li><a href="http://notallmicrosoft.blogspot.com/2010/01/step-by-step-guide-to-install.html" >Life on the OutSide: Step-by-Step guide to Install OpenSolaris with Automated Installer (2009.06)</a> – Andrew provides a worked example of installing a customized system using AI.</li>
<li><a href="http://arxiv.org/abs/arxiv:0902.2920" >[0902.2920] A phenomenological model of protein folding</a> – “We construct a phenomenological effective field theory model that describes the universality class of biologically active single-strand proteins. The model allows both for an explicit construction of native state protein conformations, and a dynamical description of protein folding and unfolding processes.”</li>
</ul>Bookmarks for 8 February through 4 Marchhttps://blueslugs.com/2010/03/04/bookmarks-for-8-february-through-4-march/Thu, 04 Mar 2010 10:01:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/03/04/bookmarks-for-8-february-through-4-march/<ul>
<li><a href="http://wiki.github.com/gregdingle/genetify/" >Home – genetify – GitHub</a> – A/B (vector) testing framework that uses genetic programming to optimize the test outcome.</li>
<li><a href="http://webtypography.net/" >The Elements of Typographic Style Applied to the Web – a practical guide to web typography</a> – “Robert Bringhurst’s book The Elements of Typographic Style is on many a designer’s bookshelf and is considered to be a classic in the field…. In order to allay some of the myths surrounding typography on the web, I have structured this website to step through Bringhurst’s working principles, explaining how to accomplish each using techniques available in HTML and CSS.”</li>
<li><a href="http://urbanearth.gps.caltech.edu/winter-storm/" class="broken_link" rel="nofollow">USGS Multi-Hazards Demonstration Project ARkStorm: West Coast Storm Scenario</a> – “The USGS Multi Hazards Demonstration Project (MHDP) is preparing a new emergency-preparedness scenario, called ARkStorm, to address massive U.S. West Coast storms analogous to those that devastated California in 1861–62. Storms of this magnitude are projected to become more frequent and intense as a result of climate change.” The 1861-1862 storm lasted 45 days and flooded the Sacramento Valley.</li>
<li><a href="http://www.mercurynews.com/peninsula/ci_14453143?nclick_check=1" >Why Menlo Park spoke out against Saltworks project – San Jose Mercury News</a> – Menlo Park’s City Council passed a resolution opposing the 50/50 plan for Saltworks. Interesting fact: Saltworks would be 17 times larger than the last Bay fill project–Oakland International Airport, 1968.</li>
<li><a href="http://blogs.sun.com/danmcd/entry/do_a_pkg_image_update" >End-to-end… and everything in between: Do a “pkg image-update” with multiple zones!!!</a> – Dan shows how to update multiple zones using pkg(5)’s integrated handling for arbitrarily located images and beadm(1M). Dan’s multiple zone configuration is an example of how to use zones to secure an Internet-facing system.</li>
</ul>Bookmarks for 8 January through 25 Januaryhttps://blueslugs.com/2010/01/25/bookmarks-for-8-january-through-25-january/Mon, 25 Jan 2010 20:00:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/01/25/bookmarks-for-8-january-through-25-january/<ul>
<li><a href="http://sphinx.pocoo.org/" >Sphinx Python Document Generator</a> – “Sphinx is a tool that makes it easy to create intelligent and beautiful documentation…”</li>
<li><a href="http://stanlemon.net/projects/jgrowl.html#samples" class="broken_link" rel="nofollow">stanlemon.net : jgrowl</a> – In-browser notification messages.</li>
<li><a href="http://code.drewwilson.com/entry/tiptip-jquery-plugin" class="broken_link" rel="nofollow">TipTip jQuery Plugin | Drewwilson.com</a> – A clever tooltip plugin for jQuery.</li>
<li><a href="http://madcraftshoppe.blogspot.com/2010/01/proof-that-just-about-anything-fits-in.html" >Proof that just about anything fits in a cup.</a> – Amusing art</li>
<li><a href="http://www.williamhathaway.com/wiki/OpenSolaris" >MyWikkaSite: OpenSolaris (List of package repositories)</a> – Bill Hathaway’s tracking pkg(5) package repositories. If you know of more, comment on his wiki.</li>
</ul>Bookmarks for 29 November through 2 Januaryhttps://blueslugs.com/2010/01/05/bookmarks-for-29-november-through-2-january/Wed, 06 Jan 2010 05:53:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2010/01/05/bookmarks-for-29-november-through-2-january/<ul>
<li><a href="http://blog.prashanthellina.com/2008/02/03/create-pdf-thumbnails-using-imagemagick-on-linux/" class="broken_link" rel="nofollow">Create PDF thumbnails using ImageMagick on Linux | Prashanth Ellina</a> – Useful tip if you want to render one or more PDF pages to another format.</li>
<li><a href="http://the.taoofmac.com/space/dev/Python" >Python – Tao of Mac</a> – A commented Python link collection, with a few I’ve not seen before.</li>
<li><a href="http://www.rei.com/expertadvice/articles/winter+camping.html" >How to Go Winter Camping and Backpacking : Expert Advice from REI</a> – Someday, when the kids won’t freeze.</li>
<li><a href="http://en.wikipedia.org/wiki/Istanbul_(Not_Constantinople)" >Istanbul (Not Constantinople) – Wikipedia, the free encyclopedia</a> – Didn’t know that the TMBG version was a cover. A gold record for The Four Lads in 1953.</li>
<li><a href="http://www.danvk.org/dygraphs/" class="broken_link" rel="nofollow">dygraphs JavaScript Visualization Library</a> – Cool interactive JavaScript charting: zoom, error bands, relatively easy to use.</li>
<li><a href="http://www.markjoshi.com/" >Mark Joshi</a> – Associate professor, actuarial studies, Melbourne U.</li>
</ul>Bookmarks for 26 October through 10 Novemberhttps://blueslugs.com/2009/11/10/bookmarks-for-26-october-through-10-november/Tue, 10 Nov 2009 20:01:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/11/10/bookmarks-for-26-october-through-10-november/<ul>
<li><a href="http://alexeremin.blogspot.com/2009/11/installing-opensolaris-on-sparc-using.html" >Minimal Solaris: Installing OpenSolaris on a Sparc using LiveCD</a> – Alexander’s extended his earlier SPARC LiveCD to have a basic installer.</li>
<li><a href="http://alexeremin.blogspot.com/2009/11/opensolaris-sparc-snv125-livecd.html" >Minimal Solaris: OpenSolaris Sparc snv125 LiveCD</a> – Alexander, creator of MiLaX, has made a SPARC LiveCD, based on Build 125.</li>
<li><a href="http://blog.swatteksystems.com/whats-that/archive/2009/10/20/sxce-to-opensolaris-migration-on-sparc" >SXCE OpenSolaris Migration Sparc</a> – Steven Acres’s notes on a SPARC migration from SXCE to OpenSolaris.</li>
<li><a href="http://bitbucket.org/miguelventura/after_the_deadline/wiki/Home" >miguelventura / after_the_deadline / wiki / Home — bitbucket.org</a> – A Python wrapper for After the Deadline’s spelling/grammar/style checking API.</li>
</ul>Bookmarks for 21 October through 24 Octoberhttps://blueslugs.com/2009/10/24/bookmarks-for-21-october-through-24-october/Sat, 24 Oct 2009 23:00:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/10/24/bookmarks-for-21-october-through-24-october/<ul>
<li><a href="http://www.foreignaffairs.com/features/readinglists/what-to-read-on-north-korean-politics" >What to Read on North Korean Politics | Foreign Affairs</a> – Reading list from Nicholas Eberstadt (AEI and National Bureau of Asian Research).</li>
<li><a href="http://bottle.paws.de/" >Start – Bottle Web Framework</a> – “Bottle is a fast and simple WSGI-framework for the Python Programming Language. It offers request dispatching with url parameter support (routes), templates, key/value databases, a build-in HTTP server and adapters for many third party WSGI/HTTP-server and template engines. All in a single file and with no dependencies other than the Python standard library.”</li>
<li><a href="http://www.cuddletech.com/blog/pivot/entry.php?id=1084#comm" >The Blog of Ben Rockwood: Solaris Extended Accounting in the Real World</a> – Ben expands his coverage of Solaris extended accounting. In particular, try out “exacttly”, his new process accounting reporting tool.</li>
<li><a href="http://www.codestyle.org/servlets/FontStack" class="broken_link" rel="nofollow">Code Style: Font stack builder</a> – A useful web application to build CSS font stacks. As you select fonts, coverage for Windows, MacOS, and Linux is calculated based on recent surveys.</li>
<li><a href="http://blogs.sun.com/alanbur/entry/upgrading_from_nevada_to_opensolaris" >Upgrading from Nevada to OpenSolaris the easy way</a> – Alan’s worked out a simple way to add OpenSolaris to a system running recent Nevada bits. Useful as we approach the upcoming transition.</li>
</ul>Bookmarks for 11 October through 20 Octoberhttps://blueslugs.com/2009/10/20/bookmarks-for-11-october-through-20-october/Tue, 20 Oct 2009 18:00:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/10/20/bookmarks-for-11-october-through-20-october/<ul>
<li><a href="http://defect.opensolaris.org/bz/show_bug.cgi?id=6186" class="broken_link" rel="nofollow">Bug 6186 – OpenSolaris package renaming</a> – Rich has been working through every package in OpenSolaris, proposing friendlier and guessable names.</li>
<li><a href="http://wiki.genunix.org/wiki/index.php/OGB_2009/009_ReleaseNotes" >OGB 2009/009 ReleaseNotes – Genunix</a> – OGB 2009/009 are the release notes for the proposed OpenSolaris constitution. The OGB’s using co-ment.net for interactive comment handling on the draft as well.</li>
<li><a href="http://code.google.com/p/manifold/" >manifold – Project Hosting on Google Code</a> – Manifold, an smf(5) manifest creation assistant, has a project page on Google Gode.</li>
<li><a href="http://chrismiles.livejournal.com/26279.html" >chrismiles: Quickly create SMF service manifests for Solaris using Manifold</a> – Chris has written a Python-based tool that guides one through the creation of a new service manifest for smf(5): answer the questions, get a manifest.</li>
<li><a href="http://blogs.sun.com/lianep/entry/building_an_on_ips_repository" >building an ON IPS repository – Liane Praza’s Weblog</a> – Liane comments on her work with Mark to convert the OS/Net consolidation (“ON”) to build image packages natively, rather than through our importer magic.</li>
</ul>Bookmarks for 2 October through 5 Octoberhttps://blueslugs.com/2009/10/05/bookmarks-for-2-october-through-5-october/Mon, 05 Oct 2009 20:01:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/10/05/bookmarks-for-2-october-through-5-october/<ul>
<li><a href="http://jquery.com/" >jQuery: The Write Less, Do More, JavaScript Library</a> – “jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.”</li>
<li><a href="http://designintellection.com/an-introduction-to-processingjs/" >An Introduction to Processing.js | Design Intellection</a> – First article in a planned six part tutorial in Processing.js.</li>
<li><a href="http://processing.org/" >Processing 1.0</a> – “Processing is an open source programming language and environment for people who want to program images, animation, and interactions.” The original language.</li>
<li><a href="http://processingjs.org/" >Processing.js</a> – “Processing.js is an open programming language for people who want to program images, animation, and interactions for the web without using Flash or Java applets.”</li>
<li><a href="http://developer.yahoo.net/blog/archives/2009/10/a_engineers_gui.html" >An Engineer’s Guide to Bandwidth (Yahoo! Developer Network Blog)</a> – Useful article, with outbound links, about the underlying behaviors behind “bandwidth”. Example of throttling, packet loss using ipfw on BSD/MacOS X.</li>
</ul>Bookmarks for 25 Septemberhttps://blueslugs.com/2009/09/26/bookmarks-for-25-september/Sat, 26 Sep 2009 09:23:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/09/26/bookmarks-for-25-september/<ul>
<li><a href="http://piwik.org/" >Piwik # Open source web analytics</a> – “Piwik is a downloadable, open source (GPL licensed) web analytics software program. It provides you with detailed reports on your website visitors: the search engines and keywords they used, the language they speak, your popular pages… and so much more.”</li>
<li><a href="http://www.facebook.com/pages/Scribe/84758500701" >Scribe, by Facebook</a> – “Scribe is a server for aggregating log data streamed in real time from a large number of servers. It is designed to be scalable, extensible without client-side modification, and robust to failure of the network or any specific machine.”</li>
</ul>2010.next: a better netbook for meetingshttps://blueslugs.com/2009/09/24/2010-next-a-better-netbook-for-meetings/Thu, 24 Sep 2009 23:31:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/09/24/2010-next-a-better-netbook-for-meetings/<p>I recently borrowed one of the 10″ netbooks that came out this year, and tested Build 123 on it. Here’s a shot of Toshiba’s sleek black NB205 displaying a clean Device Driver Utility run.</p>
<p><img src="http://mediacast.sun.com/users/schahn/media/p-nb205.png" alt="nb205" title="Toshiba NB205-N210"></p>
<p>The NB205 has a keyboard on par with the r500 I use regularly—large for a netbook—and has a superior trackpad. Suspend-resume is reliable; <code>compiz</code> runs well; the extra vertical inch means fewer application compromises over last year’s netbook crop. (For instance, rather than rearranging panel to the sides, use of <code>gnome-panel</code>‘s auto-hide feature is enough to let applications run well when maximized.)</p>
<p>If I don’t have to give it back, it’ll be my new <a href="http://blueslugs.com/entry/2009_06_a_netbook_for" >“netbook for meetings”</a>.</p>
<p class="note">
Netbook styling credit to <a href="http://blogs.sun.com/dep/" >Dave Powell</a>.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/netbook" rel="tag nofollow" class="broken_link">netbook</a> <a href="http://www.technorati.com/tag/Atom" rel="tag nofollow" class="broken_link">Atom</a> <a href="http://www.technorati.com/tag/Toshiba" rel="tag nofollow" class="broken_link">Toshiba</a> ]
</p>verexec(1): A simple execute-most-recent-version utilityhttps://blueslugs.com/2009/08/21/verexec1-a-simple-execute-most-recent-version-utility/Sat, 22 Aug 2009 00:01:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/08/21/verexec1-a-simple-execute-most-recent-version-utility/<p>We’ve published three of the approximately-six-monthly distribution releases now, and we’re starting to refine <tt class="docutils
literal"><span class="pre">pkg</span></tt>(5)’s capabilities to handle automatically an ever larger set of configuration scenarios. (Read: “edge cases”.) <a href="http://blogs.sun.com/barts" >Bart</a> implemented actuators in 2008.11, and that let us handle any resource that could be configured or reconfigured via an <tt class="docutils
literal"><span class="pre">smf</span></tt>(5) service instance. In future releases, we’ll build out the set of instances that handle standard configuration.</p>
<p>In this post, I’d like to talk about a tool—<tt class="docutils
literal"><span class="pre">verexec</span></tt>(1)—to assist with executable version selection. One of the common questions that maintainers of the various language platform packages is “how can I make sure that <tt class="docutils literal"><span
class="pre">/usr/bin/[language]</span></tt> points to the latest version of the package?”. Attempts to satisfy this goal have led to some of the largest <tt class="docutils literal"><span
class="pre">preremove</span></tt> and <tt class="docutils literal"><span
class="pre">postinstall</span></tt> script pairs in historical Solaris.</p>
<p class="note">
Largest, and most difficult to get completely correct.
</p>
<p>We can make this problem much simpler—and scripting free—if we accept the minimal performance penalty of a runtime-based decision.</p>
<div class="section" id="basic-function">
<h2>
Basic function
</h2>
<p>
<tt class="docutils literal"><span class="pre">verexec</span></tt>(1) works in a similar manner to <tt class="docutils literal"><span
class="pre">isaexec</span></tt>(1), in that dispatch is based on the target command being hardlinked to <tt class="docutils literal"><span
class="pre">verexec</span></tt>(1), which then, based on the name of the target command and additional information, will in turn invoke the correct version of the target command.
</p>
<p>
Like most <tt
class="docutils literal"><span class="pre">pkg</span></tt>(5)-driven modifications, we want to make the identification of the newest version based on the presence or absence of a filesystem object delivered into a predetermined location. For <tt class="docutils literal"><span
class="pre">verexec</span></tt>(1), one delivers a symbolic link in <tt
class="docutils literal"><span
class="pre">/etc/verexec.d/[target]</span></tt>, pointing to the appropriate executable. For example, for Perl 5, <tt class="docutils
literal"><span class="pre">/usr/bin/perl</span></tt> is delivered as a hardlink to <tt class="docutils literal"><span
class="pre">/usr/bin/verexec</span></tt>, in <tt class="docutils
literal"><span class="pre">SUNWpl5</span></tt>. [TK new name?] The Perl 5.8.4 package would deliver the symbolic link, <tt class="docutils
literal"><span class="pre">/etc/verexec.d/perl/5.8.4</span></tt>, pointing to <tt class="docutils literal"><span
class="pre">/usr/perl5/5.8.4/bin/perl</span></tt>. (The version ordering matches that of <tt class="docutils literal"><span
class="pre">pkg</span></tt>(5).)
</p>
<p>
When <tt class="docutils literal"><span
class="pre">/usr/bin/perl</span></tt> is invoked via <tt
class="docutils literal"><span class="pre">exec</span></tt>(2), <tt
class="docutils literal"><span class="pre">verexec</span></tt>(1) would open—subject to various override mechanisms—<tt class="docutils
literal"><span class="pre">/etc/verexec.d/perl</span></tt> and search through the links, looking for the maximal version. The link is then read, and that program is executed, with the arguments passed to the original invocation.
</p>
<p>
This approach handles directly the delivery of multiple versions, via separate packages. If we were delivering two versions, then removal or installation of either link would change the default version. For more than two versions, the default version only changes if the currently highest version is changed. If we deliver no versions, then <tt
class="docutils literal"><span class="pre">verexec</span></tt>(1) displays an informative error message.
</p>
</div>
<div class="section" id="refinements-and-commentary">
<h2>
Refinements and commentary
</h2>
<p>
<em>Overrides.</em> Since, at some sites, <tt class="docutils
literal"><span class="pre">verexec</span></tt>(1) may be useful to provide access to a variety of local command versions, we provide a number of environment variable-based override mechanisms. First, we allow identification of an alternative symbolic link directory to <tt
class="docutils literal"><span class="pre">/etc/verexec.d</span></tt> via the <tt class="docutils literal"><span
class="pre">VEREXEC_ALTDIR</span></tt> variable. Second, we allow per-command interception via the <tt class="docutils literal"><span
class="pre">VEREXEC_[command]</span></tt> pattern. Thus, in our Perl example, I could make <tt class="docutils literal"><span
class="pre">/usr/bin/perl</span></tt> point to my local Perl installation via:
</p>
<pre class="literal-block">
export VEREXEC_perl=/home/sch/bin/$(uname -p)/perl
</pre>
<p>
instead of the system installation.
</p>
<p>
<em>Native ISA selection.</em> We could combine the function of <tt
class="docutils literal"><span class="pre">isaexec</span></tt>(1) with <tt class="docutils literal"><span class="pre">verexec</span></tt>(1), by allowing links to have the pattern [version]-[bits], as returned by <tt class="docutils literal"><span class="pre">isainfo</span> <span
class="pre">-n</span></tt>.
</p>
<p>
<em>Search impact.</em> Using a technique like this impacts the search functionality, in that a search request for <tt class="docutils
literal"><span class="pre">/usr/bin/perl</span></tt> in our example, will actually return the package delivering the <tt class="docutils
literal"><span class="pre">verexec</span></tt>(1) link, and not an actual Perl interpreter. We can address this somewhat by ensuring that (a) the actual Perl interpreter is delivered in a package with "perl" as a basename, and (b) the link-delivering package is named and documented as a supporting package.
</p>
<p>
<em>Delivery, while delaying change in default.</em> Since this mechanism is so much simpler than the scripting previously required, it means that we should reexamine the transition to a new version of a significant language platform. In the past, because correct packaging was a significant amount of the work involved in integrating a new version, we’ve generally introduced a new version <em>and</em> made that version the default in a single integration. Since we don’t want to introduce unnecessary risk, we have generally lagged integrating the latest version of these interpreters. With <tt class="docutils
literal"><span class="pre">verexec</span></tt>(1) and <tt
class="docutils literal"><span class="pre">pkg</span></tt>(5) in place, we might pursue an alternative, of introducing the new version early, and then changing the default in a subsequent, small integration later in the release.
</p>
<p>
<em>Performance.</em> If we find that the overhead of the additional exec(2)—one for <tt class="docutils literal"><span
class="pre">verexec</span></tt>(1) and one for the link target—is too high, there are a number of performance optimizations. One approach would be to use <tt class="docutils literal"><span
class="pre">verexec</span></tt>(1) to send a message to a privileged daemon, which would loopback mount the appropriately versioned executable at the <tt class="docutils literal"><span
class="pre">verexec</span></tt>(1) location. Any loopback mount-based technique makes a trade-off: more efficient execution for more complex handling of updates and deletions, which would require the daemon (or privileged command or service) to inspect the existing loopback mounts and evaluate them for their continuing correctness.
</p>
<p>
I’ve a refinement-lacking prototype of <tt class="docutils
literal"><span class="pre">verexec</span></tt>(1) available for <a href="http://cr.opensolaris.org/~sch/on-verexec/" class="broken_link" rel="nofollow">review</a>; we’re discussing it further at <a class="reference external"
href="mailto:pkg-discuss@opensolaris.org">pkg-discuss@opensolaris.org</a>.
</p>
<p class='tag'>
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/SFW" rel="tag nofollow" class="broken_link">SFW</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>
</div>MPK17: Outcome of a long discussion?https://blueslugs.com/2009/07/07/mpk17-outcome-of-a-long-discussion/Tue, 07 Jul 2009 18:15:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/07/07/mpk17-outcome-of-a-long-discussion/<p>The coffee stations in MPK17 are popular choices for technical discussions. Some go longer than others, and occasionally result in byproducts. I wouldn’t want to hazard a guess about how long a discussion resulted in this byproduct, which popped up sometime at the end of last week:</p>
<p><img src="http://mediacast.sun.com/users/schahn/media/p-cups-small.jpg" alt="Many stacked disposable cups" title="A large stack of cups"></p>
<p class="note">
I wonder if the original discussion ever resolved…
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> MPK17 ]
</p>A few hours at Maker Faire 2009https://blueslugs.com/2009/05/30/a-few-hours-at-maker-faire-2009/Sun, 31 May 2009 04:08:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/05/30/a-few-hours-at-maker-faire-2009/<p>We got to this year’s Maker Faire fairly early, and saw the many cool things people have built. (It was our first Maker Faire, and we underestimated the event’s popularity.)</p>
<p>Benjamin, who’s recently become an enthusiastic chess player, got to face off against the <a href="http://www.chessplayingrobot.com" >chess playing robot</a>: <img src="https://blueslugs.com/2009/05/p-maker-chess-200905.jpg" alt="B Hahn v. chessplayingrobot.com, Maker Faire 2009, San Mateo, CA, USA" title="B Hahn v. chessplayingrobot.com, Maker Faire 2009, San Mateo, CA, USA" width="480" height="384" class="alignnone size-full wp-image-31162" /></p>
<p>Ben attempted a Scholar’s Mate, was stymied, and then had to go on defense; I suspect he’s been winning at school with that one.</p>
<p>Nathaniel and I were pressed against the barriers to see the lightning demonstration: <img src="https://blueslugs.com/2009/05/p-maker-lightning-2009051.jpg" alt="Lightning demonstration at the Maker Faire 2009" title="Lightning demonstration at the Maker Faire 2009" width="480" height="321" class="alignnone size-full wp-image-31163" /></p>
<p>Cool.</p>
<p class="note">
At an event where most exhibitors have made or built something physical, I must comment that a purely virtual or computational exhibit underwhelms.
</p>Statistical Data Mining Tutorialshttps://blueslugs.com/2009/05/14/statistical-data-mining-tutorials/Thu, 14 May 2009 16:41:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/05/14/statistical-data-mining-tutorials/<p class="link">
<a href="http://www.autonlab.org/tutorials/" >Statistical Data Mining Tutorials</a>
</p>
<p class="extended">
Andrew Moore's "set of tutorials on many aspects of statistical data mining, including the foundations of probability, the foundations of statistical data analysis, and most of the classic machine learning and data mining algorithms."
</p>Swish-e :: Home Pagehttps://blueslugs.com/2009/05/12/swish-e-home-page/Tue, 12 May 2009 17:40:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/05/12/swish-e-home-page/<p class="link">
<a href="http://swish-e.org/" class="broken_link" rel="nofollow">Swish-e :: Home Page</a>
</p>
<p class="extended">
"Simple Web Indexing System for Humans – Enhanced". Comparable to htdig.
</p>Hadoop Sorts a Petabyte in 16.25 Hours and a Terabyte in 62 Secondshttps://blueslugs.com/2009/05/11/hadoop-sorts-a-petabyte-in-1625-hours-and-a-terabyte-in-62-seconds/Tue, 12 May 2009 04:08:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/05/11/hadoop-sorts-a-petabyte-in-1625-hours-and-a-terabyte-in-62-seconds/<p class="link">
<a href="http://developer.yahoo.net/blogs/hadoop/2009/05/hadoop_sorts_a_petabyte_in_162.html" >Hadoop Sorts a Petabyte in 16.25 Hours and a Terabyte in 62 Seconds</a>
</p>
<p class="extended">
Recent results from Yahoo!'s sorting benchmark run.
</p>Running Hadoop On Ubuntu Linux (Multi-Node Cluster) - Michael G. Nollhttps://blueslugs.com/2009/05/05/running-hadoop-on-ubuntu-linux-multi-node-cluster-michael-g-noll/Wed, 06 May 2009 04:31:55 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/05/05/running-hadoop-on-ubuntu-linux-multi-node-cluster-michael-g-noll/<p class="link">
<a href="http://www.michael-noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_(Multi-Node_Cluster)" class="broken_link" rel="nofollow">Running Hadoop On Ubuntu Linux (Multi-Node Cluster) – Michael G. Noll</a>
</p>
<p class="extended">
A useful set of instructions on Hadoop setup and issues.
</p>jspdf - Google Codehttps://blueslugs.com/2009/04/22/jspdf-google-code/Thu, 23 Apr 2009 03:59:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/04/22/jspdf-google-code/<p class="link">
<a href="http://code.google.com/p/jspdf/" >jspdf – Google Code</a>
</p>
<p class="extended">
"jsPDF generates PDF documents using nothing but Javascript." Neat.
</p>2009.06: A netbook for meetingshttps://blueslugs.com/2009/04/21/2009-06-a-netbook-for-meetings/Wed, 22 Apr 2009 01:20:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/04/21/2009-06-a-netbook-for-meetings/<p class="note">
It’s been a busy few months, but things are clearing up now.
</p>
<p>The past few weeks, I’ve been using an <a href="http://en.wikipedia.org/wiki/Acer_Aspire_One" alt="Acer
Aspire One (Wikipedia)" title="Acer Aspire One (Wikipedia)">Acer Aspire One</a> for coverage when my trusty <a href="http://en.wikipedia.org/wiki/Toshiba_Port%C3%A9g%C3%A9" alt="Toshiba Portege (Wikipedia)" title="Toshiba Portege
(Wikipedia)">Toshiba r500</a> is recharging. It’s my computer for meetings, I suppose. The Aspire One is a great little netbook, and 2009.06 should recognize every device on the system. Here’s an action shot of this Atom-based system on my file cabinet:</p>
<p><img src="http://mediacast.sun.com/users/schahn/media/p-acer-aspire-one-ddu.jpg" alt="Acer Aspire One action shot" title="Acer Aspire One action shot"></p>
<p>The window shown in the display is the Device Detection Utility—the absence of red bars in that list indicates that every hardware component on the system is known to OpenSolaris. The main limitations of a standard single core, dual thread <strike>(but dual-core)</strike> Atom netbook like this are vertical screen real estate and memory usage. In the screen shot, I’ve moved the GNOME panels to the left and right sides of the display; I’ve also disabled unneeded services by using <code>svcadm</code>(1M).</p>
<p>If you’ve an Aspire One, or a similar netbook, you might want to give 2009.06 a spin. The <code>usbcopy</code> utility, from the <code>SUNWdistro-const</code> package, can be used to prepare a bootable USB stick to use for the installation.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/netbook" rel="tag nofollow" class="broken_link">netbook</a> <a href="http://www.technorati.com/tag/Atom" rel="tag nofollow" class="broken_link">Atom</a> ]
</p>OpenSolaris Live USB Creator (Windows/.NET) ?(PID0.ORG DevZone)?https://blueslugs.com/2009/04/10/opensolaris-live-usb-creator-windowsnet-pid0org-devzone/Fri, 10 Apr 2009 18:06:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/04/10/opensolaris-live-usb-creator-windowsnet-pid0org-devzone/<p class="link">
<a href="http://devzone.sites.pid0.org/OpenSolaris/opensolaris-liveusb-creator" >OpenSolaris Live USB Creator (Windows/.NET) ?(PID0.ORG DevZone)?</a>
</p>
<p class="extended">
Hiroshi's made a Windows .NET utility that lets you burn the OpenSolaris USB image to a stick without needing to run OpenSolaris.
</p>Simplicity is the ultimate sophistication.: Michal Pryc's Webloghttps://blueslugs.com/2009/03/31/simplicity-is-the-ultimate-sophistication-michal-prycs-weblog/Tue, 31 Mar 2009 17:10:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/03/31/simplicity-is-the-ultimate-sophistication-michal-prycs-weblog/<p class="link">
<a href="http://blogs.sun.com/migi/entry/simplicity_is_the_ultimate_sophistication" >“Simplicity is the ultimate sophistication.” : Michal Pryc’s Weblog</a>
</p>
<p class="extended">
Michal gives another one-click example: he's made a p5i file with the base dependencies for building OpenSolaris's GNOME consolidation.
</p>PackageManager getting Flash : John Rice's Webloghttps://blueslugs.com/2009/03/31/packagemanager-getting-flash-john-rices-weblog/Tue, 31 Mar 2009 17:07:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/03/31/packagemanager-getting-flash-john-rices-weblog/<p class="link">
<a href="http://blogs.sun.com/jmr/entry/packagemanager_getting_flash_for_2009" >PackageManager getting Flash : John Rice’s Weblog</a>
</p>
<p class="extended">
John gives some screenshots from our one-click install/add publisher support. Most of the sun.com properties now support .p5i files and their application/vnd.pkg5.info MIME type now, so if you want to share packages–or give an initial configuration for some examples–your users are only a click away.
</p>DIY: Home NAS Box with OpenSolaris and ZFS (English version) - Zhong's webloghttps://blueslugs.com/2009/03/23/diy-home-nas-box-with-opensolaris-and-zfs-english-version-zhongs-weblog/Mon, 23 Mar 2009 16:48:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/03/23/diy-home-nas-box-with-opensolaris-and-zfs-english-version-zhongs-weblog/<p class="link">
<a href="http://blogs.sun.com/mebius/entry/diy_home_nas_box_with2" >DIY: Home NAS Box with OpenSolaris and ZFS (English version) – Zhong’s weblog</a>
</p>
<p class="extended">
Zhong builds an attractive home NAS box with 2008.11 and a dual-core Atom–the 330.
</p>What's in a name? That which we call an Authority... - Transitive'https://blueslugs.com/2009/03/11/whats-in-a-name-that-which-we-call-an-authority-transitive/Wed, 11 Mar 2009 16:32:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/03/11/whats-in-a-name-that-which-we-call-an-authority-transitive/<p class="link">
<a href="http://blogs.sun.com/srw/entry/what_s_in_a_name" >What’s in a name? That which we call an Authority… – Transitive</a>
</p>
<p class="extended">
Shawn explains why we prefer publisher to authority as a term for a producer and distributor of packages.
</p>Kindle Formattinghttps://blueslugs.com/2009/03/01/kindle-formatting/Sun, 01 Mar 2009 22:02:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/03/01/kindle-formatting/<p class="link">
<a href="http://kindleformatting.com/" >Kindle Formatting</a>
</p>
<p class="extended">
Information and blog on formatting books for the Amazon Kindle. The author runs a consulting service; site contains his tips, etc.
</p>Whooshhttps://blueslugs.com/2009/02/12/whoosh/Thu, 12 Feb 2009 17:59:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/02/12/whoosh/<p class="link">
<a href="http://whoosh.ca/" class="broken_link" rel="nofollow">Whoosh</a>
</p>
<p class="extended">
Whoosh: a fast pure-Python search engine. "Whoosh is as fast or faster at indexing as other Python search libraries that wrap C or Java libraries (e.g. PyLucene?, Xappy), and not that much slower at searching."
</p>Continuous Deployment « Timothy Fitzhttps://blueslugs.com/2009/02/10/continuous-deployment-timothy-fitz/Wed, 11 Feb 2009 07:55:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/02/10/continuous-deployment-timothy-fitz/<p class="link">
<a href="http://timothyfitz.wordpress.com/2009/02/08/continuous-deployment/" >Continuous Deployment « Timothy Fitz</a>
</p>
<p class="extended">
The original post proposing continuous deployment; comments interesting, too.
</p>Continuous Deployment at IMVU: Doing the impossible fifty times a day. « Timothy Fitzhttps://blueslugs.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day-timothy-fitz/Wed, 11 Feb 2009 05:58:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day-timothy-fitz/<p class="link">
<a href="http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/" >Continuous Deployment at IMVU: Doing the impossible fifty times a day. « Timothy Fitz</a>
</p>
<p class="extended">
IMVU deploys to production after passing its continuous integration tests.
</p>Project Voldemorthttps://blueslugs.com/2009/01/15/project-voldemort/Thu, 15 Jan 2009 20:53:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/01/15/project-voldemort/<p class="link">
<a href="http://project-voldemort.com/" class="broken_link" rel="nofollow">Project Voldemort</a>
</p>
<p class="extended">
"Voldemort is a distributed key-value storage system." Deeper down, we find: "Replication within the cluster handles the case of data loss on a single server, but bugs can still lead to global data corruption or data pollution. To handle this scenario the best option is ZFS filesystem snapshots."
</p>Mounting Amazon S3 buckets as a file system on OpenSolaris : Angelo's Soapboxhttps://blueslugs.com/2009/01/14/mounting-amazon-s3-buckets-as-a-file-system-on-opensolaris-angelos-soapbox/Wed, 14 Jan 2009 18:24:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/01/14/mounting-amazon-s3-buckets-as-a-file-system-on-opensolaris-angelos-soapbox/<p class="link">
<a href="http://blogs.sun.com/angelo/entry/mounting_amazon_s3_buckets_as" >Mounting Amazon S3 buckets as a file system on OpenSolaris : Angelo’s Soapbox</a>
</p>
<p class="extended">
Using FUSE and s3fs on 2008.11 to access Amazon S3 storage with filesystem operations.
</p>Build your own Drobo-Replacement based on ZFS « Agile Developer, Berlin, Germanyhttps://blueslugs.com/2009/01/14/build-your-own-drobo-replacement-based-on-zfs-agile-developer-berlin-germany/Wed, 14 Jan 2009 17:47:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2009/01/14/build-your-own-drobo-replacement-based-on-zfs-agile-developer-berlin-germany/<p class="link">
<a href="http://pegolon.wordpress.com/2009/01/13/build-your-own-drobo-replacement-based-on-zfs/" >Build your own Drobo-Replacement based on ZFS « Agile Developer, Berlin, Germany</a>
</p>
<p class="extended">
Exploring ZFS on 2008.11 as a "dream backup service". Uses VirtualBox to test various configuration options.
</p>Linux.com :: How to configure a scanner's buttons on Linuxhttps://blueslugs.com/2008/12/25/linuxcom-how-to-configure-a-scanners-buttons-on-linux/Thu, 25 Dec 2008 22:39:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/25/linuxcom-how-to-configure-a-scanners-buttons-on-linux/<p class="link">
<a href="http://www.linux.com/feature/59138">Linux.com :: How to configure a scanner's buttons on Linux</a>
</p>
<p class="extended">
The secret is the libusb-based application, scanbuttond. Useful invocations of SANE utilities without xsane. scanbuttond works fine on OpenSolaris 2008.11.
</p>2008.11: terminator is my favourite applicationhttps://blueslugs.com/2008/12/23/2008-11-terminator-is-my-favourite-application/Tue, 23 Dec 2008 19:49:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/23/2008-11-terminator-is-my-favourite-application/<p>There’s a lot of new applications in 2008.11—<code>cheese</code> is useful for testing your USB webcam and making self-portraits for avatars and profile pictures and I’m very intrigued by <code>gobby</code>—but I already have my favourite: <code>terminator</code>. Here’s a scaled screenshot:</p>
<p><a href="http://mediacast.sun.com/users/schahn/media/p-terminator-full-20081223.png" > <img src="http://mediacast.sun.com/users/schahn/media/p-terminator-20081223.png" border="0" alt="terminator thumbnail" /> </a></p>
<p>I used to use <code>ion</code> as my window manager, so getting some tiling back is great. A side effect of those days is that I expect <code>F2</code> to start a terminal, which is easy with a little <code>gconf</code> editing:</p>
<pre>$ gconftool-2 -s /apps/metacity/global_keybindings/run_command_1 \
-t string 'F2'
$ gconftool-2 -s /apps/metacity/keybinding_commands/command_1 \
-t string '/usr/bin/terminator'
</pre>
<p>There’s a little <a href="http://defect.opensolaris.org/bz/show_bug.cgi?id=4481" class="broken_link" rel="nofollow">bug in handling the title bar</a> I’d like to see fixed, but I can ignore that in return for greater terminal density.</p>
<p><strong>Update:</strong> <a href="http://www.lildude.co.uk/opensolaris-gets-terminator/" >Col likes it, too.</a></p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/GNOME" rel="tag nofollow" class="broken_link">GNOME</a> <a href="http://www.technorati.com/tag/terminator" rel="tag nofollow" class="broken_link">terminator</a> ]
</p>OpenDX Home Pagehttps://blueslugs.com/2008/12/21/opendx-home-page/Sun, 21 Dec 2008 17:49:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/21/opendx-home-page/<p class="link">
<a href="http://www.opendx.org/index2.php" >OpenDX Home Page</a>
</p>
<p class="extended">
IBM's Data Explorer (which I used on an SGI workstation years ago) is now an open source project.
</p>Bin-Blog: Subscribing a feed in Google Reader using Firefoxhttps://blueslugs.com/2008/12/15/bin-blog-subscribing-a-feed-in-google-reader-using-firefox/Tue, 16 Dec 2008 05:18:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/15/bin-blog-subscribing-a-feed-in-google-reader-using-firefox/<p class="link">
<a href="http://binnyva.blogspot.com/2007/02/subscribing-feed-in-google-reader-using.html" >Bin-Blog: Subscribing a feed in Google Reader using Firefox</a>
</p>
<p class="extended">
Explains the configuration for content handling, such that you can adjust Firefox to subscribe a feed in Google Reader through a direct link.
</p>On packaginghttps://blueslugs.com/2008/12/14/on-packaging/Sun, 14 Dec 2008 18:29:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/14/on-packaging/<p class="link">
<a href="http://www.b-list.org/weblog/2008/dec/14/packaging/" >On packaging</a>
</p>
<p class="extended">
Essay on the impacts of some of setuptools on distributions. I've been worrying about some of these aspects, too; eggs don't seem right for distributors, even if they're convenient for users.
</p>We'll seehttps://blueslugs.com/2008/12/11/well-see/Fri, 12 Dec 2008 03:57:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/11/well-see/<figure id="attachment_10587" style="width: 343px" class="wp-caption alignnone"><a href="https://blueslugs.com/2008/12/p-snow-forecast-20081211.png"><img src="https://blueslugs.com/2008/12/p-snow-forecast-20081211.png" alt="Two days' worth? Here?" title="p-snow-forecast-20081211.png" width="343" height="215" class="size-full wp-image-10587" /></a><figcaption class="wp-caption-text">Two days' worth? Here?</figcaption></figure>
<p>I think we’ve had two evenings with short snow—without accumulation—and one significant hailstorm—with accumulation—in eleven years here. Intriguing.</p>2008.11: A rounduphttps://blueslugs.com/2008/12/10/2008-11-a-roundup/Thu, 11 Dec 2008 06:18:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/10/2008-11-a-roundup/<p>With the launch over, I took a few minutes to read through today’s blog entries, and pulled out a list of the either technical or personally significant entries. If you’re looking for the highlights, <a href="http://blogs.sun.com/calum/entry/opensolaris_2008_11">Calum’s overview</a> seems to be a great place to start. He’s got links to the best summaries and screencasts.</p>
<ul>
<li>First, if you’re running 2008.05 and considering upgrading—recommended strongly—please watch
<a href="http://blogs.sun.com/weber/entry/upgrade_from_opensolaris_2008_05" > Markus’s screencast</a>. There are one or two tricky steps to pay attention to. (We got caught offguard by some misinteractions between GRUB, ZFS, and early startup; won’t happen again.)</li>
<li><a href="http://blogs.sun.com/erwann/entry/time_slider_screencast" >Erwann’s screencast</a> is a great introduction to Time Slider, and I’m pretty confident no turkeys were harmed during filming.</li>
<li></li>
</ul>
<p><a href="http://blogs.sun.com/pschow/entry/opensolaris_2008_11_and_512mb" > Peter</a> has screen captures of <code>top</code>(1) on a couple of older laptops, including one with 447 MiB available to the OS. Dave and the Install team worked hard to keep 512 MiB systems booting on the release; here’s evidence.</p>
<ul>
<li><a href="http://blogs.sun.com/whowherewhat/entry/new_stuff_pkgfactory_roboporter_contributed" >Doug’s pkgfactory/roboporter discussion</a> and <a href="http://blogs.sun.com/nico/entry/massively_porting_foss_for_opensolaris" >Nico’s explanation of the repositories</a> show an extremely promising way to make sure there’s a wide variety of software available for OpenSolaris—make the computers do the grunt work. Doug and Nico, and Jim Walker, have been pushing hard on improving porting efficiencies.</li>
<li><a href="http://blogs.sun.com/kah/entry/java_db_as_a_service" >Knut explains using JavaDB</a> as a managed service on 2008.11. Since Knut’s post combines <code>pkg</code>(5) and <code>smf</code>(5) invocations, it easily wins a spot in any summary I might write. (And so it appears in this one.)</li>
<li><a href="http://blogs.sun.com/jerrysblog/entry/zones_on_opensolaris_2008_11" >Jerry describes the foundational work</a> for integrating zones, Snap Upgrade, and <code>pkg</code>(5). The changes to filesystem layout to support that integration place limitations on zones across the 2008.05 to 2008.11 transition, so be sure to review Jerry’s post if you’ve been experimenting with <code>ipkg</code> zones on the release.</li>
<li><a href="http://blogs.sun.com/levon/entry/opensolaris_2008_11_as_a" >John reviews</a> 2008.11 as a suitable paravirtualized guest on xVM, with some careful discussion of how to handle the graphical console.</li>
<li></li>
</ul>
<p><a href="http://blogs.sun.com/srw/entry/a_new_face_on_things" > Shawn’s</a> the sole member of <a href="http://opensolaris.org/os/project/pkg/" >the image packaging team</a> to get a technical entry up. Shawn talks about the depot refacing work he’s done and planning on doing for 2009.next. (Shawn modestly omits the fact that he also implemented “<code>pkg history</code>” and operational intent in the client.)</p>
<ul>
<li>Finally, I’m giving <a href="http://blogs.sun.com/fintanr/entry/layers_of_cool_tech" >Fintan</a> the nod for best screenshot, even if I prefer to see this release on the metal.</li>
</ul>
<p>There are a lot of entries under tagged with <a href="http://blogs.sun.com/main/tags/opensolaris" ><code>opensolaris</code></a>; you’ll find coverage of many other aspects of the release.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/2008.11" rel="tag nofollow" class="broken_link">2008.11</a> ]
</p>2008.11: Live chat actionhttps://blueslugs.com/2008/12/10/2008-11-live-chat-action/Wed, 10 Dec 2008 19:26:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/10/2008-11-live-chat-action/<p>We’re just wrapping up the live chat for the launch, with interested folks moving to freenode in <code>#os200811</code>. Here’s a quick photo of Danek, Dave, and Bart responding intently to the questions and comments earlier this morning.</p>
<p><img src="http://blueslugs.com/wordpress/2010/05p-200811-chat.jpg" alt="Launch chat action" title="Duvall, Miner, and Smaalders during the 2008.11 launch chat."></p>
<p class="note">
As you can see, every question is taken seriously…
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/IRC" rel="tag nofollow" class="broken_link">IRC</a> ]
</p>2008.11: Everyday projectorshttps://blueslugs.com/2008/12/10/2008-11-everyday-projectors/Wed, 10 Dec 2008 09:01:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/10/2008-11-everyday-projectors/<p>I regularly use my for presentations and demonstrations, which in the past has involved some configuration gymnastics. If your laptop has NVIDIA graphics, the “NVIDIA X Server Settings” Preferences panel lets you configure for most projectors, but if you didn’t have an NVIDIA graphics adaptor, configuration was arduous and fragile. With 2008.11, we get GNOME 2.24; the 2.24 Screen Resolution panel, reachable from the desktop background menu, makes configuration accessible to a wider range of adaptors, including the Intel graphics in my Toshiba r500.</p>
<p>So I made another little film:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/JnuOMgQedIs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<p>Again, you can retrieve this video directly from <a href="http://channelsun.sun.com/video/using+a+projector+with+2008.11/4416739001" class="broken_link" rel="nofollow">channelsun</a>.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/GNOME" rel="tag nofollow" class="broken_link">GNOME</a> <a href="http://www.technorati.com/tag/Toshiba" rel="tag nofollow" class="broken_link">Toshiba</a> <a href="http://www.technorati.com/tag/projector" rel="tag nofollow" class="broken_link">projector</a> ]
</p>
<p class="note">
<strong>Update 2020-05-02:</strong> <code>channelsun.sun.com</code> is
long gone, but I found the original video and uploaded it to YouTube.
</p>2008.11: More ways to get it, and more ways to share ithttps://blueslugs.com/2008/12/10/2008-11-more-ways-to-get-it-and-more-ways-to-share-it/Wed, 10 Dec 2008 08:01:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/12/10/2008-11-more-ways-to-get-it-and-more-ways-to-share-it/<p class="note">
As I did for 2008.05, I’ll collect links to mirror sites here. These will also get links on the various download pages out there.
</p>
<p>Construction of 2008.11 was faster, more efficient, and generally more predictable than 2008.05. <a href="http://opensolaris.org/os/project/pkg" >Image packaging</a>, <a href="http://www.opensolaris.org/os/project/caiman/Snap_Upgrade/" class="broken_link" rel="nofollow">snap upgrade</a>, and <a href="http://www.opensolaris.org/os/project/caiman/Constructor/" class="broken_link" rel="nofollow">the distribution constructor</a>—and the notorious distro importer—saw many fixes and features that resulted in the ability to rapidly turn out corrected images and packages. As problems were found during testing, we could spin up new test variants in hours or less. (Thus, the existance of RC1.5, which we were able to inject into the schedule because of this newfound speed. <a href="http://blogs.sun.com/dminer/entry/constructing_an_opensolaris_distro" >Dave’s written more</a> about the constructor.) You can get the ISO image, suitable for burning to a 700 MiB CD or immediate use in <a href="http://virtualbox.org/" >virtual environment</a>, directly from the following locations:</p>
<ul>
<li>
<p><img class="icon-inline" src="https://blueslugs.com/icon/do-office-blue-32.png"
border="0" title="" alt="" />via HTTP from <code>dlc.sun.com</code>,</p>
</li>
<li>
<p><a href= "http://www.genunix.org/distributions/indiana/osol-0811.iso"> <img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" />via HTTP from <code>genunix.org</code></a>.</p>
</li>
<li>
<p><a href="http://mirror.switch.ch/ftp/mirror/opensolaris.org/release_isos/2008/11/osol-0811.iso" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via HTTP from <code>mirror.switch.ch</code></a>.</p>
</li>
<li>
<p><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" />via HTTP from <code>iso.zagbot.com</code>, <p class="note">
Thanks to Lyndsay Roger of <code>zagbot.com</code>.
</p></p>
</li>
<li>
<p><a href="http://opensolaris.linuxfreedom.com/"> <img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" />via HTTP from <code>opensolaris.linuxfreedom.com</code></a>, <p class="note">
Thanks to linuxfreedom.com’s Jonathan.</p>
</p>
</li>
<li>
<p><a href="http://opensolaris.fastbull.org/2008/11/osol-0811.iso" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>fastbull.org</code></a>,</p>
</li>
</ul>
<p class="note">
Thanks to Rodolfo Boraso for this site (and for working on the NLUUG sites below).
</p>
<ul>
<li>
<p><a href="http://mirrors.cat.pdx.edu/opensolaris/2008/11/osol-0811.iso" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>mirrors.cat.pdx.edu</code></a>,</p>
</li>
<li>
<p><a href="rsync://mirrors.cat.pdx.edu/opensolaris">
<img src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via rsync from <code>mirrors.cat.pdx.edu</code></a> <p class="note">
Thanks to Matt Whiteley at Portland State University for these two sites.</p>
</p>
</li>
<li>
<p><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" />via HTTP from <code>lifewithsolaris.jp</code>, <p class="note">
Thanks to Shunsuke from <code>lifewithsolaris.jp</code>.
</p></p>
</li>
<li>
<p><a href="http://os.elemental.org/" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via HTTP from <code>os.elemental.org</code></a>, <p class="note">
Thanks to Dale from <code>elemental.org</code>.</p>
</p>
<ul>
<li><a href="ftp://ftp.nluug.nl/pub/os/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via FTP from <code>nluug.nl</code></a>,</li>
<li><a href="http://ftp.nluug.nl/pub/os/opensolaris" ><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>nluug.nl</code></a>,</li>
<li><a href="rsync://ftp.nluug.nl/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via rsync from <code>nluug.nl</code></a>,</li>
<li><a href="ftp://ftp.surfnet.nl/pub/os/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via FTP from <code>surfnet.nl</code></a>,</li>
<li><a href="http://ftp.surfnet.nl/pub/os/opensolaris" ><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>surfnet.nl</code></a>,</li>
<li><a href="rsync://ftp.surfnet.nl/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via rsync from <code>surfnet.nl</code></a>,</li>
</ul>
<p class="note">
Thanks to the Dutch Unix Users Group (NLUUG) for these sites.
</p>
</li>
<li>
<p><a href="http://dlc.sun.com/torrents/info/osol-0811.iso.torrent" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/dr-theoretical-blue-32.png"
border="0" title="" alt="" /> and via BitTorrent</a>.</p>
</li>
</ul>
<p>As <a href= "http://blogs.gnome.org/gman/2008/12/10/mirroring-opensolaris-iso-images/"> Glynn notes</a>, we’ve set up anonymous rsync to make acquiring and mirroring the ISO images. In addition, I’ve posted <a href="http://opensolaris.org/os/project/pkg/Mirroring/">draft instructions</a> on how to be a content mirror for <a href="http://pkg.opensolaris.org/dev"><code>pkg.opensolaris.org/dev</code></a>. We’ve tested the <code>pkg</code>(5) content mirroring, as well as the rsync service, but would be happy to get feedback on <code>pkg-discuss@opensolaris.org</code>.</p>
<p class="note">
These links either take you to the site’s page or directly to the <code>osol-0811.iso</code> CD image, which contains 11 “primary languages”. It installs quite a bit faster, particularly on systems with slower CPUs. There is also an LZMA-compressed image, which has localization support for 42 languages, including those primary ones. It’s available from <a href="http://dlc.sun.com/osol/opensolaris/2008/11/osol-0811-global.iso" class="broken_link" rel="nofollow">dlc.sun.com</a>, <a href= "http://www.genunix.org/distributions/indiana/osol-0811-global.iso"> genunix.org</a>, <!--
<a href="http://ftp.df.lth.se/pub/opensolaris/current/osol-0811-global.iso" class="broken_link" rel="nofollow">ftp.df.lth.se</a>,
<a href="http://mirrors.xservers.ro/opensolaris/200805/osol-0811-global.iso" class="broken_link" rel="nofollow">mirrors.xservers.ro</a>,
--> and as a
<p><a href="http://dlc.sun.com/torrents/info/osol-0811-global.iso.torrent" class="broken_link" rel="nofollow">torrent</a>. (Consult the <a href="http://www.opensolaris.com/get/" >language lists</a> for specifics.)</p>
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/indiana" rel="tag nofollow" class="broken_link">indiana</a> ]
</p>OpenSolaris Support Services Training and Help – Docs Documentation White Papers FAQs Subscriptions OpenSolaris guides – Featureshttps://blueslugs.com/2008/11/30/opensolaris-support-services-training-and-help-docs-documentation-white-papers-faqs-subscriptions-opensolaris-guides-features/Mon, 01 Dec 2008 01:50:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/30/opensolaris-support-services-training-and-help-docs-documentation-white-papers-faqs-subscriptions-opensolaris-guides-features/<p class="link">
<a href="http://www.opensolaris.com/learn/features/whats-new/200811/" >OpenSolaris Support Services Training and Help – Docs Documentation White Papers FAQs Subscriptions OpenSolaris guides – Features</a>
</p>
<p class="extended">
Glynn's written up a very comprehensive What's New for 2008.11.
</p>CS 294-5, Spring 2006 Great Algorithmshttps://blueslugs.com/2008/11/19/cs-294-5-spring-2006-great-algorithms/Wed, 19 Nov 2008 18:58:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/19/cs-294-5-spring-2006-great-algorithms/<p class="link">
<a href="http://www.cs.berkeley.edu/~karp/greatalgo/#Lectures" >CS 294-5, Spring 2006 Great Algorithms</a>
</p>
<p class="extended">
Interesting course from Berkeley's Richard Karp.
</p>OpenSolaris System Administration Topics List – wikis.sun.comhttps://blueslugs.com/2008/11/17/opensolaris-system-administration-topics-list-wikissuncom/Mon, 17 Nov 2008 19:01:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/17/opensolaris-system-administration-topics-list-wikissuncom/<p class="link">
<a href="http://wikis.sun.com/display/OpenSolarisInfo/OpenSolaris+System+Administration+Topics+List" class="broken_link" rel="nofollow">OpenSolaris System Administration Topics List – wikis.sun.com</a>
</p>
<p class="extended">
A companion page to the tasks list, with useful links to troubleshooting articles as well. Forget how to make a change to an OpenSolaris system? Read this page.
</p>OpenSolaris System Administration Tasks List – wikis.sun.comhttps://blueslugs.com/2008/11/17/opensolaris-system-administration-tasks-list-wikissuncom/Mon, 17 Nov 2008 19:00:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/17/opensolaris-system-administration-tasks-list-wikissuncom/<p class="link">
<a href="http://wikis.sun.com/display/OpenSolarisInfo/OpenSolaris+System+Administration+Tasks+List" class="broken_link" rel="nofollow">OpenSolaris System Administration Tasks List – wikis.sun.com</a>
</p>
<p class="extended">
A very useful list of administrative tasks–and the "how to" instructions to make them happen. New to OpenSolaris? This page is for you.
</p>Simple Recipes in Pythonhttps://blueslugs.com/2008/11/11/simple-recipes-in-python/Tue, 11 Nov 2008 18:17:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/11/simple-recipes-in-python/<p class="link">
<a href="http://www.phys.uu.nl/~haque/computing/WPark_recipes_in_python.html" class="broken_link" rel="nofollow">Simple Recipes in Python</a>
</p>
<p class="extended">
Some simple implementations of numerical algorithms in Python.
</p>2008.next: demonstrating suspend-resumehttps://blueslugs.com/2008/11/05/2008-next-demonstrating-suspend-resume/Wed, 05 Nov 2008 18:11:51 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/05/2008-next-demonstrating-suspend-resume/<p><a href="http://blogs.sun.com/randyf" >Randy</a> has been <a href="http://blogs.sun.com/randyf/entry/solaris_suspend_and_resume_how" >blogging on the suspend-resume feature</a> and how it’s been improving on a variety of x86-based systems. A few weeks ago, I was sitting on the <a href="http://volcanoes.usgs.gov/" >USGS Menlo Park campus</a>, and decided to record a demonstration of my own laptop being suspended and resumed multiple times:</p>
<iframe width="560" height="315"
src="https://www.youtube.com/embed/CrOYwoEacQw" frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope;
picture-in-picture" allowfullscreen></iframe>
<p>(You can also access the video on <a href="http://channelsun.sun.com/video/suspend-resume+on+2008.11/1896829611" class="broken_link" rel="nofollow">channelsun</a>.)</p>
<p>The demonstration is using Build 99, so there are a few differences and improvements in the release candidates soon to be published. With careful timing of your battery discharging and recharging, you can shoot for uptimes in days to weeks.</p>
<p class="note">
I’m also demonstrating my ignorance of all video-making rules, in that I used a Panasonic Lumix LX-2 in movie mode, outdoors, near traffic, and then edited the video using OpenSolaris and open source tools. But I’ll note that, even in real life, you’ll have to peer at your r600 closely to see the orange suspension indicator.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Toshiba" rel="tag nofollow" class="broken_link">Toshiba</a> <a href="http://www.technorati.com/tag/laptop" rel="tag nofollow" class="broken_link">laptop</a> ]
</p>
<p class="note">
<strong>Update 2020-05-02:</strong> <code>channelsun.sun.com</code> is
long gone, but I found the original video and uploaded it to YouTube.
</p>ImageMagick Tutorialhttps://blueslugs.com/2008/11/05/imagemagick-tutorial/Wed, 05 Nov 2008 17:56:51 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/05/imagemagick-tutorial/<p class="link">
<a href="http://xahlee.org/img/imagemagic.html" >ImageMagick Tutorial</a>
</p>
<p class="extended">
Some basic operations with the ImageMagick convert utility.
</p>ffmpeg audio/video manipulationhttps://blueslugs.com/2008/11/05/ffmpeg-audiovideo-manipulation/Wed, 05 Nov 2008 17:55:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/05/ffmpeg-audiovideo-manipulation/<p class="link">
<a href="http://howto-pages.org/ffmpeg/" >ffmpeg audio/video manipulation</a>
</p>
<p class="extended">
A well-constructed introduction to using ffmpeg for video and audio manipulation.
</p>N.E.R.D.: ffmpeg command line quickieshttps://blueslugs.com/2008/11/05/nerd-ffmpeg-command-line-quickies/Wed, 05 Nov 2008 17:55:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/05/nerd-ffmpeg-command-line-quickies/<p class="link">
<a href="http://www.nerdlogger.com/2008/09/ffmpeg-command-line-quickies.html" class="broken_link" rel="nofollow">N.E.R.D.: ffmpeg command line quickies</a>
</p>
<p class="extended">
Useful one-line invocations of ffmpeg.
</p>FFmpeg Documentationhttps://blueslugs.com/2008/11/05/ffmpeg-documentation/Wed, 05 Nov 2008 17:54:06 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/05/ffmpeg-documentation/<p class="link">
<a href="http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html#SEC15" >FFmpeg Documentation</a>
</p>
<p class="extended">
Options and operands for ffmpeg. Combine with "ffmpeg -formats" to figure out what you build of ffmpeg can do.
</p>A gentle evening, in contrasthttps://blueslugs.com/2008/11/04/a-gentle-evening-in-contrast/Wed, 05 Nov 2008 06:39:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/04/a-gentle-evening-in-contrast/<figure id="attachment_2502" style="width: 480px" class="wp-caption alignnone"><a href="http://ftr.blueslugs.com/2008/11/rose.jpg" ><img src="http://ftr.blueslugs.com/2008/11/rose.jpg" alt="Ready for any recounts" title="Election preparation" width="480" height="566" class="size-full wp-image-2502" /></a><figcaption class="wp-caption-text">Ready for any recounts</figcaption></figure>
<p>Dina and I were, despite all polls, anticipating election nights like the preceding two, where any hope of resolution was delayed, and tension distributed to all election watchers. This year, I was determined to enjoy the evening, and poured something light for the both of us to sip while listening to analyses. Historians will write page upon page about tonight, what it signifies, and so on; my toast is to the many states, Secretaries of State, and election workers who ran their polling and counting with great predictability and competence—the best of attributes. Thanks.</p>
<p><em>We roused the kids to listen to both of tonight’s speeches. Congratulations to the candidates, the President-elect, and the country.</em></p>FFmpeg FAQhttps://blueslugs.com/2008/11/03/ffmpeg-faq/Mon, 03 Nov 2008 18:29:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/03/ffmpeg-faq/<p class="link">
<a href="http://ffmpeg.mplayerhq.hu/faq.html" >FFmpeg FAQ</a>
</p>
<p class="extended">
Note 3.2 "How do I encode single pictures into movies?" and 3.19 "How can I join video files?" Engage brain, produce movie.
</p>2008.next: Recovering a dropped data poolhttps://blueslugs.com/2008/11/02/2008-next-recovering-a-dropped-data-pool/Sun, 02 Nov 2008 21:20:06 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/02/2008-next-recovering-a-dropped-data-pool/<p>As you update your <code>pkg</code>(5)-based system to build 100a, you might see a message on console during startup. It will look something like</p>
<pre>WARNING: pool 'zeta1' could not be loaded as it was last accessed by
another system (host: rosseau hostid: 0x581d45e). See:
http://www.sun.com/msg/ZFS-8000-EY
</pre>
<p>and in <code>/var/adm/messages</code>, you’ll find it again:</p>
<pre>Oct 27 14:55:21 rosseau zfs: [ID 427000 kern.warning] WARNING: pool
'zeta1' could not be loaded as it was last accessed by another system
(host: rosseau hostid: 0x581d45e). See:
http://www.sun.com/msg/ZFS-8000-EY
</pre>
<p><code>zeta1</code> is a data pool on my system—the boot pool, <code>rpool</code>, upgraded normally—and recent changes in the <code>hostid</code> implementation mean that we have to import (or reimport) any non-boot pools on the system. That is,</p>
<pre>$ pfexec zpool import -f zeta1
</pre>
<p>and our <code>zeta1</code>-based filesystems are again online.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/zfs" rel="tag nofollow" class="broken_link">zfs</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>OpenSolaris Indiana on a Sony UX Micro PC – Brad's webloghttps://blueslugs.com/2008/11/02/opensolaris-indiana-on-a-sony-ux-micro-pc-brads-weblog/Sun, 02 Nov 2008 20:58:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/11/02/opensolaris-indiana-on-a-sony-ux-micro-pc-brads-weblog/<p class="link">
<a href="http://blogs.sun.com/bhall/entry/installing_opensolaris_on_a_sony" >OpenSolaris Indiana on a Sony UX Micro PC – Brad’s weblog</a>
</p>
<p class="extended">
Brad, with limited acrobatics, gets 2008.05 installed and running on the teeny-tiny UX.
</p>IRS Withholding Calculatorhttps://blueslugs.com/2008/10/17/irs-withholding-calculator/Sat, 18 Oct 2008 00:25:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/10/17/irs-withholding-calculator/<p class="link">
<a href="http://www.irs.gov/individuals/article/0,,id=96196,00.html" >IRS Withholding Calculator</a>
</p>
<p class="extended">
"The purpose of this application is to help employees to ensure that they do not have too much or too little income tax withheld from their pay. It is not a replacement for Form W-4, but most people will find it more accurate and easier to use than the worksheets that accompany Form W-4. You may use the results of this program to help you complete a new Form W-4, which you will submit to your employer." If you can parse this paragraph, you may find this tool useful.
</p>Shooting the Moon w/K10D and Cheap Glass: Pentax Forumhttps://blueslugs.com/2008/10/16/shooting-the-moon-wk10d-and-cheap-glass-pentax-forum/Fri, 17 Oct 2008 04:46:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/10/16/shooting-the-moon-wk10d-and-cheap-glass-pentax-forum/<p class="link">
<a href="http://photo.net/pentax-camera-forum/00O1L1" >Shooting the Moon w/K10D and Cheap Glass: Pentax Forum</a>
</p>
<p class="extended">
An article and followup comments describing various moonshots.
</p>The eyeballing gamehttps://blueslugs.com/2008/10/06/the-eyeballing-game/Mon, 06 Oct 2008 20:30:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/10/06/the-eyeballing-game/<p class="link">
<a href="http://woodgears.ca/eyeball/" >The eyeballing game</a>
</p>
<p class="extended">
Correct geometric diagrams by eye.
</p>2008.next: Easy install for docutilshttps://blueslugs.com/2008/09/18/2008-next-easy-install-for-docutils/Thu, 18 Sep 2008 23:33:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/09/18/2008-next-easy-install-for-docutils/<p class="note">
It’s been a busy summer, mostly trying to manage conflicting schedules at home while staying loyal to the six month release schedule for OpenSolaris at work. Schedules everywhere, it seems.
</p>
<p>I’ve been probing deeper into the ecosystem around Python, and have been trying to determine whether <a href="http://docutils.sourceforge.net/rst.html" title="Restructured text">restructured text</a> might have some value in the workflow around OpenSolaris development: it can output to a variety of formats, including XML, LaTeX, and HTML, and doesn’t have an onerous list of dependencies.</p>
<p class="note">
I’ve scars from building AsciiDoc 8.
</p>
<p><a href="http://docutils.sourceforge.net" title="Docutils">docutils</a> isn’t available via image packaging yet, but it’s easily retrievable using <code>easy_install</code>. That means the question is: how do I get <code>easy_install</code>? I’m running Build 98, so I’ll restrict my search to packages on the development branch for that build:</p>
<pre class="ksh">$ pkg search -r easy_install | grep 0.98
basename file usr/bin/easy_install pkg:/SUNWpython-setuptools@0.5.11-0.98
</pre>
<p>Okay, <code>easy_install</code> is part of setuptools—you probably knew that already. Let’s install the appropriate package using <code>pkg</code>(1):</p>
<pre class="ksh">$ pfexec pkg install SUNWpython-setuptools
DOWNLOAD PKGS FILES XFER (MB)
Completed 1/1 81/81 0.30/0.30
PHASE ACTIONS
Install Phase 93/93
PHASE ITEMS
Reading Existing Index 9/9
Indexing Packages 1/1
$ which easy_install
/usr/bin/easy_install
</pre>
<p>Having setuptools in place, we can now attempt installs of any Python module available in the Python Package Index (pypi), via the <code>easy_install</code> command. (<code>easy_install --help</code> will display a usage message for <code>easy_install</code>.) Let’s install the docutils package:</p>
<pre class="ksh">$ pfexec easy_install docutils
Searching for docutils
Reading http://pypi.python.org/simple/docutils/
Reading http://docutils.sourceforge.net/
Best match: docutils 0.5
Downloading http://prdownloads.sourceforge.net/docutils/docutils-0.5.tar.gz?download
Processing docutils-0.5.tar.gz
Running docutils-0.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-57yD32/docutils-0.5/egg-dist-tmp-Ip1xgp
"optparse" module already present; ignoring extras/optparse.py.
"textwrap" module already present; ignoring extras/textwrap.py.
zip_safe flag not set; analyzing archive contents...
docutils.parsers.rst.directives.misc: module references <strong>file</strong>
docutils.writers.html4css1.<strong>init</strong>: module references <strong>file</strong>
docutils.writers.pep_html.<strong>init</strong>: module references <strong>file</strong>
docutils.writers.s5_html.<strong>init</strong>: module references <strong>file</strong>
docutils.writers.newlatex2e.<strong>init</strong>: module references <strong>file</strong>
Adding docutils 0.5 to easy-install.pth file
Installing rst2xml.py script to /usr/bin
Installing rst2pseudoxml.py script to /usr/bin
Installing rst2html.py script to /usr/bin
Installing rst2s5.py script to /usr/bin
Installing rst2latex.py script to /usr/bin
Installing rstpep2html.py script to /usr/bin
Installing rst2newlatex.py script to /usr/bin
Installed /usr/lib/python2.4/site-packages/docutils-0.5-py2.4.egg
Processing dependencies for docutils
Finished processing dependencies for docutils
$ which rst2html.py
/usr/bin/rst2html.py
</pre>
<p>And now I can start experimenting with restructured text.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Python" rel="tag nofollow" class="broken_link">Python</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> docutils <a href="http://www.technorati.com/tag/setuptools" rel="tag nofollow" class="broken_link">setuptools</a> ]
</p>2008 Winning Contest Entries at OpenSolaris.orghttps://blueslugs.com/2008/09/18/2008-winning-contest-entries-at-opensolarisorg/Thu, 18 Sep 2008 22:11:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/09/18/2008-winning-contest-entries-at-opensolarisorg/<p class="link">
<a href="http://www.opensolaris.org/os/project/awards/awards_land/Entries/" class="broken_link" rel="nofollow">2008 Winning Contest Entries at OpenSolaris.org</a>
</p>
<p class="extended">
Winning entries for the community innovation awards. If you're no longer (or don't plan to be) an undergraduate, or you don't want to call your work "research", maybe this award program's more suitable.
</p>2008 Winning Entries at OpenSolaris.orghttps://blueslugs.com/2008/09/18/2008-winning-entries-at-opensolarisorg/Thu, 18 Sep 2008 22:11:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/09/18/2008-winning-entries-at-opensolarisorg/<p class="link">
<a href="http://www.opensolaris.org/os/project/awards/awards_land/Entries/" class="broken_link" rel="nofollow">2008 Winning Entries at OpenSolaris.org</a>
</p>
<p class="extended">
Winning entries for the community innovation awards. If you're no longer (or don't plan to be) an undergraduate, or you don't want to call your work "research", maybe this award program's more suitable.
</p>2008 Winning Grant Proposals at OpenSolaris.orghttps://blueslugs.com/2008/09/18/2008-winning-grant-proposals-at-opensolarisorg/Thu, 18 Sep 2008 22:00:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/09/18/2008-winning-grant-proposals-at-opensolarisorg/<p class="link">
<a href="http://www.opensolaris.org/os/project/awards/awards_research_land/Proposals/" class="broken_link" rel="nofollow">2008 Winning Grant Proposals at OpenSolaris.org</a>
</p>
<p class="extended">
The first group of grant recipients for undergraduate research on OpenSolaris.
</p>Solar Water Heating Systems – Welcome to VELUX Americahttps://blueslugs.com/2008/09/14/solar-water-heating-systems-welcome-to-velux-america/Sun, 14 Sep 2008 17:32:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/09/14/solar-water-heating-systems-welcome-to-velux-america/<p class="link">
<a href="http://veluxusa.com/products/solarWater/" >Solar Water Heating Systems – Welcome to VELUX America</a>
</p>
<p class="extended">
Skylight-style solar water heaters.
</p>Chromium – Google Codehttps://blueslugs.com/2008/09/02/chromium-google-code/Wed, 03 Sep 2008 05:08:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/09/02/chromium-google-code/<p class="link">
<a href="http://code.google.com/chromium/" >Chromium – Google Code</a>
</p>
<p class="extended">
Development home for Chromium, the open source components for Google's Chrome browser.
</p>[0808.3310] Inferring basic parameters of the geodynamo from sequences of polarity reversalshttps://blueslugs.com/2008/08/31/08083310-inferring-basic-parameters-of-the-geodynamo-from-sequences-of-polarity-reversals/Sun, 31 Aug 2008 08:45:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/08/31/08083310-inferring-basic-parameters-of-the-geodynamo-from-sequences-of-polarity-reversals/<p class="link">
<a href="http://arxiv.org/abs/0808.3310" >[0808.3310] Inferring basic parameters of the geodynamo from sequences of polarity reversals</a>
</p>
<p class="extended">
The asymmetric time dependence and various statistical properties of polarity reversals of the Earth's magnetic field are utilized to infer some of the most essential parameters of the geodynamo, among them the effective (turbulent) magnetic diffusivity, the degree of supercriticality, and the relative strength of the periodic forcing which is believed to result from the Milankovic cycle of the Earth's orbit eccentricity. A time-stepped spherically symmetric alpha^2-dynamo model is used as the kernel of an inverse problem solver in form of a downhill simplex method which converges to solutions that yield a stunning correspondence with paleomagnetic data.
</p>[0808.3278] Thump, ring: the sound of a bouncing ballhttps://blueslugs.com/2008/08/31/08083278-thump-ring-the-sound-of-a-bouncing-ball/Sun, 31 Aug 2008 08:37:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/08/31/08083278-thump-ring-the-sound-of-a-bouncing-ball/<p class="link">
<a href="http://arxiv.org/abs/0808.3278" >[0808.3278] Thump, ring: the sound of a bouncing ball</a>
</p>
<p class="extended">
Analysis of a simplified model basketball.
</p>[0808.2624] Mark J Reid, Is there a Supermassive Black Hole at the Center of the Milky Way?https://blueslugs.com/2008/08/21/08082624-mark-j-reid-is-there-a-supermassive-black-hole-at-the-center-of-the-milky-way/Thu, 21 Aug 2008 17:52:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/08/21/08082624-mark-j-reid-is-there-a-supermassive-black-hole-at-the-center-of-the-milky-way/<p class="link">
<a href="http://arxiv.org/abs/0808.2624" >[0808.2624] Mark J Reid, Is there a Supermassive Black Hole at the Center of the Milky Way?</a>
</p>
<p class="extended">
"This review outlines the observations that now provide an overwhelming scientific case that the center of our Milky Way Galaxy harbors a supermassive black hole."
</p>Mathematics and Computation " Intuitionistic mathematics for physicshttps://blueslugs.com/2008/08/20/mathematics-and-computation-intuitionistic-mathematics-for-physics/Wed, 20 Aug 2008 18:58:06 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/08/20/mathematics-and-computation-intuitionistic-mathematics-for-physics/<p class="link">
<a href="http://math.andrej.com/2008/08/13/intuitionistic-mathematics-for-physics/" >Mathematics and Computation ” Intuitionistic mathematics for physics</a>
</p>
<p class="extended">
</p>Package List – Life with Solarishttps://blueslugs.com/2008/08/15/package-list-life-with-solaris/Fri, 15 Aug 2008 19:51:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/08/15/package-list-life-with-solaris/<p class="link">
<a href="http://lifewithsolaris.jp/modules/packages/index.php?content_id=1" class="broken_link" rel="nofollow">Package List – Life with Solaris</a>
</p>
<p class="extended">
Life with Solaris has begun publishing some popular multimedia formats using image packaging. Current packages include BMPx, Goggles/Ogle, VLC, and Xine.
</p>Open Problem Gardenhttps://blueslugs.com/2008/08/09/open-problem-garden/Sat, 09 Aug 2008 19:19:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/08/09/open-problem-garden/<p class="link">
<a href="http://garden.irmacs.sfu.ca/" >Open Problem Garden</a>
</p>
<p class="extended">
"Welcome to the Open Problem Garden, a collection of unsolved problems in mathematics."
</p>Life is so good, it gets better every day » Blog Archive » Playing with IPS and SFEhttps://blueslugs.com/2008/08/04/life-is-so-good-it-gets-better-every-day-blog-archive-playing-with-ips-and-sfe/Mon, 04 Aug 2008 16:43:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/08/04/life-is-so-good-it-gets-better-every-day-blog-archive-playing-with-ips-and-sfe/<p class="link">
<a href="http://blogs.gnome.org/gman/2008/08/04/playing-with-ips-and-sfe/" >Life is so good, it gets better every day » Blog Archive » Playing with IPS and SFE</a>
</p>
<p class="extended">
Glynn works through how to build a "spec files extra" (SFE) package and convert it for publication in a pkg(5) repository.
</p>moving from nevada and live upgrade to opensolaris : Edward Pilatowicz's Webloghttps://blueslugs.com/2008/07/28/moving-from-nevada-and-live-upgrade-to-opensolaris-edward-pilatowiczs-weblog/Mon, 28 Jul 2008 17:59:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/07/28/moving-from-nevada-and-live-upgrade-to-opensolaris-edward-pilatowiczs-weblog/<p class="link">
<a href="http://blogs.sun.com/edp/entry/moving_from_nevada_and_live" >moving from nevada and live upgrade to opensolaris : Edward Pilatowicz’s Weblog</a>
</p>
<p class="extended">
Ed has a procedure to construct a 2008.05 system alongside an existing Nevada system. Slick.
</p>[0807.2097] Testing a priority-based queue model with Linux command historieshttps://blueslugs.com/2008/07/17/08072097-testing-a-priority-based-queue-model-with-linux-command-histories/Thu, 17 Jul 2008 15:23:47 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/07/17/08072097-testing-a-priority-based-queue-model-with-linux-command-histories/<p class="link">
<a href="http://arxiv.org/abs/0807.2097" >[0807.2097] Testing a priority-based queue model with Linux command histories</a>
</p>
<p class="extended">
"We study human dynamics by analyzing Linux history files." Attempt to verify one of the power law behaviours, but with a very small sample.
</p>MIT OpenCourseWare – 6.831 User Interface Design and Implementation, Fall 2004 – Readingshttps://blueslugs.com/2008/06/16/mit-opencourseware-6831-user-interface-design-and-implementation-fall-2004-readings/Mon, 16 Jun 2008 19:25:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/06/16/mit-opencourseware-6831-user-interface-design-and-implementation-fall-2004-readings/<p class="link">
<a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-831Fall-2004/Readings/" class="broken_link" rel="nofollow">MIT OpenCourseWare – 6.831 User Interface Design and Implementation, Fall 2004 – Readings</a>
</p>
<p class="extended">
The reading list for MIT's user interface design course.
</p>Metakit embedded database libraryhttps://blueslugs.com/2008/06/15/metakit-embedded-database-library/Mon, 16 Jun 2008 00:29:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/06/15/metakit-embedded-database-library/<p class="link">
<a href="http://www.equi4.com/metakit/index.html" >Metakit embedded database library</a>
</p>
<p class="extended">
Metakit is an efficient embedded database library with a small footprint. Python binding, as well as C++ and Tcl. MIT license.
</p>Logic Supply – Leaders in Mini-ITX & Small Form Factor Solutionshttps://blueslugs.com/2008/06/11/logic-supply-leaders-in-mini-itx-small-form-factor-solutions-8/Thu, 12 Jun 2008 05:55:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/06/11/logic-supply-leaders-in-mini-itx-small-form-factor-solutions-8/<p class="link">
<a href="http://www.logicsupply.com/" >Logic Supply – Leaders in Mini-ITX & Small Form Factor Solutions</a>
</p>
<p class="extended">
Currently offering the Intel Little Valley system, among other options
</p>Logic Supply – Leaders in Mini-ITX and Small Form Factor Solutionshttps://blueslugs.com/2008/06/11/logic-supply-leaders-in-mini-itx-and-small-form-factor-solutions/Thu, 12 Jun 2008 05:55:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/06/11/logic-supply-leaders-in-mini-itx-and-small-form-factor-solutions/<p class="link">
<a href="http://www.logicsupply.com/" >Logic Supply – Leaders in Mini-ITX and Small Form Factor Solutions</a>
</p>
<p class="extended">
Currently offering the Intel Little Valley system, among other options
</p>The View from the Moon – ii_bitmap=1; ii_bitmap=1; ii_bitmap=1; ii_bitmap=1; …https://blueslugs.com/2008/06/04/the-view-from-the-moon-ii_bitmap1-ii_bitmap1-ii_bitmap1-ii_bitmap1/Wed, 04 Jun 2008 23:54:24 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/06/04/the-view-from-the-moon-ii_bitmap1-ii_bitmap1-ii_bitmap1-ii_bitmap1/<p class="link">
<a href="http://blogs.sun.com/dp/entry/ii_bitmap_1_2_lu" >The View from the Moon – ii_bitmap=1; ii_bitmap=1; ii_bitmap=1; ii_bitmap=1; …</a>
</p>
<p class="extended">
Why image packaging doesn't have scripting, exhibit 731.
</p>2008.05: Who's got ithttps://blueslugs.com/2008/05/23/2008-05-whos-got-it/Sat, 24 May 2008 00:28:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/23/2008-05-whos-got-it/<p>Well, I don’t know exactly who’s running a copy of <a href="http://opensolaris.com/" >2008.05</a>, but I do know what IP addresses have interacted with <code>pkg.opensolaris.org</code> from the server logs. I used MaxMind’s <a href="http://www.maxmind.com/app/geoip_country" >GeoIP Lite</a> to map these back to countries, and Google’s <a href="http://code.google.com/apis/chart/" >chart API</a> to make a little map:</p>
<p><img src="http://blueslugs.com/wordpress/2010/05p-world-20080523.png" alt="" title=""></p>
<p>If 2008.05 is your first experience with the technology developed at <a href="http://opensolaris.org/" ><code>opensolaris.org</code></a>, welcome. (You’re not alone—the map suggests that, in many places, there might even be a fellow user nearby.) Don’t have it? Try a convenient <a href="http://blueslugs.com/entry/2008_05_more_ways_to" >mirror site</a>.</p>
<p class="note">
Maybe we need a TechDays in Greenland next year?
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> <a href="http://www.technorati.com/tag/nationalism" rel="tag nofollow" class="broken_link">nationalism</a> ]
</p>sudshttps://blueslugs.com/2008/05/21/suds/Thu, 22 May 2008 04:13:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/21/suds/<p class="link">
<a href="https://fedorahosted.org/suds" >suds</a>
</p>
<p class="extended">
"Suds is a lightweight SOAP python client that provides a service proxy for Web Services."
</p>CherryPyhttps://blueslugs.com/2008/05/21/cherrypy/Thu, 22 May 2008 04:09:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/21/cherrypy/<p class="link">
<a href="http://www.cherrypy.org/" >CherryPy</a>
</p>
<p class="extended">
"CherryPy is a pythonic, object-oriented HTTP framework." Shawn's almost done refactoring pkg.depotd to use CherryPy rather than BaseHTTPServer.
</p>Python Web Serviceshttps://blueslugs.com/2008/05/21/python-web-services/Thu, 22 May 2008 03:54:47 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/21/python-web-services/<p class="link">
<a href="http://pywebsvcs.sourceforge.net/" >Python Web Services</a>
</p>
<p class="extended">
Home of SOAPpy and Zolera SOAP Infrastructure (ZSI)
</p>Mail droppagehttps://blueslugs.com/2008/05/13/mail-droppage/Tue, 13 May 2008 19:57:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/13/mail-droppage/<p>It looks like I missed making a configuration change last update, and <code>opensolaris.org</code> has been dropping my mail messages for the past week as a result. Sorry—if you’re waiting for mail from me, you may need to ping me again. Otherwise, I’ll try to reinsert myself in various threads…</p>CommunityOne: here and therehttps://blueslugs.com/2008/05/05/communityone-here-and-there/Mon, 05 May 2008 08:38:30 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/05/communityone-here-and-there/<p class="note">
Sunday I spent at Moscone, teaching laptops and projectors to get along. Saturday, Nathaniel, Benjamin, and I dropped in for lunch at the Developer Summit. I managed to talk with a few people before the boys found large whacking sticks, and then it seemed best to drive to Pescadero for some beach time.
</p>
<p>I’ll be busy for the morning of CommunityOne. For <a href="http://blogs.sun.com/richgreen/" >Rich</a>‘s keynote, I’ll be running some of the less violent demos. Almost immediately after that, lead modernizer <a href="http://blogs.sun.com/comay/" >David Comay</a> and I will be going into more detail in our session</p>
<blockquote>
<p>S297399 <em>Getting Started with OpenSolaris™; New Features & Building OpenSolaris™ Packages</em>; 11:00 a.m., Moscone South/Esplanade 300. We’ve got some additional demonstrations, including a worked example of package publication using some pre-release tools, which could be exciting.</p>
</blockquote>
<p>I’m hoping to have some time for questions during the session but, if not, I’ll be circulating during the afternoon and happy to talk to people about 2008.05, image packaging, or whatever. And, of course, there will be time to talk at the party after the day’s sessions. In any case, I should be easy to spot: I have a new tie.</p>
<p class="note">
I’m told you can still register on-site—it’s not too late.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> CommunityOne ]
</p>2008.05: More ways to get ithttps://blueslugs.com/2008/05/05/2008-05-more-ways-to-get-it/Mon, 05 May 2008 08:11:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/05/2008-05-more-ways-to-get-it/<p class="note">
As I did for the preview releases, I’ll collect links to mirror sites here. These will also get links on the various download pages out there.
</p>
<p><a href="http://blogs.sun.com/barts/" >Bart</a> and I just finished updating <a href="http://pkg.opensolaris.org" >the package repository</a> with the new packages we’d received the past few weeks, and that means <a href="http://opensolaris.com/" >2008.05</a> is out the door. (Thanks to everybody who tried the release candidate, filed a bug, shuffled a package, wrote or proofread a document, or just spent energy anticipating the bits.) You can get the ISO image, suitable for burning to a 700 MiB CD or immediate use in <a href="http://virtualbox.org/" >virtual environment</a>, directly from the following locations:</p>
<ul>
<li><a href="http://dlc.sun.com/osol/opensolaris/2008/05/os200805.iso" class="broken_link" rel="nofollow"><img class="icon-inline" src="https://blueslugs.com/icon/do-office-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>dlc.sun.com</code></a>, and</li>
<li><a href="http://www.genunix.org/distributions/indiana/os200805.iso" ><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>genunix.org</code></a>,</li>
<li><a href="http://ftp.df.lth.se/pub/indiana/current/os200805.iso" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>ftp.df.lth.se</code></a>,</li>
<li><a href="ftp://ftp.df.lth.se/pub/indiana/current/os200805.iso"> <img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" />via FTP from <code>ftp.df.lth.se</code></a>,</li>
<li><a href="http://mirrors.xservers.ro/opensolaris/200805/os200805.iso" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>mirrors.xservers.ro</code></a>,
<ul>
<li><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" />via HTTP from <code>gulus.usherbrooke.ca</code>,</li>
<li><a href="ftp://ftp.nluug.nl/pub/os/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via FTP from <code>ftp.nluug.nl</code></a>,
<ul>
<li><a href="http://ftp.nluug.nl/pub/os/opensolaris" ><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via HTTP from <code>ftp.nluug.nl</code></a>,
<ul>
<li><a href="rsync://ftp.nluug.nl/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via rsync from <code>ftp.nluug.nl</code></a>,
<ul>
<li><a href="ftp://ftp.surfnet.nl/pub/os/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via FTP from <code>ftp.surfnet.nl</code></a>,
<ul>
<li><a href="http://ftp.surfnet.nl/pub/os/opensolaris" ><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via HTTP from <code>ftp.surfnet.nl</code></a>,
<ul>
<li><a href="rsync://ftp.surfnet.nl/opensolaris">
<img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png"
border="0" title="" alt="" /> via rsync from <code>ftp.surfnet.nl</code></a>, or</li>
</ul>
<!--
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<li><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>osol.acm.jhu.edu</code>.</li>
-->
<pre><code> * <a href="http://dlc.sun.com/torrents/info/os200805.iso.torrent" class="broken_link" rel="nofollow"><img class="icon-inline" src="/icon/dr-theoretical-blue-32.png" border="0" title="" alt="" /> via BitTorrent</a>.</ul> </p>
Reading the logs, and talking with some of our mirror sites, we know we all served out a lot of downloads for the previews; if you&#8217;re interested in being a mirror, please let me know. (2008.05 remains completely redistributable.) We&#8217;re using a bigger download complex this time, but every mirror helps.
If you already downloaded and installed Preview 2, it&#8217;s more complete, easier, and probably faster to update directly using image packaging: see the update guidelines. These instructions involve a small script to safely update a clone of your installed system, and then switch to that on a system reboot. (If you were running Preview 1, you should update that to Preview 2, and then go on to 2008.05.)
**Update 1**: My thanks to Tobias Lundquist, who&#8217;s once again mirrored via FTP and HTTP (Internet 2) in Sweden.
**Update 2**: My thanks to Luca, who&#8217;s put up an HTTP mirror in Romania.
**Update 3**: Simon Valiquette has put up an HTTP mirror (Internet 2) at the Universit&eacute; de Sherbrooke in Qu&eacute;bec, Canada. Merci, Simon.
**Update 4**: <a href="http://blogs.sun.com/bartm" >Bart Muijzer</a> has arranged for mirrors by the Netherlands Unix Users Group (NLUUG) and `surfnet.nl`. Thanks, Bart.
<!--
</code></pre>
<p>
<b>Update 2</b>: My thanks to <code>trisk</code>, who's once again put up an HTTP mirror (Internet 2) on the East Coast of the USA.
</p>
-->
<pre><code> <p class="note">
These links are for the gzipped CD image, which contains the 12 &#8220;primary languages&#8221;. It installs quite a bit faster, particularly on systems with slower CPUs. There is also an LZMA-compressed image, which has localization support for 42 languages, including those primary ones. It&#8217;s available from <a href="http://dlc.sun.com/osol/opensolaris/2008/05/os200805g.iso" class="broken_link" rel="nofollow">dlc.sun.com</a>, <a href="http://www.genunix.org/distributions/indiana/os200805g.iso" >genunix.org</a>, <a href="http://ftp.df.lth.se/pub/opensolaris/current/os200805g.iso" class="broken_link" rel="nofollow">ftp.df.lth.se</a>, <a href="http://mirrors.xservers.ro/opensolaris/200805/os200805g.iso" class="broken_link" rel="nofollow">mirrors.xservers.ro</a>, and as a <a href="http://dlc.sun.com/torrents/info/os200805g.iso.torrent" class="broken_link" rel="nofollow">torrent</a>. (Consult the <a href="http://www.opensolaris.com/get/" >language lists</a> for specifics.)
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/indiana" rel="tag nofollow" class="broken_link">indiana</a> ]
</p>
</code></pre>Live chat on #os200805https://blueslugs.com/2008/05/01/live-chat-on-os200805/Thu, 01 May 2008 21:00:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/05/01/live-chat-on-os200805/<p>We’re talking about OpenSolaris 2008.05 over on IRC, using the #os200805, from now until 2 p.m. Pacific Time. If you haven’t got an IRC client, you can use <a href="http://java.freenode.net//index.php?channel=os200805" class="broken_link" rel="nofollow">freenode’s Java applet</a>, which worked great (until Danek kickbanned me). Enter a nickname, and then ask some questions.</p>
<p class="note">
Apparently the load from 60 000 users blew out the chat system, so we moved to IRC.
</p>~4100MiBhttps://blueslugs.com/2008/04/26/4100mib/Sat, 26 Apr 2008 19:30:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/04/26/4100mib/<p>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.</p>
<p>(I found the actual result: 4237MiB sent up, so almost 4GiB.)</p>OpenSolaris: Bug dependencies and release managementhttps://blueslugs.com/2008/04/17/opensolaris-bug-dependencies-and-release-management/Fri, 18 Apr 2008 01:38:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/04/17/opensolaris-bug-dependencies-and-release-management/<p>Right now, if you’re subscribed to any of the <a href="http://opensolaris.org/os/community/install" >Installation and Packaging</a> community group or project lists, you’ll see a lot of commit notifications as the various teams attempt to fix various bugs noted since the second Developer Preview release. We’ve been using the trial Bugzilla instance—which is becoming the default defect tracker for opensolaris.org it appears—and trying out various features.</p>
<p>For tracking release completeness, we’re using “blocker bugs” or “tracker bugs”, which are synthetic bug entries that we mark various important bugs (“stoppers”) as blocking. That means that we end up creating a little dependency graph that shows what unfixed bugs are stopping us from reaching some initial set of release criteria. We have two tracker bugs</p>
<ul>
<li><a href="http://defect.opensolaris.org/bz/show_bug.cgi?id=571" class="broken_link" rel="nofollow">571 Blocker bug for Indiana 3</a></li>
<li><a href="http://defect.opensolaris.org/bz/show_bug.cgi?id=1190" class="broken_link" rel="nofollow">1190 Packaging bugs to fix for May (tracker bug)</a> that we’re monitoring to make sure we’ve got a handle on things.</li>
</ul>
<p>Bugzilla has two nice summaries for showing this information, in addition to the default bug status page. I’ll use 571 as the example tracker bug, since we’ve made 1190 block it—which leads to a more nteresting graph. The <a href="http://defect.opensolaris.org/bz/showdependencytree.cgi?id=571&hide_resolved=1" class="broken_link" rel="nofollow">tree view</a> is a useful and succinct representation, where indentation shows dependencies. The <a href="http://defect.opensolaris.org/bz/showdependencygraph.cgi?id=571" class="broken_link" rel="nofollow">graph view</a> is a bit unwieldy for this bug, but might be useful if the tree view became too long.</p>
<p>A useful technique if you’re trying to bring a release together.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Bugzilla" rel="tag nofollow" class="broken_link">Bugzilla</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>It Must Be Time for Tea: Converting Projects to Mercurialhttps://blueslugs.com/2008/04/10/it-must-be-time-for-tea-converting-projects-to-mercurial/Thu, 10 Apr 2008 16:49:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/04/10/it-must-be-time-for-tea-converting-projects-to-mercurial/<p class="link">
<a href="http://blogs.sun.com/kupfer/entry/converting_projects_to_mercurial" >It Must Be Time for Tea: Converting Projects to Mercurial</a>
</p>
<p class="extended">
Mike talks about helping projects move from TeamWare to Mercurial. Large projects may have been running a project gate ("branch") for a year or more, and with a clear schedule in mind. Minimizing the cost of the main gate switching source code managemen
</p>Intel® Software Network Blogs » Making access to memory faster in OpenSolaris (and Core2)https://blueslugs.com/2008/04/04/intel-software-network-blogs-making-access-to-memory-faster-in-opensolaris-and-core2/Sat, 05 Apr 2008 03:22:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/04/04/intel-software-network-blogs-making-access-to-memory-faster-in-opensolaris-and-core2/<p class="link">
<a href="http://softwareblogs.intel.com/2008/04/04/making-access-to-memory-faster-in-opensolaris-and-core2/" class="broken_link" rel="nofollow">Intel® Software Network Blogs » Making access to memory faster in OpenSolaris (and Core2)</a>
</p>
<p class="extended">
Dave reports on performance improvements in OpenSolaris for memcpy(), memmove(), and memset() on Core2-based systems.
</p>The View from the Moon: Finding bugs in python code, using DTracehttps://blueslugs.com/2008/04/04/the-view-from-the-moon-finding-bugs-in-python-code-using-dtrace/Sat, 05 Apr 2008 02:59:13 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/04/04/the-view-from-the-moon-finding-bugs-in-python-code-using-dtrace/<p class="link">
<a href="http://blogs.sun.com/dp/entry/finding_bugs_in_python_code" >The View from the Moon: Finding bugs in python code, using DTrace</a>
</p>
<p class="extended">
We've been using DTrace to check performance as we develop image packaging; here Dan reviews one of his recent wins. Because DTrace makes it extremely cheap to check for algorithmic mistakes, and the yields of correcting such mistakes are so high, it's c
</p>The View from the Moon: cr.opensolaris.org gets an ATOM feedhttps://blueslugs.com/2008/03/24/the-view-from-the-moon-cropensolarisorg-gets-an-atom-feed/Mon, 24 Mar 2008 21:59:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/03/24/the-view-from-the-moon-cropensolarisorg-gets-an-atom-feed/<p class="link">
<a href="http://blogs.sun.com/dp/entry/cr_opensolaris_org_gets_an" >The View from the Moon: cr.opensolaris.org gets an ATOM feed</a>
</p>
<p class="extended">
Dan extends code review to provide updates via syndication, which is another step to a virtual hallway for OpenSolaris development. Sweet.
</p>Fiscally Conservative | Musingshttps://blueslugs.com/2008/03/16/fiscally-conservative-musings/Mon, 17 Mar 2008 03:22:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/03/16/fiscally-conservative-musings/<p class="link">
<a href="http://golem.ph.utexas.edu/~distler/blog/archives/001635.html" >Fiscally Conservative | Musings</a>
</p>
<p class="extended">
Budget deficit and GDP growth compared by party across administrations, since 1930.
</p>School Rankings for Writing OpenCourseWarehttps://blueslugs.com/2008/03/11/school-rankings-for-writing-opencourseware/Wed, 12 Mar 2008 03:16:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/03/11/school-rankings-for-writing-opencourseware/<p class="link">
<a href="http://degreedirectory.org/articles/School_Rankings_for_Writing_OpenCourseWare.html" >School Rankings for Writing OpenCourseWare</a>
</p>
<p class="extended">
Article listing a bunch of online courseware on writing topics.
</p>Election Candidates at OpenSolaris.orghttps://blueslugs.com/2008/03/11/election-candidates-at-opensolarisorg/Wed, 12 Mar 2008 00:10:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/03/11/election-candidates-at-opensolarisorg/<p class="link">
<a href="http://www.opensolaris.org/os/community/ogb/OGB_Election_Status/election_candidates/" class="broken_link" rel="nofollow">Election Candidates at OpenSolaris.org</a>
</p>
<p class="extended">
Currently displaying the candidates for the 2008 election. Affiliations, bios, position statements, and podcasts.
</p>The Open Solaris Governing Board 2.0 – Elections and Interviews – Barton's Bloghttps://blueslugs.com/2008/03/11/the-open-solaris-governing-board-20-elections-and-interviews-bartons-blog/Wed, 12 Mar 2008 00:02:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/03/11/the-open-solaris-governing-board-20-elections-and-interviews-bartons-blog/<p class="link">
<a href="http://blogs.sun.com/barton808/entry/the_open_solaris_governing_board" >The Open Solaris Governing Board 2.0 – Elections and Interviews – Barton’s Blog</a>
</p>
<p class="extended">
Barton intends to interview as many of this year’s OGB candidates as he can.
</p>OpenSolaris Polling Open [on Simon Phipps, SunMink]https://blueslugs.com/2008/03/11/opensolaris-polling-open-on-simon-phipps-sunmink/Tue, 11 Mar 2008 18:17:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/03/11/opensolaris-polling-open-on-simon-phipps-sunmink/<p class="link">
<a href="http://blogs.sun.com/webmink/entry/opensolaris_polling_open" >OpenSolaris Polling Open [on Simon Phipps, SunMink]</a>
</p>
<p class="extended">
Simon explains the two proposed amendments, his candidacy, and a list of candidates "committed to asking Sun’s management to communicate regularly and clearly with the OpenSolaris community".
</p>pkg(5): Reverse proxying your depot with Apache HTTPDhttps://blueslugs.com/2008/02/21/pkg5-reverse-proxying-your-depot-with-apache-httpd/Thu, 21 Feb 2008 23:52:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/02/21/pkg5-reverse-proxying-your-depot-with-apache-httpd/<p>As part of the changes to get Developer Preview 2 ready, we decided to rejigger the HTTP handling on <a href="http://pkg.opensolaris.org/" ><code>pkg.opensolaris.org</code></a> so that we could have more options as more people attempt to use the early versions of image packaging. Previously, we ran <code>pkg.depotd</code> directly on port 80, in its read-only mode; now we use Apache HTTPD to listen on port 80, and use <code>mod_proxy</code> to proxy those incoming requests to a <code>pkg.depotd</code> instance listening on a separate port. With a couple of different approaches</p>
<p class="note">
Proxying and rewriting is one of those endlessly fun activities that somehow actually ends up being productive. Last time, proxying fun led <a href="http://whacked.net/" >Steve</a> and I to fiddling around such that we ended up with proxy and rewrite patterns to enable the <a href="http://opensolaris.org/os/project/portals" >country portals</a> for <a href="http://opensolaris.org" >opensolaris.org</a>.
</p>
<p>If you want to share the top-level component of your URL space, you’ll need to watch <code>pkg</code>(5) developments, as you have to map the list of operations one-by-one—and I know there are some new operations forthcoming. That would involve adding something like the following to a VirtualHost directive in your Apache configuration.</p>
<pre>ProxyRequests On
Redirect /index.html http://pkg.opensolaris.org/status
ProxyPass /abandon http://pkg.opensolaris.org:10000/abandon
ProxyPass /add http://pkg.opensolaris.org:10000/add
ProxyPass /catalog http://pkg.opensolaris.org:10000/catalog
ProxyPass /close http://pkg.opensolaris.org:10000/close
ProxyPass /feed http://pkg.opensolaris.org:10000/feed
ProxyPass /file http://pkg.opensolaris.org:10000/file
ProxyPass /filelist http://pkg.opensolaris.org:10000/filelist
ProxyPass /manifest http://pkg.opensolaris.org:10000/manifest
ProxyPass /open http://pkg.opensolaris.org:10000/open
ProxyPass /search http://pkg.opensolaris.org:10000/search
ProxyPass /versions http://pkg.opensolaris.org:10000/versions
ProxyPass /css http://pkg.opensolaris.org:10000/css
ProxyPass /logo http://pkg.opensolaris.org:10000/logo
ProxyPass /icon http://pkg.opensolaris.org:10000/icon
ProxyPass /status http://pkg.opensolaris.org:10000/
</pre>
<p>Configuring your server in this fashion allows you to mix an image packaging server in with your other site content. You can easily deliver static content alongside your depot, for example.</p>
<p>If you don’t mind pushing your package repository down one level in your URL space, then the above simplifies to</p>
<pre>ProxyRequests On
ProxyPass /pkg/ http://pkg.opensolaris.org:10000/
</pre>
<p>(which should be a hint on how to create a repository farm under a single URL). To use the latter, you would use <code>pkg</code>(1)’s <code>image-create</code> subcommand</p>
<pre>$ pkg image-create -F -a mypkgs.com=http://www.myserver.com/pkg /path/to/image
</pre>
<p>to connect your image to your reverse-proxied packaging depot.</p>
<p class="note">
In the two examples above, you should of course replace machine names like <code>pkg.opensolaris.org</code> and port numbers like 10000 with values appropriate to your own installation.
</p>
<p>Happy proxied package serving!</p>
<p class="note">
Feel free to share your alternative configurations or approaches with other HTTP servers here, or on <code>pkg-discuss@opensolaris.org</code>.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> <a href="http://www.technorati.com/tag/httpd" rel="tag nofollow" class="broken_link">httpd</a> ]
</p>Indiana: More ways to get to Preview 2https://blueslugs.com/2008/02/12/indiana-more-ways-to-get-to-preview-2/Wed, 13 Feb 2008 01:51:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/02/12/indiana-more-ways-to-get-to-preview-2/<p class="note">
As I did for Preview 1, I’ll collect links to mirror sites here, as well as on the project page.
</p>
<p>So we just released the second <a href="http://opensolaris.org/os/project/indiana/" >Indiana</a> preview ISO, which you can get from the following locations:</p>
<ul>
<li><a href="http://dlc.sun.com/osol/indiana/downloads/current/in-preview2.iso" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/icon/do-office-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>dlc.sun.com</code></a>, and</li>
<li><a href="http://www.genunix.org/distributions/indiana/in-preview2.iso" ><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>genunix.org</code></a>,</li>
<li><a href="ftp://ftp.df.lth.se/pub/indiana/current/in-preview2.iso"> <img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" />via FTP from <code>ftp.df.lth.se</code></a>, or</li>
<li><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" />via HTTP from <code>osol.acm.jhu.edu</code>.</li>
<li><a href="http://dlc.sun.com/torrents/info/in-preview2.iso.torrent" class="broken_link" rel="nofollow"><img src="https://blueslugs.com/wordpress/2010/05theoretical_orange_24.png" border="0" title="" alt="" /> via BitTorrent</a>.</li>
</ul>
<p>We had a lot of downloads for Preview 1; if you’re interested in being a mirror, please let me know. (Indiana remains completely redistributable.) We’re using a bigger download complex this time, but every mirror helps.</p>
<p>If you already downloaded and installed Preview 1, it’s more complete, easier, and probably faster to update directly using image packaging: see the <a href="http://opensolaris.org/os/project/indiana/resources/update_guidelines/" >update guidelines</a> on <a href="http://opensolaris.org" >opensolaris.org</a>. These instructions use ZFS and <code>pkg</code>(5) to safely update a clone of your installed system, and then switch to that on a system reboot.</p>
<p><strong>Update 1</strong>: My thanks to Tobias Lundquist, who’s once again mirrored via FTP (Internet 2) in Sweden.</p>
<p><strong>Update 2</strong>: My thanks to <code>trisk</code>, who’s once again put up an HTTP mirror (Internet 2) on the East Coast of the USA.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/indiana" rel="tag nofollow" class="broken_link">indiana</a> ]
</p>all200.gif (GIF Image, 1278x8425 pixels)https://blueslugs.com/2008/01/31/all200gif-gif-image-1278x8425-pixels/Thu, 31 Jan 2008 17:46:24 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/01/31/all200gif-gif-image-1278x8425-pixels/<p class="link">
<a href="http://www.astro.princeton.edu/~mjuric/universe/all200.gif" class="broken_link" rel="nofollow">all200.gif (GIF Image, 1278×8425 pixels)</a>
</p>
<p class="extended">
Graph of distances from the centre of the Earth, outwards.
</p>OpenSolaris: Finding work(ers)https://blueslugs.com/2008/01/23/opensolaris-finding-workers/Wed, 23 Jan 2008 20:36:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/01/23/opensolaris-finding-workers/<p>A relatively new forum on <a href="http://opensolaris.org" >opensolaris.org</a> is <a href="http://mail.opensolaris.org/pipermail/opensolaris-jobs" class="broken_link" rel="nofollow"><code>opensolaris-jobs</code></a>, a community-moderated list where OpenSolaris-related positions can be posted and which should give access to the people most passionate, most expert, and most interested in making OpenSolaris work their job. In the past few weeks, there’s been two postings you might find interesting:</p>
<ul>
<li><a href="http://mail.opensolaris.org/pipermail/opensolaris-jobs/2008-January/000003.html" class="broken_link" rel="nofollow"><img
src="http://blueslugs.com/wordpress/2010/05gem_clip_orange_24.png" border="0" title="" alt="" /> Networking summer interns, Sun Microsystems</a>, and</li>
<li><a href="http://mail.opensolaris.org/pipermail/opensolaris-jobs/2008-January/000004.html" class="broken_link" rel="nofollow"><img
src="http://blueslugs.com/wordpress/2010/05gem_clip_orange_24.png" border="0" title="" alt="" /> Senior kernel developers, Intel</a>.</li></li>
</ul>
<p>Have a look, or—if you’re hiring for OpenSolaris knowledge—get in touch with great candidates.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/jobs" rel="tag nofollow" class="broken_link">jobs</a> ]
</p>Create your own OpenSolaris IPS repository in a Weekend! : Michal Pryc's Webloghttps://blueslugs.com/2008/01/22/create-your-own-opensolaris-ips-repository-in-a-weekend-michal-prycs-weblog/Tue, 22 Jan 2008 23:29:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/01/22/create-your-own-opensolaris-ips-repository-in-a-weekend-michal-prycs-weblog/<p class="link">
<a href="http://blogs.sun.com/migi/entry/create_your_own_opensolaris_ips2" >Create your own OpenSolaris IPS repository in a Weekend! : Michal Pryc’s Weblog</a>
</p>
<p class="extended">
Michal collects his image packaging screencasts, which constitute a six-part series on how to get image packaging up and running and ready to publish your own software packages.
</p>mozdev.org – vimperator: indexhttps://blueslugs.com/2008/01/17/mozdevorg-vimperator-index/Fri, 18 Jan 2008 00:18:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/01/17/mozdevorg-vimperator-index/<p class="link">
<a href="http://vimperator.mozdev.org/" >mozdev.org – vimperator: index</a>
</p>
<p class="extended">
A Firefox extension which wraps the browser in a vi/vim-like interface. Intriguing.
</p>10 Steps to Caiman Development on Indiana : Fore!https://blueslugs.com/2008/01/11/10-steps-to-caiman-development-on-indiana-fore/Fri, 11 Jan 2008 21:28:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2008/01/11/10-steps-to-caiman-development-on-indiana-fore/<p class="link">
<a href="http://blogs.sun.com/dminer/entry/10_steps_to_caiman_development" >10 Steps to Caiman Development on Indiana : Fore!</a>
</p>
<p class="extended">
With a few easy pkg(5) operations, you can add the tools needed to use the Developer Preview as a development system. Dave gives the step-by-step instructions.
</p>[sfwnv-discuss] draft webrev for star integration into SFWNVhttps://blueslugs.com/2007/12/18/sfwnv-discuss-draft-webrev-for-star-integration-into-sfwnv/Tue, 18 Dec 2007 17:18:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/12/18/sfwnv-discuss-draft-webrev-for-star-integration-into-sfwnv/<p class="link">
<a href="http://mail.opensolaris.org/pipermail/sfwnv-discuss/2007-December/002138.html" class="broken_link" rel="nofollow">[sfwnv-discuss] draft webrev for star integration into SFWNV</a>
</p>
<p class="extended">
Darren offers up a webrev showing how straightforward the "technical" part of integrating a component into SFW is.
</p>Stopping Firefox's restore session dialoghttps://blueslugs.com/2007/12/06/stopping-firefoxs-restore-session-dialog/Thu, 06 Dec 2007 17:47:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/12/06/stopping-firefoxs-restore-session-dialog/<p>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.</p>
<ol>
<li>Enter <code>about:config</code> into the URL field.</li>
<li>Enter <code>sessionstore</code> into the displayed filter field and press Enter.</li>
<li>Double-click the value cell of the <code>browser.sessionstore.enabled</code> row, so that the value field reads <code>False</code>.</li>
<li>Restart Firefox. One click saved.</li>
</ol>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Firefox" rel="tag nofollow" class="broken_link">Firefox</a> ]
</p>Busted Tees – Indiana Pwnshttps://blueslugs.com/2007/11/27/busted-tees-indiana-pwns/Wed, 28 Nov 2007 07:38:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/27/busted-tees-indiana-pwns/<p class="link">
<a href="http://www.bustedtees.com/shirt/indianapwns/male" class="broken_link" rel="nofollow">Busted Tees – Indiana Pwns</a>
</p>
<p class="extended">
Tempting…
</p>White-tailed Kitehttps://blueslugs.com/2007/11/27/white-tailed-kite/Tue, 27 Nov 2007 19:31:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/27/white-tailed-kite/<p class="link">
<a href="http://www.mbr-pwrc.usgs.gov/id/framlst/i3280id.html" >White-tailed Kite</a>
</p>
<p class="extended">
Maybe what I saw at Ano Nuevo SR last week.
</p>Tokyo Cabinet: a modern implementation of DBMhttps://blueslugs.com/2007/11/27/tokyo-cabinet-a-modern-implementation-of-dbm/Tue, 27 Nov 2007 16:30:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/27/tokyo-cabinet-a-modern-implementation-of-dbm/<p class="link">
<a href="http://tokyocabinet.sourceforge.net/" >Tokyo Cabinet: a modern implementation of DBM</a>
</p>
<p class="extended">
"Tokyo Cabinet is a library of routines for managing a database. The database is a simple data file containing records, each is a pair of a key and a value. Every key and value is serial bytes with variable length. Both binary data and character string ca
</p>Coastal Thanksgivinghttps://blueslugs.com/2007/11/27/coastal-thanksgiving/Tue, 27 Nov 2007 09:01:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/27/coastal-thanksgiving/<p>For the Thanksgiving holiday this year, we decided to explore San Mateo County’s section of the Pacific Coast. Dina settled on <a href="http://www.parks.ca.gov/?page_id=536" >Butano State Park</a> as our base, which is mostly made of a redwoods-forested canyon, south of Pescadero and on the western slopes of the Santa Cruz Mountains. We arrived in the late afternoon, having taken CA-84 through Woodside to San Gregario, and then heading south on CA-1.</p>
<p>We arrived late enough that, after setting up camp, it soon became too dark for even a short hike. It’s been cool on the Peninsula this fall, and it felt cool in the morning. We were all grateful when, with temperatures between 30 – 40 °F (0 – 5°C), Dina made oatmeal for breakfast.</p>
<p><img src="http://ftr.blueslugs.com/2007/11/p-oatmeal-071122.jpg" alt="Waiting for morning oatmeal"></p>
<p>One of the first things I noticed—and probably evident from the use of the flash in the above picture—is how dimmed the light on the forest floor is. The cool, dim environment appears to let some pretty sizeable mushrooms thrive; this specimen’s cap is about 2.5″ (63 mm) in diameter, although apparently there are bigger species around. The ribbon-like growths show a bit of élan.</p>
<p><img src="http://ftr.blueslugs.com/2007/11/p-mushroom-071122.jpg" alt="Mushroom at redwood base"></p>
<p>Ben captured an interesting diffracted view of the forest around us:</p>
<p><img src="http://ftr.blueslugs.com/2007/11/p-forest-071122.jpg" alt="Ben’s diffracted forest"></p>
<p>Out of the dimness, we drove down to <a href="http://www.parks.ca.gov/default.asp?page_id=523" >Año Neuvo State Reserve</a>, and worked off a little energy in our walk out to the dunes and possible elephant seals.</p>
<p><img src="http://ftr.blueslugs.com/2007/11/p-running-071122.jpg" alt="Running at Año Nuevo"></p>
<p>As we walked, I watched a raptor maintain a position for seconds at a time, presumably as part of its hunting method. Here are three frames, over a total of 8 seconds, from a fair distance away.</p>
<p><img src="http://ftr.blueslugs.com/2007/11/p-stationkeeping-071122.jpg" alt="Stationkeeping raptor"></p>
<p>The mating season for elephant seals doesn’t begin for a few weeks yet, so that apparently makes these early arrivals juvenile females that won’t actually participate directly.</p>
<p><img src="http://ftr.blueslugs.com/2007/11/p-elephantseals-071122.jpg" alt="Juvenile female elephant seals"></p>
<p>We explored <a href="http://www.parks.ca.gov/?page_id=522" >Pescadero State Beach</a> and the <a href="http://www.parks.ca.gov/default.asp?page_id=533" >Pigeon Point Lighthouse</a>, but the formation revealed at Pebble Beach between the two was striking. Apparently, the ocean (and already pulled pebbles) knock out other pebbles and slowly widen the sockets.</p>
<p><img src="http://ftr.blueslugs.com/2007/11/p-pebbleform-071122.jpg" alt="Section of formation at Pebble Beach SB"></p>
<p>We went back for another crisp evening and chilly morning at Butano, revisited a few of the sites on Friday, and headed back—with a detour through Gilroy to sample a bit of Black Friday—in time for a dinner at home.</p>
<p class="note">
Photos taken with a Panasonic Lumix LX-2 and with a Canon PowerShot S2 IS.
</p>NOAA Still Sees Above Average Temperatures for Most of the U.S. and Below Normal Precipitation Across the Southhttps://blueslugs.com/2007/11/24/noaa-still-sees-above-average-temperatures-for-most-of-the-us-and-below-normal-precipitation-across-the-south/Sun, 25 Nov 2007 06:21:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/24/noaa-still-sees-above-average-temperatures-for-most-of-the-us-and-below-normal-precipitation-across-the-south/<p class="link">
<a href="http://www.noaanews.noaa.gov/stories2007/20071115_winteroutlook.html" >NOAA Still Sees Above Average Temperatures for Most of the U.S. and Below Normal Precipitation Across the South</a>
</p>
<p class="extended">
The 2007 winter outlook: a La Nina year, with typical temperatures, drier than average along the California coast.
</p>number 9 : Dvorak on Solarishttps://blueslugs.com/2007/11/20/number-9-dvorak-on-solaris/Tue, 20 Nov 2007 16:48:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/20/number-9-dvorak-on-solaris/<p class="link">
<a href="http://number9.hellooperator.net/articles/2007/10/16/dvorak-on-solaris" class="broken_link" rel="nofollow">number 9 : Dvorak on Solaris</a>
</p>
<p class="extended">
Rasputnik uses xmodmap to remap to a Dvorak layout.
</p>Don't forget the little peoplehttps://blueslugs.com/2007/11/20/dont-forget-the-little-people/Tue, 20 Nov 2007 16:15:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/20/dont-forget-the-little-people/<p>I just want to mention that I knew <a href="http://blogs.sun.com/alanbur/" >Alan</a> before his <a href="http://www.channel4.com/news/articles/science_technology/facebook+data+protection+row/1060467" >current fifteen minutes</a>.</p>pkg(5): Fueling the next stepshttps://blueslugs.com/2007/11/05/pkg5-fueling-the-next-steps/Mon, 05 Nov 2007 22:11:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/05/pkg5-fueling-the-next-steps/<p>Most Fridays, I spend the two hours before lunch assisting at our co-operative daycare. The hour and a half before are pretty good thinking hours, most of which lately have been spent on <a href="http://opensolaris.org/os/project/pkg/" >packaging</a>. As the year passes, and we move into fall here in Northern California, the thinking’s been best assisted by having a brief, and warming, snack.</p>
<p><img src="https://blueslugs.com/mediacast/p-pkg-still-life.png" alt="Still life with packaging" title=""></p>
<p>The notes being written are about some of the points raised about the use of hashing, but then I buckled down and wrote an outline for our ARC inception materials, which will probably take more than one or two Friday sessions.</p>
<p class="note">
Location: Café Borrone, Menlo Park, California.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>Indiana: More ways to get ithttps://blueslugs.com/2007/11/02/indiana-more-ways-to-get-it/Sat, 03 Nov 2007 01:55:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/02/indiana-more-ways-to-get-it/<p>So there are a few ways to get a copy of the <a href="http://opensolaris.org/os/project/indiana/" >Indiana</a> preview ISO:</p>
<ul>
<li><a href="http://dlc.sun.com/osol/indiana/downloads/current/in-preview.iso" class="broken_link" rel="nofollow"><img class="icon-inline" src="https://blueslugs.com/icon/do-office-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>dlc.sun.com</code></a>,</li>
<li><a href="http://www.genunix.org/distributions/indiana/in-preview.iso" ><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>genunix.org</code></a>,</li>
<li><img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via HTTP from <code>osol.acm.jhu.edu</code>,</li>
<li><a href="ftp://ftp.df.lth.se/pub/indiana/current/in-preview.iso"> <img class="icon-inline" src="https://blueslugs.com/icon/do-his-blue-32.png" border="0" title="" alt="" /> via FTP from <code>ftp.df.lth.se</code></a>, or</li>
<li><a href="http://dlc.sun.com/osol/indiana/downloads/current/in-preview.iso.torrent" class="broken_link" rel="nofollow"><img class="icon-inline" src="https://blueslugs.com/icon/dr-theoretical-blue-32.png" border="0" title="" alt="" /> via BitTorrent</a>.</li>
</ul>
<p>Both our mirrors are in Northern California, so—since it’s a completely redistributable set of software—if you’re interested in being a mirror (even in California), please let me know. If you’re a torrent fan, come join <a href="https://blueslugs.com/" >me</a> and seed.</p>
<p><strong>Update 1</strong>: My thanks to <code>trisk</code>, who’s put up a fast mirror (Internet 2) on the East Coast of the USA.</p>
<p><strong>Update 2</strong>: My thanks to Tobias Lundquist, who’s put up an FTP mirror (Internet 2) in Sweden.</p>
<p class="note">
Icon Design by IconBuffet (from “Durango Office” and “Durango Research”).
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/indiana" rel="tag nofollow" class="broken_link">indiana</a> ]
</p>mozilla.org – Code Review FAQhttps://blueslugs.com/2007/11/02/mozillaorg-code-review-faq/Fri, 02 Nov 2007 22:34:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/02/mozillaorg-code-review-faq/<p class="link">
<a href="http://www.mozilla.org/hacking/code-review-faq.html" >mozilla.org – Code Review FAQ</a>
</p>
<p class="extended">
Mozilla FAQ around their code review process, which has a super reviewer much like the RTI advocate model we use.
</p>RFC 3852 Cryptographic Message Syntax (CMS)https://blueslugs.com/2007/11/01/rfc-3852-cryptographic-message-syntax-cms/Fri, 02 Nov 2007 03:56:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/11/01/rfc-3852-cryptographic-message-syntax-cms/<p class="link">
<a href="http://tools.ietf.org/html/rfc3852" >RFC 3852 Cryptographic Message Syntax (CMS)</a>
</p>
<p class="extended">
"This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content."
</p>Indiana: VESA if you need ithttps://blueslugs.com/2007/10/31/indiana-vesa-if-you-need-it/Thu, 01 Nov 2007 05:26:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/31/indiana-vesa-if-you-need-it/<p>Over the past week, as we kept reassembling the <a href="http://opensolaris.org/os/project/caiman/Constructor" >distro constructor</a>, <a href="http://opensolaris.org/os/project/pkg/" >image packaging</a>, and <a href="http://opensolaris.org/os/project/caiman/Slim_Install" >slim install</a>, we tested installs on a bunch of laptops. This manual operation let me rehearse how to get things working if the <a href="http://opensolaris.org/os/project/indiana/resources/getit/" >Preview LiveCD</a> doesn’t have a graphics driver that will work. So: here’s the VESA workaround.</p>
</p>
<ol>
<li><strong>Boot text mode.</strong> One of the non-default lines in the GRUB menu should say “text”—pick that one.</li>
<li><strong>Login as <code>jack</code>.</strong> User is “jack”, password is “jack”.</li>
<li><strong>Generate a representative <code>xorg.conf</code>.</strong> Become <code>root</code> and have <code>Xorg</code> generate an initial configuration. The root password is “opensolaris”. (Enjoy that `root`’s default shell is ‘bash’ for a bit.)
<pre>$ su
Password:</li>
</ol>
<h1 id="usrx11binxorg--configure">/usr/X11/bin/Xorg -configure</h1>
<p>…
</pre> This procedure should create</p>
<pre><code>`/jack/xorg.conf.new`.
</code></pre>
<ol start="4">
<li>
<p><strong>Change the driver.</strong> As <code>root</code>, you’ll continue by editing that <code>xorg.conf.new</code> file in <code>vi</code>(1). Search for the Device section, and modify the Driver line to
<pre>Driver “vesa”
</pre></p>
</li>
<li>
<p><strong>Make it go.</strong> Stay <code>root</code> and hand-launch GNOME.
<pre># /usr/X11/bin/xinit /usr/bin/dbus-launch gnome-session – <br>
/usr/X11/bin/Xorg -config /jack/xorg.conf.new :0
</pre></p>
</li>
<li>
<p><strong>Launch the installer.</strong> Bring up a terminal, and invoke the installer, by typing <code>install-lan &</code>.</p>
</li>
</ol>
<p>If your install fails, please file a bug report at <a href="http://defect.opensolaris.org/" class="broken_link" rel="nofollow">defect.opensolaris.org</a>. If it succeeds, but graphics doesn’t work, you can follow the same steps, but you’ll have to edit the GRUB entry. (Roughly, type ‘e’, add “-s” to the end of the line with <code>kernel/unix</code>, and log in with the new root password you set during install. I haven’t tested this portion—let me know if it fails.)</p>
<p>Last night, I had to do this for my trusty VAIO T370P, but tonight it’s fine:</p>
<p><a href="https://blueslugs.com/mediacast/p-preview-shot-20071031.png" ><img
src="https://blueslugs.com/mediacast/p-preview-thumb-20071031.png" alt="Developer
Preview" title="" /></a></p>
<p>Please let us know how it goes.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/indiana" rel="tag nofollow" class="broken_link">indiana</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>Dario Taraborelli: The beauty of LaTeXhttps://blueslugs.com/2007/10/25/dario-taraborelli-the-beauty-of-latex/Fri, 26 Oct 2007 03:13:06 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/25/dario-taraborelli-the-beauty-of-latex/<p class="link">
<a href="http://nitens.org/taraborelli/latex" >Dario Taraborelli: The beauty of LaTeX</a>
</p>
<p class="extended">
Nice summary and short collection of links.
</p>Open Source Unleashed: A pot for Sun's open source potpourri?https://blueslugs.com/2007/10/19/open-source-unleashed-a-pot-for-suns-open-source-potpourri/Fri, 19 Oct 2007 21:17:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/19/open-source-unleashed-a-pot-for-suns-open-source-potpourri/<p class="link">
<a href="http://alexfletcher.typepad.com/all_bets_off/2007/10/a-pot-for-suns-.html" >Open Source Unleashed: A pot for Sun’s open source potpourri?</a>
</p>
<p class="extended">
I believe Alex is looking for something more unified or coherent across Sun’s open source communities, but I’m not sure exactly what. (Reread later, maybe?)
</p>pkg(5): Talking in the redwoods, talking on the beach, …https://blueslugs.com/2007/10/13/pkg5-talking-in-the-redwoods-talking-on-the-beach/Sat, 13 Oct 2007 20:55:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/13/pkg5-talking-in-the-redwoods-talking-on-the-beach/<p>Danek and I are at the <a href="http://www.opensolaris.org/os/project/indiana/summit/" class="broken_link" rel="nofollow">2007 OpenSolaris Developer Summit</a> at UC Santa Cruz, talking about and, I hope, later demonstrating the image packaging prototype so far. I gave a brief overview of the project’s goals and status, and mentioning some of the unmentionables we’ve encountered—some particularly undisciplined configuration files, some apparently important but encumbered drivers, and so on.</p>
<p><a href="https://blueslugs.com/mediacast/t-pkg-summit-oct-2007.pdf" ><img src="http://blueslugs.com/wordpress/2010/05horn-rimmed_orange_24.png" border="0" title="" alt="" /> View the slides</a></p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> <a href="http://www.technorati.com/tag/UCSC" rel="tag nofollow" class="broken_link">UCSC</a> opensolaris_summit_2007 ]
</p>Predictable – pkg(5): Talking in the redwoods, talking on the beach, …https://blueslugs.com/2007/10/13/predictable-pkg5-talking-in-the-redwoods-talking-on-the-beach/Sat, 13 Oct 2007 19:59:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/13/predictable-pkg5-talking-in-the-redwoods-talking-on-the-beach/<p class="link">
<a href="http://blueslugs.com/entry/pkg_5_talking_in_the" >Predictable – pkg(5): Talking in the redwoods, talking on the beach, …</a>
</p>
<p class="extended">
I’ve been at the 2007 OpenSolaris Developer Summit, presenting and discussing where we are in the current image packaging prototype.
</p>"Why Programmers suck at Picking Colors" (Stefano's Linotype)https://blueslugs.com/2007/10/03/why-programmers-suck-at-picking-colors-stefanos-linotype/Thu, 04 Oct 2007 05:25:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/03/why-programmers-suck-at-picking-colors-stefanos-linotype/<p><a href="http://www.betaversion.org/~stefano/linotype/news/108/" class="broken_link" rel="nofollow">“Why Programmers suck at Picking Colors” (Stefano’s Linotype)</a></p>
<p>A review leading to a NASA colour picker implementing selection based on the Munsell colour system.</p>Indispensible?https://blueslugs.com/2007/10/02/indispensible/Tue, 02 Oct 2007 21:47:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/02/indispensible/<p>Last October, <a href="http://www.nytimes.com/2007/10/02/business/02yacht.html" ><em>the New York Times</em></a> was considering extreme yachts:</p>
<blockquote>
<p>“Today, a megayacht is indispensable,†said Olivier Milliex, head of yacht finance at the Dutch bank ING. “It’s not like 15 years ago, when a yacht was a luxury item.â€
Hmm. I don’t have one, so I think “indispensible” isn’t the right word. Perhaps “megayacht ownership is assumed”?</p>
</blockquote>OpenSolaris New User FAQ – Genunixhttps://blueslugs.com/2007/10/02/opensolaris-new-user-faq-genunix/Tue, 02 Oct 2007 16:56:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/02/opensolaris-new-user-faq-genunix/<p class="link">
<a href="http://www.genunix.org/wiki/index.php/OpenSolaris_New_User_FAQ" >OpenSolaris New User FAQ – Genunix</a>
</p>
<p class="extended">
Brian’s led an effort to produce a FAQ targetted at new users of OpenSolaris. Peruse, contribute, etc.
</p>Brian Marick – Writingshttps://blueslugs.com/2007/10/01/brian-marick-writings/Mon, 01 Oct 2007 18:58:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/10/01/brian-marick-writings/<p class="link">
<a href="http://testing.com/writings.html" >Brian Marick – Writings</a>
</p>
<p class="extended">
Brian writes on a variety of software development topics. His paper, "How to misuse code coverage", provides a good explanation of what you do and don’t know after a code coverage assessment.
</p>pkg(5): project opens, development continueshttps://blueslugs.com/2007/09/27/pkg5-project-opens-development-continues/Fri, 28 Sep 2007 00:21:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/27/pkg5-project-opens-development-continues/<p>I asked my teammates to take a brief break from prototyping, and we jumped from a collection of systems inside Sun to the clean project hosting at <a href="http://opensolaris.org" >opensolaris.org</a>.</p>
<p>As the migration registers, you should be able to access</p>
<ul>
<li>the project web site at <a href="http://opensolaris.org/os/project/pkg/" ><a href="http://opensolaris.org/os/project/pkg/">http://opensolaris.org/os/project/pkg/</a></a>,</li>
<li>the Mercurial repository via
<pre>$ hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate pkg-gate
</li>
</ul>
<p></pre></p>
<ul>
<li>
<p>the same source via OpenGrok (using the ‘pkg’ project as a filter) at <a href="http://src.opensolaris.org/" class="broken_link" rel="nofollow"><a href="http://src.opensolaris.org/">http://src.opensolaris.org/</a></a>, and</p>
</li>
<li>
<p>have a discussion on <code>pkg-discuss@opensolaris.org</code>.</p></p>
</li> </ul>
<p>If you’re interested, please come check it out.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>
</li>
</ul>Image Packaging System at OpenSolaris.orghttps://blueslugs.com/2007/09/27/image-packaging-system-at-opensolarisorg/Fri, 28 Sep 2007 00:13:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/27/image-packaging-system-at-opensolarisorg/<p><a href="http://opensolaris.org/os/project/pkg/" >Image Packaging System at OpenSolaris.org</a></p>
<p>Project page and links to related resources for development.</p>Predictable – pkg(1): project opens, development continueshttps://blueslugs.com/2007/09/27/predictable-pkg1-project-opens-development-continues/Fri, 28 Sep 2007 00:12:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/27/predictable-pkg1-project-opens-development-continues/<p><a href="http://blueslugs.com/entry/pkg_1_project_opens_development" >Predictable – pkg(1): project opens, development continues</a></p>
<p>Join the development. Or just kibitz.</p>What's new in Solaris Install? : Sarah's Excellent Adventures in Solarishttps://blueslugs.com/2007/09/24/whats-new-in-solaris-install-sarahs-excellent-adventures-in-solaris/Mon, 24 Sep 2007 18:08:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/24/whats-new-in-solaris-install-sarahs-excellent-adventures-in-solaris/<p><a href="http://blogs.sun.com/sarahsblog/entry/what_s_new_in_solaris" >What’s new in Solaris Install? : Sarah’s Excellent Adventures in Solaris</a></p>
<p>Sarah has the latest screenshots from the Caiman installer project for OpenSolaris.</p>The Engine Room – Rethinking Patchinghttps://blueslugs.com/2007/09/11/the-engine-room-rethinking-patching/Tue, 11 Sep 2007 18:09:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/11/the-engine-room-rethinking-patching/<p><a href="http://blogs.sun.com/barts/entry/rethinking_patching" >The Engine Room – Rethinking Patching</a></p>
<p>Bart on the complexity imposed by separating patching from packaging.</p>Yahoo! UI Library: Rich Text Editorhttps://blueslugs.com/2007/09/09/yahoo-ui-library-rich-text-editor/Sun, 09 Sep 2007 17:29:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/09/yahoo-ui-library-rich-text-editor/<p><a href="http://developer.yahoo.com/yui/editor/" >Yahoo! UI Library: Rich Text Editor</a></p>
<p>YUI delivers a JavaScript-based editor suitable for reuse.</p>pkg(5): a no scripting zonehttps://blueslugs.com/2007/09/07/pkg5-a-no-scripting-zone/Sat, 08 Sep 2007 00:28:45 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/07/pkg5-a-no-scripting-zone/<p>In my previous two posts, we examined two packaging system options—<a href="http://blueslugs.com/2007/08/06/pkg5-no-more-installer-magic/">installer-specific knowledge</a> and <a href="http://blueslugs.com/2007/08/24/pkg5-leaving-the-build-system-out">integrated build system</a>—that I believe present costs that exceed their benefits. Here, we will again examine a design choice from a negative perspective: package-associated scripting.</p>
<p>System V packaging is rich with scripting hooks; scripts named <code>checkinstall</code>, <code>preinstall</code>, <code>postinstall</code>, <code>preremove</code>, <code>request</code>, and the class action scripts. Each of these scripts can do anything they like. Scripting, even in a relatively primitive shell, is an open-ended program—opaque to the invoking framework. It’s difficult to catch an incorrect script prior to package publication time, which blocks our intent to prevent propagation of bad package versions. With a more limited set of actions—potentially with that limit enforced or marked—a class of incompletely known resource handling mechanisms can be kept off the most conservative systems.</p>
<p><a href="http://blueslugs.com/2007/07/19/observations-on-packaging/">One goal</a> we have is to preserve or improve the hands-off behaviour associated with package operations. Legacy packaging allows hands-off by imposing a series of tasks on the deploying administrator. The <code>pkgask</code>(1M) tool can enable the deployer to develop a response to the <code>request</code> script; coming up with an appropriate <code>admin</code>(4) can restrict the framework’s built-in interactive queries. (Interaction with signed packages also requires the deployer to modify their <code>pkgadd</code> invocation.) Removing the scripting degree of freedom means that obstacles to hands-off behaviour come solely from an interactive installer or from interactive services acting during system startup.</p>
<p class="note">
There's some amusingly egregious violations of the hands-off principle across the space of known packages. Less fun is that these set a bad example for later package developers.
</p>
<p>A particularly error-prone aspect of the scripting interface in packaging comes from the variety of contexts the package developer must understand (and test within). It is legitimate to install packages on live systems, in alternate filesystem hierarchies of the same or different architecture, and in whole-root and filesystem inheriting zones; in fact, you have multiple choices about how your package should install in a zone.</p>
<p>We can expect the proliferation of virtualized systems, via the various mechanisms like LDOMs and xVM, to keep all of these contexts relevant as degrees of sharing make virtualization even more appealing. Making sure that the package system operates safely in these shared contexts is critical—another of our goals.</p>
<p>Returning to the zones case, the example pseudo-script in <code>pkginfo</code>(4)—a series of nested shell <code>if ; then</code> blocks to navigate some of these contexts—is helpful, but misleading. There is much more variable state a package developer needs to consider to reach correctness. In fact, if you aren’t required to rediscover or reinvent a set of resource-handling cases for each components your package delivers, it becomes substantially simpler to make the package and return to improving the software it contains. Reducing the set of steps reduces developer burdens associated with packaging.</p>
<p>Two particular resources stand out: device drivers and <code>smf</code>(5) services. Although some limited amount of awareness—or at least easily duplicated code—makes these resources somewhat well-behaved during package operations, there are still problems that scripting presents: the addition of new contexts, the provision of multiple genealogies of copied code, and the failure to discover an associated best practice for any particular kind of resource.</p>
<p class="note">
There are other resources, of course; as a start, you could duplicate our survey of the ON <code>postinstall</code> and class action scripts.
</p>
<p>I believe the key counterargument supporting scripting is that the set of configuration patterns on Unix-like systems is large, and that the easiest means of upgrading each of these potential patterns is to allow a complete programming environment to the package developer. Probably true, but if we look at service and application configuration with respect to when a correct configuration state is required, the update step appears to separate into three classes:</p>
<ol>
<li>
<p><em>Correct at system startup, no runtime context needed.</em> These are the configuration settings that the various low-level boot components, the kernel, and the drivers need to bring the system to its running state. This class of configuration is generally limited to a specific set of resources, potentially established by a packaging system via corresponding resource-handling actions—or by an installer.</p>
</li>
<li>
<p><em>Correct at system startup, requiring runtime context.</em> These are settings where the manipulating agent might be influenced by policy or require some form of interprocess communication to effect configuration changes. <code>smf</code>(5) is an example of the latter, and handles its configuration evolution via the <code>manifest-import</code> service. Manipulation of the various local name service tables, like <code>passwd</code> or the RBAC configuration is another example, since data about potential principals must be correct for a group of affected services. Since such configuration can be required on the system as a result of package operations, these resources must also be handled via packaging, or require the use of an appropriate installer.</p>
</li>
<li>
<p><em>Correct prior to service startup.</em> Most service and application configuration falls into this class. It’s not necessary, for instance, to bring a web server’s configuration up to date if the service has no enabled instances. There seem to be a number of avenues for handling this kind of configuration: leaving it to the service or application, providing assistance via a configuration mechanism, or giving a hook where such updates can be made as needed. But the packaging system needn’t provide this hook—there are a number of possible facilities, of varying suitability.</p>
</li>
</ol>
<p class="note">
I should point out that David is making the <code>smf</code>(5) configuration update scenarios much more capable and precise with the <a href="http://opensolaris.org/os/project/smf-profiles/" >Enhanced Profiles project</a>. So, at least, a “configuration mechanism with assistance” is likely to be present soon.
</p>
<p>Since the first and second classes and how their configuration manipulations vary in the various operating contexts are generally known, elimination of the third class makes precise, no-scripting packages a viable design choice.</p>
<p>That’s a long series of arguments in favour of a scripting-free package system. It would be reasonable to ask: “can you actually do it?” So, as a check on our prototype, we used the <a href="http://opensolaris.org/os/community/brandz/" >branded zone</a> capability to let us create a <code>pkg</code>(5)-based whole root zone. Here’s a transcript</p>
<pre><code># zonecfg -z pkg_test
pkg_test: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:pkg_test> create -t SUNWipkg
zonecfg:pkg_test> set zonepath=/export/pkg_test
zonecfg:pkg_test> commit
zonecfg:pkg_test> ^D
# zoneadm -z pkg_test install
Preparing image
Retrieving catalog
Installing SUNWcs SUNWesu SUNWadmr SUNWts SUNWipkg
Setting up SMF profile links
Copying SMF seed repository
Done (115s)
</code></pre>
<p>
There's dependency following, but no constraint handling; there's no
filtering or snapshotting, but also none of the obvious performance
optimizations has been implemented (for our 211MB resultant image). But
the main point is: it works—installs, boots, upgrades, and still
boots—with no scripting. Time for a project proposal.
</p>
<p class="tag">
[ <i>T</i>:
<a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a>
<a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a>
<a href="http://www.technorati.com/tag/zone" rel="tag nofollow" class="broken_link">zone</a>
<a href="http://www.technorati.com/tag/Indiana" rel="tag nofollow" class="broken_link">Indiana</a>
<a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a>
]
</p>Predictable – pkg(1): a no scripting zonehttps://blueslugs.com/2007/09/07/predictable-pkg1-a-no-scripting-zone/Fri, 07 Sep 2007 23:30:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/07/predictable-pkg1-a-no-scripting-zone/<p><a href="http://blueslugs.com/2007/09/07/pkg5-a-no-scripting-zone">Predictable – pkg(5): a no scripting zone</a></p>
<p>In which we propose the elimination of open scripting hooks from packaging, and use branded zones to show that it indeed works.</p>Intel® Software Network Blogs » Blog Archive » Making Xeon the best platform for Solarishttps://blueslugs.com/2007/09/06/intel-software-network-blogs-blog-archive-making-xeon-the-best-platform-for-solaris/Thu, 06 Sep 2007 16:25:55 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/09/06/intel-software-network-blogs-blog-archive-making-xeon-the-best-platform-for-solaris/<p><a href="http://softwareblogs.intel.com/2007/08/30/making-xeon-the-best-platform-for-solaris/" class="broken_link" rel="nofollow">Intel® Software Network Blogs » Blog Archive » Making Xeon the best platform for Solaris</a></p>
<p>David Stewart on the real results from Intel’s OpenSolaris participation. Once we finish the SCM migration work, contribution will be even easier.</p>Predictable – pkg: Leaving the build system "out"https://blueslugs.com/2007/08/24/predictable-pkg-leaving-the-build-system-out/Fri, 24 Aug 2007 23:13:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/24/predictable-pkg-leaving-the-build-system-out/<p><a href="http://blueslugs.com/2007/08/24/pkg5-leaving-the-build-system-out/">Predictable – pkg: Leaving the build system “out”</a></p>
<p>You can layer a build system on top of a packaging system, but you needn’t include it. Having one can make you less nimble.</p>pkg(5): Leaving the build system "out"https://blueslugs.com/2007/08/24/pkg5-leaving-the-build-system-out/Fri, 24 Aug 2007 21:37:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/24/pkg5-leaving-the-build-system-out/<p class="note">
I’ve been busy the past weeks with school transitions and with getting the community <a href="http://opensolaris.org/sc/src/website/spec/dts-requirements/d-dts-requirements.txt" >defect tracking system requirements</a> into a shape where we can start evaluating candidates.
</p>
<p>Identifying the boundaries of a system during the design phase affects feasibility critically, perhaps more than any other choice. This choice reduces to “know what you’re trying to create”. As with my previous post, I’m going to describe something we’re not doing—and explain why. I envision one more negative post, and then we’ll get onto more positive expressions.</p>
<p>So: this packaging system does not contain a build or compilation component in its core architecture. There are pragmatic reasons for this choice, as well as technical ones.</p>
<p>One way to look at a packaging system is, similar to how we saw it as the connecting layer between the installer and lower-level OS services, as a way to collect and organize the set of components, binary and otherwise, into an always “bootable” flow of change. That is, various groups of people are, using their systems, emitting binaries, documents, images, and so on, that other groups of people combine into releases (or atoms of a release, like an updated package). The packaging system has to assist the latter group in that combination, by providing visibility into the completeness of the outputs of the former groups. It’s less clear that the latter group needs to have the ability to construct the objects, as long as they can assess that the environment the objects need to execute can be realized.</p>
<p class="note">
Just as an aside, we’re treating as critical design input exactly who touches and how they touch a software component as it proceeds through development, localization, release engineering, sustaining, and so forth. These touches might be reduced as the development becomes more open, but at present, they’re a useful constraint on any tendency to make the system overly rigid (or overly monolithic).
</p>
<p>The OpenSolaris consolidations—and related open source outputs like OpenJDK or OpenOffice, among others—don’t presently share a common build system. In fact, one of the real impacts of Sun’s progression to an open software development culture is that we’re moving from being the originator or primary maintainer of 90% of the software we deliver, to a much more modest percentage—let’s say 30 – 50%. Forcing a unified build system upon all of these disparate products is asserting the need for a long series of difficult conversations over many months.</p>
<p>Instead, let’s defer those discussions, and see if we can get the same benefits while only managing the end outputs of each of the participating (or aggregated) publishers. (A byproduct is that injecting received binaries into the system is the common case, rather than a strange or special workaround.) As we noted in the earlier post, we have goals about safety, developer burden, and stopping “bad stuff” as early as possible.</p>
<p>Static analysis can get most of the dependency cases correct. Binaries, whether they are user applications, libraries, or kernel modules, contain a significant amount of dependency information. It turns out that many scripting languages can be roughly interpreted to determine their module requirements. Similarly, Java class files and JAR files—and even smf(5) manifests—contain a great deal of information that lets us determine the self-consistency of a system.</p>
<p>Of course, a program can evade these dependencies: beyond use of <code>dlopen</code>(3C), it can implement its own linking or overlay mechanism, or simply be implemented in a language unknown to the packaging system. The point is we can drive out most of the inconsistencies that a purely manual dependency statement allows. In fact, we can warn a developer about the incompleteness of their dependency statements, potentially correcting them: adjusting version requests, inserting omissions, even asking about possibly superfluous dependency correctness.</p>
<p>That said, it might be that an ideal build system is lurking out there to be layered atop this system; we’ll leave room for expressions, like stating a build dependency on a certain tool, like <code>lex</code>(1) and <code>yacc</code>(1), say, so that a build system (or systems, if folks can’t close those difficult conversations I mentioned) can benefit from the metadata discovered about each component. (If you’re interested in constructing such a system, we thought a little about <a href="http://www.opensolaris.org/os/project/sfwnv/Documents/Build_engine_policy/" class="broken_link" rel="nofollow">requirements for the SFW consolidation</a>.)</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/Indiana" rel="tag nofollow" class="broken_link">Indiana</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>Problem Management Tools Summaryhttps://blueslugs.com/2007/08/22/problem-management-tools-summary/Wed, 22 Aug 2007 22:04:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/22/problem-management-tools-summary/<p><a href="http://www.daveeaton.com/scm/PMTools.html" >Problem Management Tools Summary</a></p>
<p>The Software Problem Management summary from comp.software.config-mgmt’s FAQ.</p>david ascher – » A Facebook Storyhttps://blueslugs.com/2007/08/20/david-ascher-a-facebook-story/Mon, 20 Aug 2007 18:00:13 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/20/david-ascher-a-facebook-story/<p><a href="http://ascher.ca/blog/2007/08/17/a-facebook-story/" >david ascher – » A Facebook Story</a></p>
<p>ActiveState releases “Up4”, a social availability “anti-calendar” for Facebook. Some notes on F8 API and feedback received.</p>Liane Praza's Weblog – zone out and speed up your development cycleshttps://blueslugs.com/2007/08/07/liane-prazas-weblog-zone-out-and-speed-up-your-development-cycles/Tue, 07 Aug 2007 17:55:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/07/liane-prazas-weblog-zone-out-and-speed-up-your-development-cycles/<p><a href="http://blogs.sun.com/lianep/entry/zone_out_and_speed_up" >Liane Praza’s Weblog – zone out and speed up your development cycles</a></p>
<p>Modifying userland system components? Use whole root zones.</p>Joyent (TextDrive) Accelerator Review « Postfully Yourshttps://blueslugs.com/2007/08/07/joyent-textdrive-accelerator-review-postfully-yours/Tue, 07 Aug 2007 17:52:30 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/07/joyent-textdrive-accelerator-review-postfully-yours/<p><a href="http://blog.postful.com/2007/03/20/joyent-textdrive-accelerator-review/" class="broken_link" rel="nofollow">Joyent (TextDrive) Accelerator Review « Postfully Yours</a></p>
<p>“Far superior process management and restart support. Rather than working with init scripts, you [write] SMF manifests with start/stop/restart directives …. This system doesn?t just run at startup but also monitors processes during operation. If somet</p>pkg(5): No more installer magichttps://blueslugs.com/2007/08/06/pkg5-no-more-installer-magic/Mon, 06 Aug 2007 23:51:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/06/pkg5-no-more-installer-magic/<p>I thought I would continue probing some of the problems that present themselves to any packaging system that might follow the System V packaging. For the next few topics, I’ll phrase the problem in terms of an outcome I believe we want to avoid. Here we discuss aspects of eliminating special metadata from installers.</p>
<p>If you’re familiar with the packaging and installation components involved with Solaris Express, Developer Edition, or any of the OpenSolaris distributions that Sun produces, then it won’t surprise you that there’s a large amount of upgrade specific knowledge in the installation layer. For instance, to upgrade a package installed with Solaris 10 to its currently delivered version in a recent build, there’s the set of files associated with the package—and then there’s the <em>package history</em>, which collects additional information, like files no longer delivered, or the responsibility of another package. The presence of this file, and the absence of a true package upgrade operation in System V packaging, mean that any kind of upgrade requires some form of installer: the operating system installer for upgrading the entire installation; an application-specific installer for upgrading a group of related application packages.</p>
<p>There are a number of other metadata files trapped in the installation layer, but the most important are the <em>metacluster files</em>, which group the package clusters into large installation profiles, and the <em>package clusters</em> themselves, which group sets of packages along feature boundaries, approximately. It seems evident that these groupings are merely another kind of dependency, much like how a System V package can, naïvely state a dependency on any other System V package.</p>
<p class="note">
The System V dependencies also show that another critical piece of metadata—the versioning vector, or “arrow of time”—is encoded in the installer.
</p>
<p>All of this information, if we are to allow packages to upgrade from one version to another in some linear fashion, needs to be pulled out of the installers and moved into some aspect of the packaging system. This change in responsibility means that the role of the installer becomes more precise: it must prepare a location for software installation, optionally lay down some initial, and possibly stale image, and collect any required configuration information. Subsequent upgrade operations are driven primarily by the packaging system, which can utilize the version history and dependencies in a manner at least equivalent to what the historical metadata allows.</p>
<p>The other reason that we wish to push that historical metadata into the packaging system is so that it becomes accessible to a new class of application: the <em>distro construction toolkit</em>, which needs the dependency and versioning information to simplify the construction of self-consistent installable images. That leads us to an architectural diagram like</p>
<p><img src="https://blueslugs.com/mediacast/p-pkg-arch-layers.png" alt="pkg Layering" title=""></p>
<p>where we’ve suggested some internal structure to an updated packaging system. This separation shouldn’t be that surprising: in the current system, <code>lumake</code>(1M) and most of LiveUpgrade as well as <code>zoneadm</code>(1M) for Zones are both performing image operations on either side of any packaging operations they might invoke. Designing a packaging system that makes the constructions of distributions and their installers substantially simpler will require such an API layer.</p>
<p>There are some open questions that come to mind:</p>
<ul>
<li>How much variation is there in the initial preparation an installer offers for the image location? Is space management a policy owned exclusively by the installer, or should the image operations layer have the ability to influence that allocation?</li>
<li>Is there a marshallable image description, beyond the package dependencies? Is there a marshallable image format, or are we restricted to end-use formats, like ISO images or archived zones?</li>
<li>What OS services should we consider modifying, beyond taking advantage of ZFS’s current capabilities?</li>
</ul>
<p>If you’re interested in these questions, or the potential architecture of a packaging system, we’ll be discussing these topics further in the <a href="http://opensolaris.org/os/community/install/" >Install community group</a>.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/Indiana" rel="tag nofollow" class="broken_link">Indiana</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>Predictable – pkg: No more installer magichttps://blueslugs.com/2007/08/06/predictable-pkg-no-more-installer-magic/Mon, 06 Aug 2007 22:53:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/08/06/predictable-pkg-no-more-installer-magic/<p><a href="https://blueslugs.com/2007/08/06/pkg5-no-more-installer-magic/">Predictable – pkg: No more installer magic</a></p>
<p>On moving magic knowledge out of the installer layer, and back into the packaging system.</p>Predictable – Observations on packaginghttps://blueslugs.com/2007/07/24/predictable-observations-on-packaging/Tue, 24 Jul 2007 23:30:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/07/24/predictable-observations-on-packaging/<p><a href="http://blueslugs.com/2007/07/19/observations-on-packaging" >Predictable – Observations on packaging</a></p>
<p>Trying to summarize what a new packaging system (for OpenSolaris, I hope) should aspire to.</p>BBC NEWS | Special Reports | Floods: At-a-glancehttps://blueslugs.com/2007/07/24/bbc-news-special-reports-floods-at-a-glance/Tue, 24 Jul 2007 16:21:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/07/24/bbc-news-special-reports-floods-at-a-glance/<p><a href="http://news.bbc.co.uk/1/hi/in_depth/629/629/6911778.stm" >BBC NEWS | Special Reports | Floods: At-a-glance</a></p>
<p>Large chunks of England are underwater.</p>Observations on packaginghttps://blueslugs.com/2007/07/19/observations-on-packaging/Thu, 19 Jul 2007 20:58:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/07/19/observations-on-packaging/<p>Over the past few months, a bunch of us have been exploring various options for
packaging. (Actually, I suppose I’ve been pursuing this on a part-time basis
for a year now, but it’s only recently that it’s made it to the top of the
stack.) I’ve looked at a bunch of packaging systems, ported a few to
OpenSolaris, run a bunch on their native platforms, and read a slew of manual
pages, FAQs, blogs, and the like. In parallel with those efforts, <a
href="http://blogs.sun.com/barts/">Bart</a>, <a
href="http://blogs.sun.com/nadkarni/">Sanjay</a>, and others have been
analyzing the complexity around patching in the Solaris 10 patch stream, and
improving the toolset to address the forms of risk that the larger features in
the update releases presented.</p>
<p>In the course of those investigations, we’ve come up with a number of
different approaches to understanding requirements and possibilities; I’ll
probably write those out more fully in a proper design document, but I thought
it would be helpful to outline some of those constraints here. For instance,
one way to look at how we might improve packaging is to separate the list of
“design inputs” for a packaging system into “old” and
“new”.</p>
<p class="note">
When I make a list of this kind, I know it's bound to offend. (I already know
it's more scattershot than the argument we'll present in a design
document.) Feel free to send me the important inputs I've omitted, as I have
a few follow-up posts on requirements—lower level, more specific
intentions—and architectural thoughts where I can cover any issues not
mentioned here.
</p>
<h2 id="8220old8221-inputs">“Old” inputs</h2>
<p>The “old” inputs are those that are derived from current parts of the feature set around software packaging and installation. Many of these inputs will really be satisfied by the <a href="http://opensolaris.org/os/community/install/" >new installer work</a> (“Caiman”) <a href="http://blogs.sun.com/dminer/" >Dave</a>‘s leading, but the capabilities of the packaging system will change some from difficult and fragile to straightforward and robust. With effort, some might even achieve some elegance.</p>
<ol>
<li><strong>Hands off.</strong> For a long time, via the JumpStart facility, it’s been easy to provision systems via scripted installed. This technology is still sound, particularly when we consider that the Flash archives allow a mix of image-based provisioning with the customizations JumpStart offered.</li>
<li><strong>Virtualized systems.</strong> As long or longer, we’ve supported the notion of diskless systems, where the installed image is shared out, in portions, between multiple running environments. Zones was a direct evolutionary successor of the diskless environments, and shows that this approach can lead to some very economical deployment models. Lower-level virtualization methods can also benefit from the administrative precision that comes out of sharing known portions of the installation image.</li>
<li><strong>Availability and liveness.</strong> With Live Upgrade, it’s been possible for a while now to update a second image on a running system while the first image is active—a command to switch images and a reboot is all that’s required to be running the new software. This approach requires too much feature-specific knowledge at present, but provides a very safe approach to installing an upgraded kernel or larger software stack, as reverting to the previous version is just a matter of switching back to the previous image. So, a package installation option that doesn’t ruin a working system is a must.</li>
<li><strong>Change control.</strong> In principle, with the current set of package and patch operations, it is possible to create a very specific configuration—that may never have been tested at any other site, mind you—from the issued stream of updates. From a service perspective, the variety of possible configuration combinations is too broad, but the ability to precisely know your configuration and make it a fixed point remains important.</li>
<li><strong>Migration and compatibility.</strong> There’s a very large library of software packaged in the System V format that will run on most OpenSolaris-based systems. Providing well-defined compatibility and migration paths is an obvious constraint, given the <a href="http://opensolaris.org/os/community/on/os_dev_process/" >goals of the development process</a>.</li>
<li><strong>Networked behaviour.</strong> Believe it or not, the current installer and packaging support a large set of network-based operations—you can install specific packages and systems over the network, <em>if</em> you know where everything is. That is, the current components need to be assembled into some locally relevant architecture by each site to be useful—any replacement needs to make this assembly unnecessary, potentially via a number of mechanisms, but definitely via a list of known (trusted?) public package repositories.</li>
</ol>
<h2 id="8220new8221-inputs">“New” inputs</h2>
<p>But, as you might expect, the efforts around <a href="http://opensolaris.org/os/community/approachability/" >Approachability</a>, Modernization, and <a href="http://opensolaris.org/os/project/indiana/" >Indiana</a> have brought to light some new qualities a packaging system must possess.</p>
<ol>
<li>
<p><strong>Safety.</strong> One of the real complications from virtualized systems, at least in current packaging, is that a developer has to understand each of the image types his or her package might reach, and make sure that the set of pre- and post-install scripts, class actions scripts, and the like are correct for each of these cases. When that doesn’t happen, the package is at a minimum incorrectly installed; in certain real cases, this class of failures compromises other data on the system. Restrictions in this space, particularly during package operations on an inert image, seem like a promising trade-off to achieve greater safety.</p>
</li>
<li>
<p><strong>Developer burden.</strong> Current packaging requires the developer provide a description of the package, its dependencies, and contents across a minimum of three files, in addition to knowing a collection of rules and guidelines around files, directories, and package boundaries. Most of these conventions should be encoded and enforced by the package creation and installation tools themselves, and it should be possible to construct a package with only a single file—or from an existing package or archive.</p>
</li>
<li>
<p><strong><code>smf</code>(5) aware.</strong> OpenSolaris-based systems have an understanding of services and service interdependencies, derived from the Service Management Facility’s service descriptions. <code>smf</code>(5) service management during packaging operations is awkward under current packaging and very much needs to be improved but, more importantly, the service graph provides a rich set of relationships among larger components that should lead to a better understanding of the rules around consistent system assembly.</p>
</li>
<li>
<p><strong>Minimization.</strong> For a while, the current system has had some very coarse package “blocks”, from which one could construct a system—the various metaclusters. These, with the exception of the minimally required metacluster and the entire metacluster, split the system along boundaries of interest only to workstation installs. Any suitable packaging system must provide query and image management tools to make image construction more flexible and less error-prone (and eliminate the need for things like a “developer” metacluster, for that matter).
It’s also pretty clear that the package boundaries aren’t optimized in any fashion, as evidenced by the differing rates of change of the binaries they currently enclose—in the form of the issued patches against Solaris 10.</p>
</li>
<li>
<p><strong>Multiple streams of change, of a single kind.</strong> Although we noted the continued need to control change above, it’s also important to be able to subscribe to a stream of change consistent with one’s expectations around system stability. The package system needs to allow one to bind to one or more streams of change, and limit how the interfaces the aggregate binaries from those streams evolve. That is, it should be possible to subscribe to a stream of only the most important updates, like security and data corruption fixes, or to the development stream, so that one’s system changes in a way consistent with one’s expectations.
Conversely, the tradeoff between complexity and space optimization in current patches—which introduce a separate and difficult-to-calculate dependency graph and distinct namespace entries for each platform, among other issues—has slid much too far, given the increase in system richness and the increases in disk space and bandwidth. There seems to be little long-term benefit in preserving the current patch mechanism, particularly since Sun never offered it in a form useful outside of Sun’s own software.</p>
</li>
<li>
<p><strong>ZFS aligned.</strong> ZFS offers the administrator access to so many sophisticated options around deployment and data management that it would be foolish for a packaging system to not explore how to take advantage of them—<code>zfs snapshot</code> and <code>zfs clone</code> are the most obvious capabilities that allow the packaging system to limit the risk of its modifications to an image, without excessive consumption of storage space or system time.</p>
</li>
<li>
<p><strong>Prevent bad stuff early.</strong> Another <a href="http://opensolaris.org/os/community/on/os_dev_process/" >classic OpenSolaris</a>-style requirement is that the set of available packages be known to be self-consistent and correct at all times, to spare the propagation of incomplete configurations. In a packaging system, this input expands on our intent to reduce the developer burden to assist the developer in writing as correct a package as possible, and to enable the repository operator to block incomplete packages from being made available to clients. There’s a rich set of data here, as we noted for <code>smf</code>(5) service descriptions above.</p>
</li>
<li>
<p><strong>Friendly user deployment.</strong> Direct from Indiana, but sensible and apparent to all is that packaging systems have advanced to a point where the usability of the client is expected, and not an innovation. I haven’t got the complete timeline of packaging developments—the literature survey continues—but it’s clear that Debian’s <code>apt</code> system marks the current expectations about the client-side capability and ease-of-use.</p>
</li>
</ol>
<p>In the course of the Indiana discussions, <a href="http://dtrace.org/blogs/bmc/" >Bryan</a> raised <a href="http://mail.opensolaris.org/pipermail/ogb-discuss/2007-May/000683.html" class="broken_link" rel="nofollow">one point</a>, which I’ll paraphrase as “it’s not an idea until there’s code”. That’s a sound position, which I also happen to hold—Danek and I (and <a href="http://blogs.sun.com/barts/" >Bart</a> and <a href="http://blogs.sun.com/dank/" >Daniel</a>, I hope) and have been quietly prototyping for a little while now, to see if we had a handle on this collection of inputs. I’d like to give a bit more background, in the form of requirements and assertions, in an upcoming post or two. Then we’re hoping to start a project on <a href="http://opensolaris.org/" >opensolaris.org</a> to take the idea all the way from notional fancy to functioning code.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> <a href="http://www.technorati.com/tag/Indiana" rel="tag nofollow" class="broken_link">Indiana</a> <a href="http://www.technorati.com/tag/pkg" rel="tag nofollow" class="broken_link">pkg</a> ]
</p>Sebastien Pierre’s Mercurial Quick Reference Cardhttps://blueslugs.com/2007/07/06/sebastien-pierres-mercurial-quick-reference-card/Fri, 06 Jul 2007 17:47:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/07/06/sebastien-pierres-mercurial-quick-reference-card/<p><a href="http://www.ivy.fr/mercurial/ref/v1.0/" >Sebastien Pierre’s Mercurial Quick Reference Card</a></p>
<p>Nicely designed quick references to Mercurial’s command set and workflow.</p>Weekday Caltrain Schedule for j2me java-enabled cell phone.https://blueslugs.com/2007/06/23/weekday-caltrain-schedule-for-j2me-java-enabled-cell-phone/Sat, 23 Jun 2007 20:30:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/23/weekday-caltrain-schedule-for-j2me-java-enabled-cell-phone/<p><a href="http://kevinslist.org/caltrain/index.jsp" class="broken_link" rel="nofollow">Weekday Caltrain Schedule for j2me java-enabled cell phone.</a></p>
<p>A midlet with a basic query interface to the Caltrain weekday schedule. Simple, but sufficient.</p>[0706.2748] A Survey of Unix Init Schemeshttps://blueslugs.com/2007/06/20/07062748-a-survey-of-unix-init-schemes/Wed, 20 Jun 2007 14:12:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/20/07062748-a-survey-of-unix-init-schemes/<p><a href="http://arxiv.org/abs/0706.2748" >[0706.2748] A Survey of Unix Init Schemes</a></p>
<p>Capsule descriptions of various *ix system startup approaches. Some inaccuracies and curious assertions. (SMF has been available as open source since June of 2005.)</p>:: Pardus :: TÜB?TAK/UEKAE ::https://blueslugs.com/2007/06/19/pardus-tubtakuekae/Wed, 20 Jun 2007 00:20:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/19/pardus-tubtakuekae/<p><a href="http://www.pardus.org.tr/eng/projects/comar/PythonInPardus.html" class="broken_link" rel="nofollow">:: Pardus :: TÜB?TAK/UEKAE ::</a></p>
<p>A history of the construction of a Linux distribution, with configuration and package management tools written in Python.</p>Fore! – Live Media installerhttps://blueslugs.com/2007/06/19/fore-live-media-installer/Tue, 19 Jun 2007 17:53:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/19/fore-live-media-installer/<p><a href="http://blogs.sun.com/dminer/entry/live_media_installer" >Fore! – Live Media installer</a></p>
<p>Dave gives us an update on the LiveMedia work in OpenSolaris. Summary is 15 minutes for a 2GB install to ZFS.</p>Nature’s guide for mentorshttps://blueslugs.com/2007/06/18/nature-s-guide-for-mentors-article-nature/Mon, 18 Jun 2007 18:55:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/18/nature-s-guide-for-mentors-article-nature/<p><a href="http://www.nature.com/nature/journal/v447/n7146/full/447791a.html" >Nature’s guide for mentors.</a></p>
<p>Nice article on mentor characteristics and practices.</p>OpenSolaris: Picnic, California Editionhttps://blueslugs.com/2007/06/15/opensolaris-picnic-california-edition/Fri, 15 Jun 2007 21:55:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/15/opensolaris-picnic-california-edition/<p>OpenSolaris just turned two—enjoy some good food and good company in the Northern California sun. Tomorrow’s first ever <a href="http://upcoming.yahoo.com/event/204238/" >OpenSolaris picnic</a> [Upcoming] will be at <a href=http://sunnyvale.ca.gov/Departments/Parks+and+Recreation/Parks/Baylands/">Baylands Park</a> in Sunnyvale, starting at 11:00 a.m..</p>
<p><a href="http://cuddletech.com/tamr/index.php" class="broken_link" rel="nofollow">Tamara</a> and <a href="http://www.cuddletech.com/blog/" >Ben</a> will, of course, be superlative hosts. See you there!</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/picnic" rel="tag nofollow" class="broken_link">picnic</a> ]
</p>Patch Check Advancedhttps://blueslugs.com/2007/06/15/patch-check-advanced/Fri, 15 Jun 2007 20:22:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/15/patch-check-advanced/<p><a href="http://www.par.univie.ac.at/solaris/pca/" >Patch Check Advanced</a></p>
<p>Martin Paul’s utility for analyzing the Solaris patch stream.</p>Alan Coopersmith's Weblog: OpenSolaris Second Anniversaryhttps://blueslugs.com/2007/06/15/alan-coopersmiths-weblog-opensolaris-second-anniversary/Fri, 15 Jun 2007 20:21:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/15/alan-coopersmiths-weblog-opensolaris-second-anniversary/<p class="link">
<a href="http://blogs.sun.com/alanc/entry/opensolaris_second_anniversary" >Alan Coopersmith’s Weblog: OpenSolaris Second Anniversary</a>
</p>
<p class="extended">
Alan produces the cat.
</p>Tim Foster's Weblog: LOL ANNIVERSARY!https://blueslugs.com/2007/06/14/tim-fosters-weblog-lol-anniversary/Thu, 14 Jun 2007 22:31:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/14/tim-fosters-weblog-lol-anniversary/<p class="link">
<a href="http://blogs.sun.com/timf/entry/lol_anniversary" >Tim Foster’s Weblog: LOL ANNIVERSARY!</a>
</p>
<p class="extended">
Tim says happy birthday in a lolcat dialect. (Where is ceiling cat?)
</p>Jim Grisanzio: OpenSolaris at Twohttps://blueslugs.com/2007/06/14/jim-grisanzio-opensolaris-at-two/Thu, 14 Jun 2007 22:30:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/14/jim-grisanzio-opensolaris-at-two/<p class="link">
<a href="http://blogs.sun.com/jimgris/entry/opensolaris_at_two" >Jim Grisanzio: OpenSolaris at Two</a>
</p>
<p class="extended">
Jim summarizes the past year, with an extensive set of notable events and links. If you’re new to the OpenSolaris community, this post is a great way to get caught up quickly.
</p>Paludis, the Other Package Manglerhttps://blueslugs.com/2007/06/12/paludis-the-other-package-mangler/Wed, 13 Jun 2007 00:41:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/12/paludis-the-other-package-mangler/<p class="link">
<a href="http://paludis.pioto.org/" >Paludis, the Other Package Mangler</a>
</p>
<p class="extended">
A new package manager for use with Gentoo-style distributions. Maintains Portage compatibility.
</p>Deputyhttps://blueslugs.com/2007/06/08/deputy/Sat, 09 Jun 2007 05:44:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/08/deputy/<p class="link">
<a href="http://deputy.cs.berkeley.edu/" class="broken_link" rel="nofollow">Deputy</a>
</p>
<p class="extended">
C compiler with safety analysis via annotations.
</p>Half a weekhttps://blueslugs.com/2007/06/08/half-a-week/Sat, 09 Jun 2007 01:39:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/08/half-a-week/<p>I was out half this week, helping my younger son deal with a nasty sinus infection—and then an allergic reaction to the prescribed antibiotic. So, between finishing various deliverables, I’ve been trying to catch up on my <a href="http://opensolaris.org/" >opensolaris.org</a> mailing list traffic. This afternoon, I got to <code>ogb-discuss</code>, the Governing Board alias, which has been exploring the next steps for the Architecture Review process for open development.</p>
<p>A few minutes ago, I replied to one message in the thread, and then reread the message was from <em>Tuesday</em>. Given that I was out three days, this makes quasi-arithmetical sense, as</p>
<blockquote>
<p>Friday – ~2.5 days = Tuesday
Maybe in an hour or two, I’ll be able to prove “Monday = Monday”, give or take.</p>
</blockquote>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/OGB" rel="tag nofollow" class="broken_link">OGB</a> <a href="http://www.technorati.com/tag/ARC" rel="tag nofollow" class="broken_link">ARC</a> ]
</p>Jargon: accelerant versus catalysthttps://blueslugs.com/2007/06/08/jargon-accelerant-versus-catalyst/Fri, 08 Jun 2007 20:42:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/08/jargon-accelerant-versus-catalyst/<p>One of the features of our home library is a sizeable collection of texts on English diction, grammar, usage, and so forth. (The collection was banished to the back office, but bursts out regularly.) Most of these are focussed on general use, and shy away from the changes in meaning that might accompany use in a technical field. Completely untouched is the smaller subset of technical words that could be useful more generally.</p>
<p>The “wished for general use” word-pair I came up with today is <a href="http://en.wiktionary.org/wiki/catalyst" >catalyst</a> and <a href="http://en.wiktionary.org/wiki/accelerant" >accelerant</a>, both of which are precise descriptive words for agents of change. The problem is that a catalyst remains unchanged across the transformation—meaning that there was only unilateral adjustment—while an accelerant, very much a part of the transformation, seems to be exclusively connoted with arson.</p>
<p>Know any example usages of accelerant that attempt to stifle a sense of ignition?</p>OpenSolaris: Five updates conservative developers should makehttps://blueslugs.com/2007/06/06/opensolaris-five-updates-conservative-developers-should-make/Thu, 07 Jun 2007 01:17:06 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/06/opensolaris-five-updates-conservative-developers-should-make/<p>It’s been almost two-and-a-half years since Solaris 10 was released, and if we look at Nevada (via <a href="http://developers.sun.com/solaris/downloads/solexpdev/" >Developer Edition</a> or one of the <a href="http://www.opensolaris.org/os/downloads/" class="broken_link" rel="nofollow">other distributions</a>), we can see that many of the technologies introduced in S10 are becoming still more capable. At this point, even the most conservative software developer can assume that certain features are always present. So, for the conservative OpenSolaris application developer, here are the five low-risk, high-reward updates you should make to your application:</p>
<ol>
<li><em>Provide x86 and SPARC versions.</em> OpenSolaris has two primary instruction set targets, <code>i386</code> and <code>sparc</code>. Each of these has both a 32- and a 64-bit variant. The metrics on Solaris 10 and SX:CE/DE downloads tell us that the Solaris volume is substantial on both targets so, for maximum uptake, you should attempt to offer software on both.</li>
</ol>
<pre><code>On x86, you should consider delivering both 32- and 64-bit versions, if your application can take advantage of a 64-bit address space. But there is a large contingent of 32-bit only users, so don&#8217;t stop delivering appropriate binaries prematurely.
Of course, if you&#8217;re writing at a hardware-independent level, like on a Java language platform, then you get x86 and SPARC (and presumably others) for free.
</code></pre>
<ol start="2">
<li><em>Make packages that deliver into sparse zones.</em> The primary software delivery mechanism is still System V packages—but your software’s already packaged properly, so that’s not an issue. (Right?) With Solaris 10, the <a href="http://opensolaris.org/os/community/zones/" >Zones</a> feature offers a sparse variant that requires package support. Roughly, this support means that the package author shouldn’t deliver into <code>/usr</code> and should add the three properties needed to the <code>pkginfo</code> file.</li>
</ol>
<pre><code>There are some fairly serious Zones deployers out there; <a href="http://www.joyent.com" >Joyent</a> is probably the most public example, but there are plenty of corporate datacentres using Zones to their advantage. If you want your software run by them or their customers, providing a Zones-compatible package seems like the easiest way to get it into their hands and onto their Zones.
</code></pre>
<ol start="3">
<li><em>Replace your <code>init.d</code> scripts with <code>smf</code>(5) manifests.</em> The Service Management Facility (<a href="http://opensolaris.org/os/community/smf/" ><code>smf</code>(5)</a>) provides a collection of capabilities that make service administration easier, while also reducing the development burden on application authors. Converting your service from the <code>rc*.d</code> script to a service description and methods means that administrators get automatic restart (and higher service availability), an easy on/off switch, and a place to make site-specific annotations (using the various template properties). There’s a free comptetive advantage here, if your service runs under <code>smf</code>(5) and a rival’s doesn’t.</li>
</ol>
<pre><code>Of course, you can do more: placing key configuration values in the service repository means that various administrative utilities can be taught to make manipulating your application&#8217;s feature set easy to the deploying administrator. But that won&#8217;t happen without an initial service conversion.
(Once you write a manifest for your service, you&#8217;ll also probably want to write a rights profile, so that administrative authority for your service and its instances can be easily delegated.)
</code></pre>
<ol start="4">
<li>
<p><em>Understand needed privileges.</em> One of the more interesting features in Solaris 10 and later is the work <a href="http://blogs.sun.com/casper" >Casper</a> did to split out the absolute privilege owned by <code>root</code> into a specific collection of privileges. That means that you can take away a process’s ability to fork or exec, change file ownership, or manipulate or utilize various subsystems of the operating system. If your application runs with the minimal set of privileges it needs to function, then the set of actions a hypothetical exploit against your application can invoke becomes limited, which reduces the impact of an intrusion. You can reduce your privileges via the <code>smf</code>(5) manifest you wrote for #3, via the role-based access control (RBAC) configuration, or via the privileges API.</p>
</li>
<li>
<p><em>Don’t unnecessarily ship duplicate components.</em> The various OpenSolaris distributions include a lot of software; most of these offer one or more update mechanisms for the components they include. Whether or not you prefer minimal patches to wholesale package replacements, if you ship a duplicate component, it’s your responsiblity to update it if a defect or security hole is found. Sometimes you have to ship a component—the distros don’t update it often enough—but private libraries (or private copies of the Java runtime) have a collection of costs, many of which are imposed on your customer.</p>
</li>
</ol>
<p>For specific kinds of software, there’s more to investigate. Language interpreters and byte-code virtual machines (and probably complex daemons) should have <a href="http://opensolaris.org/os/community/dtrace/" >DTrace</a> providers. Network device drivers should write to the latest version of the generic LAN device (<code>gld</code>) interface. Archival programs should be ZFS-compatible—there’s going to be a lot of data on <a href="http://opensolaris.org/os/community/zfs/" >ZFS</a>. Daemons should investigate using <code>libumem</code> for memory allocation (and event ports in place of <code>poll</code>(2) or <code>select</code>(3C)). And so on.</p>
<p>There are <a href="http://opensolaris.org/os/communities/" >OpenSolaris communities</a> for each of these topics but, if you’re having trouble getting started, I would suggest an email to <a href="http://www.opensolaris.org/jive/forum.jspa?forumID=12" class="broken_link" rel="nofollow"><code>opensolaris-code</code></a>, that reads something like: “I have a [daemon/driver/app] that does [practical purpose/amazing feat/curious entertainment]. Are there any OpenSolaris features I can use to make it better?”</p>
<p>Looking forward to your mail.</p>
<p class="note">
Thanks to <a href="http://blogs.sun.com/dep/" >Dave</a> for #5. Dave also confesses to being keen on #3.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> <a href="http://www.technorati.com/tag/privilege" rel="tag nofollow" class="broken_link">privilege</a> RBAC <a href="http://www.technorati.com/tag/zones" rel="tag nofollow" class="broken_link">zones</a> ]
</p>SFW: Integrating coreutils and which variantshttps://blueslugs.com/2007/06/05/sfw-integrating-coreutils-and-which-variants/Tue, 05 Jun 2007 23:47:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/05/sfw-integrating-coreutils-and-which-variants/<p>Last night, I finished up another task, in an attempt to reduce my current multitasking factor: I integrated initial versions of <code>coreutils</code> and <code>which</code> from the GNU Project into the Freeware consolidation. As a lower priority task, it took longer than a more dedicated developer might have managed, but it’s reasonably pleasing to look back:</p>
<ul>
<li>
<p>initial idea, in case form, <a href="http://mail.opensolaris.org/pipermail/companion-discuss/2006-April/000096.html" class="broken_link" rel="nofollow">proposed</a> <a href="http://mail.opensolaris.org/pipermail/companion-discuss/2006-May/000115.html" class="broken_link" rel="nofollow">and</a> <a href="http://mail.opensolaris.org/pipermail/companion-discuss/2006-May/000143.html" class="broken_link" rel="nofollow">repeatedly</a> <a href="http://mail.opensolaris.org/pipermail/companion-discuss/2006-May/000163.html" class="broken_link" rel="nofollow">revised</a> on <code>companion-discuss</code>,</li></p>
</li>
<li>
<p>draft fast track <a href="http://mail.opensolaris.org/pipermail/sfwnv-discuss/2006-December/000094.html" class="broken_link" rel="nofollow">circulated</a> on <code>sfwnv-discuss</code>,</li></p>
</li>
<li>
<p>fast tracks for <a href="http://mail.opensolaris.org/pipermail/opensolaris-arc/2007-January/000884.html" class="broken_link" rel="nofollow"><code>/usr/gnu</code>,</a> <a href="http://mail.opensolaris.org/pipermail/opensolaris-arc/2007-January/000886.html" class="broken_link" rel="nofollow"><code>coreutils</code>,</a> and <a href="http://mail.opensolaris.org/pipermail/opensolaris-arc/2007-January/000888.html" class="broken_link" rel="nofollow"><code>which</code></a> submitted as open PSARC fast track cases,</p>
</li>
<li>
<p><a href="http://mail.opensolaris.org/pipermail/sfwnv-discuss/2007-March/000279.html" class="broken_link" rel="nofollow">preliminary,</a> <a href="http://mail.opensolaris.org/pipermail/sfwnv-discuss/2007-May/000644.html" class="broken_link" rel="nofollow">intermediate,</a> and <a href="http://mail.opensolaris.org/pipermail/sfwnv-discuss/2007-May/000682.html" class="broken_link" rel="nofollow">final</a> code reviews on <code>sfwnv-discuss</code>, and,</p>
</li>
<li>
<p>finally, an <a href="http://mail.opensolaris.org/pipermail/sfwnv-discuss/2007-June/000718.html" class="broken_link" rel="nofollow">integration message</a> to <code>sfwnv-discuss</code>.</p>
</li>
</ul>
<p>There’s still a bunch of process associated with SFW that requires redesign—legal review and Section 508 compliance, in particular—but I think, barring the latent intervals, this sequence was a reasonable consensus-driven open development experience.</p>
<p>If you look at other <a href="http://opensolaris.org" ><code>opensolaris.org</code></a> mailing lists during June – November and February – April, you’ll be able to verify that I was indeed working—just on other things, and not just surfing the Web…</p>
<p>Of course, now that I know that these commands will start to show up more widely when Build 67 is released, I can update my dotfiles, so I get the versions I prefer:</p>
<pre class="ksh">$ svn diff</p>
<h1>
Index: sh-functions
</h1>
<p>
--- sh-functions (revision 91)
+++ sh-functions (working copy)
@@ -36,6 +36,10 @@
PATH=$HOME/bin:$HOME/bin/$(/usr/bin/uname -p):$PATH
MANPATH=$HOME/man:$MANPATH
;;
+ gnu) # PREPEND: Bundled GNU command variants
+ PATH=/usr/gnu/bin:$PATH
+ MANPATH=/usr/gnu/share/man:$PATH
+ ;;
</p>
<h1>
Index: bashrc
</h1>
<p>
--- bashrc (revision 91)
+++ bashrc (working copy)
@@ -49,8 +49,12 @@
path clear home sfw csw
fi
-if hash gls > /dev/null 2>&1; then
- alias ls="gls --color -CF"
+if [ -x /usr/gnu/bin/ls ]; then
+ alias ls="/usr/gnu/bin/ls --color -CF"
fi
+if [ -x /usr/gnu/bin/which ]; then
+ alias which="/usr/gnu/bin/which"
+fi
+
export CDPATH=$MACHINE_CDPATH_PRE:$HOME/projects:$HOME:$MACHINE_CDPATH_POST
</pre>
</p>
<p>
If you’re using a distribution that offers <code>SUNWgnu-coreutils</code>,
<code>SUNWgnu-which</code>, and the other <code>/usr/gnu</code> packages, do share your
feedback with the maintainers on <code>sfwnv-discuss</code>—or become one and
pick your favourite package.
</p>
<p class="tag">
[ <i>T</i>:
<a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a>
<a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a>
<a href="http://www.technorati.com/tag/SFW" rel="tag nofollow" class="broken_link">SFW</a>
coreutils
<a href="http://www.technorati.com/tag/which" rel="tag nofollow" class="broken_link">which</a>
]
</p>Download Opera Web Browser [Solaris x86]https://blueslugs.com/2007/06/01/download-opera-web-browser-solaris-x86/Sat, 02 Jun 2007 05:02:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/06/01/download-opera-web-browser-solaris-x86/<p class="link">
<a href="http://www.opera.com/download/index.dml?custom=yes" >Download Opera Web Browser [Solaris x86]</a>
</p>
<p class="extended">
Opera 9.x now available for OpenSolaris on x86 processors.
</p>How to make a good ID in Atom [dive into mark]https://blueslugs.com/2007/05/29/how-to-make-a-good-id-in-atom-dive-into-mark/Wed, 30 May 2007 00:34:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/29/how-to-make-a-good-id-in-atom-dive-into-mark/<p class="link">
<a href="http://diveintomark.org/archives/2004/05/28/howto-atom-id" >How to make a good ID in Atom [dive into mark]</a>
</p>
<p class="extended">
Useful guidance on how to construct the unique, unchanging IDs the Atom protocol requires for entries.
</p>maxq.tigris.orghttps://blueslugs.com/2007/05/24/maxqtigrisorg/Fri, 25 May 2007 04:07:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/24/maxqtigrisorg/<p class="link">
<a href="http://maxq.tigris.org/" class="broken_link" rel="nofollow">maxq.tigris.org</a>
</p>
<p class="extended">
A recording-playback system for web functional testing. Emits a Python script.
</p>Staring At The C – Python and DTrace in build 65https://blueslugs.com/2007/05/24/staring-at-the-c-python-and-dtrace-in-build-65/Thu, 24 May 2007 20:30:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/24/staring-at-the-c-python-and-dtrace-in-build-65/<p class="link">
<a href="http://blogs.sun.com/levon/entry/python_and_dtrace_in_build" >Staring At The C – Python and DTrace in build 65</a>
</p>
<p class="extended">
John’s integrated DTrace support for Python in OpenSolaris, build 65. The python provider has function-entry, function-return, and userland stack support. (Examples are from executing various Mercurial commands.)
</p>OpenSolaris: Defect tracking relationshipshttps://blueslugs.com/2007/05/23/opensolaris-defect-tracking-relationships/Thu, 24 May 2007 05:42:30 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/23/opensolaris-defect-tracking-relationships/<p>Just prior to the <a href="http://poll.opensolaris.org/2/" title="Election results">Board election</a>, we ran a <a href="http://poll.opensolaris.org/1/" title="Community priority poll results">poll of the core contributors</a> to get some sense of what one active subset felt were the five most pressing obstacles to open development. <a href="http://blogs.sun.com/dp/" >Dan</a> just issued an initial Beta of a <code>webrev</code>-based approach, derived from his earlier experiment on <a href="http://cr.grommit.com" class="broken_link" rel="nofollow"><a href="http://cr.grommit.com">http://cr.grommit.com</a></a>, so that’s a starting point for Priority 3. The Board is tackling, in full public view on <a href="http://http://mail.opensolaris.org/pipermail/ogb-discuss/" class="broken_link" rel="nofollow">ogb-discuss</a>, Priority 4: there’s <a href="http://mail.opensolaris.org/pipermail/ogb-discuss/2007-April/000288.html" class="broken_link" rel="nofollow">OGB/2007/001, <em>Project creation enhancements</em></a> and <a href="http://mail.opensolaris.org/pipermail/ogb-discuss/2007-April/000289.html" class="broken_link" rel="nofollow">OGB/2007/002, <em>Community and Project Reorganization</em></a> as two significant chunks of a stablized reorganization. Priority 2, the deployment of a “request to integrate” system, is somewhat gated on ON and sister consolidations’ switch to Mercurial, being pursued in the <a href="http://opensolaris.org/os/project/scm-migration" ><code>scm-migration</code> project</a>—it’s an aspect of workflow that isn’t required by all of the hosted consolidations. Priority 5, the deployment of an <code>opensolaris.org</code>-hosted wiki, is in a requirements gathering phase over on <a href="http://mail.opensolaris.org/pipermail/website-discuss/2007-April/003242.html" class="broken_link" rel="nofollow"><code>website-discuss</code></a>.</p>
<p>That leaves Priority 1, the deployment of a public bug tracking system. Bug tracking has loomed over the OpenSolaris effort for pretty much its entire implementation phase; we’ve known that aspects of the current bug tracking methodologies impact many parts of Sun’s business, and that any solution will require the identification of which entanglements are strategic—meaning that there’s a requirement for any new system—and which are accidental—meaning that there’s only some transition cost, as the entangled system can be adjusted to consume information in some designed fashion. So, as part of getting a set of draft requirements together for discussion, I thought I would work through some of the issues facing defect tracking as we move to open development. Most of these points are about the developer–distribution (or upstream–downstream) interface that a defect tracking system (DTS) or defect tracking architecture represents.</p>
<p>The primary requirement that a distribution has on their DTS is some ability to maintain confidential data associated with each tracked defect. Let’s call that database a proprietary annotation system (PAS)—the data within it capture the customer histories associated with various defects or collections of defects (“products”?) represented in the system. The DTS, meanwhile, is meant to be neutral across all participants, developers and distribution assemblers, and unconcerned with non-technical characteristics of the defect.</p>
<p>This contrast allows us to postulate a set of relationships among various active DTSs and PASs for an open development community.</p>
<p>The association of confidential information with an existing defect looks something like</p>
<p><img src="https://blueslugs.com/2007/05/23/p-simple-as.png" alt="1 DTS to 1 PAS" title=""></p>
<p>Of course, in the OpenSolaris case, SMI’s annotations become just one potential PAS; other distributions may also choose to annotate publicly known (“community tracked”) defects:</p>
<p><img src="https://blueslugs.com/2007/05/23/p-multiple-as.png" alt="1 DTS to N PAS" title=""></p>
<p>One requirement that we’ve heard during preliminary discussions with the various teams is there must be some ability to search the entirety of the product-relevant portion of the DTS. One possibility is that each PAS operator builds a search corpus that combines the upstream DTS with the PAS content. A potentially more economic alternative would be to allow the the associations to be bidirectional (so that an indexer with authorizations allowing it to access one or more proprietary annotation systems can present a complete defect corpus). Making the existence of the annotations public does not seem like a significant leak of proprietary information, while the existence of annotations might be a useful measure of defect significance. (It is probably worth explicitly stating that having a complete defect corpus for searching does not imply that use of a single DTS is the only means of obtaining such a corpus.)</p>
<p>These associations are more complex objects than the current See Also links in typical monolithic DTSes, in that they carry one or more mappings of status and responsibility between the DTS and each PAS. Potentially, this capability could lead to more precise handling of release readiness, in that a query involving a group of PAS-tracked defects could indicate that one or more stoppers are blocking the release of a certain version of the tracked product. Of course, prior to open development, the Solaris organization has historically managed that fairly well for its products, so why is it worth discussing?</p>
<p>Well, for OpenSolaris today, the set of defects in our own DTS isn’t the complete set of relevant defects for product release. In fact, as examples, Solaris tracks the defects, branches, and patches for GNOME, Mozilla Firefox, and Perl, among others. That is, Sun’s current combined DTS/PAS, Bugster, is in the following relationships with an upstream source</p>
<p><img src="https://blueslugs.com/2007/05/23/p-us-relns-1.png" alt="Defects tied to upstream defects" title=""></p>
<p>when the product is affected by an upstream-sourced component, and</p>
<p><img src="https://blueslugs.com/2007/05/23/p-us-relns-2.png" alt="Customer annotations on upstream" title=""></p>
<p>when a customer is affected by an upstream-sourced component. There’s also an awkward local cost since upstream state is usually tracked manually (or possibly via custom scripting).</p>
<p>We can choose to apply this tracking need to our second defect/annotation figure above, in two ways: we can track the OpenSolaris consolidation defects as a peer of other upstream DTSs</p>
<p><img src="https://blueslugs.com/2007/05/23/p-full-relns-1.png" alt="Community is upstream peer" title=""></p>
<p>or, more interestingly, we can allow community management of the relevance of upstream defects, like the following</p>
<p><img src="https://blueslugs.com/2007/05/23/p-full-relns-2.png" alt="Community manages upstream" title=""></p>
<p>(A distribution may not choose to annotate the public DTS record on an upstream bug, but may instead choose to annotate on the upstream DTS record directly. Ignoring the community signal when it has a mismatch with distribution priorities seems likely; using it as a guide when no conflicting principle exists seems like a safe course as well.)</p>
<p>I think that introducing these kinds of associations allows us to solve a large class of defect tracking problems that are currently impacting the OpenSolaris space. (Obviously there are issues, too–for instance, one could introduce association cycles (that clients must detect).) I would expect that the confidentiality issue impacts all of the distributions pulling from OpenSolaris consolidations (and probably, more generally, all groups looking at open development): I believe every distribution has customers of some kind. The importance of upstream relationships may presently be operating environment-specific, although I know other groups are also dependent on some number of OSS components.</p>Real-World Haskellhttps://blueslugs.com/2007/05/23/real-world-haskell/Wed, 23 May 2007 16:08:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/23/real-world-haskell/<p class="link">
<a href="http://www.realworldhaskell.org/blog/" class="broken_link" rel="nofollow">Real-World Haskell</a>
</p>
<p class="extended">
Bryan and co-authors begin a book for O’Reilly.
</p>The Blog of Ben Rockwood – IO Benchmarking: How, Why and With Whathttps://blueslugs.com/2007/05/23/the-blog-of-ben-rockwood-io-benchmarking-how-why-and-with-what/Wed, 23 May 2007 16:07:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/23/the-blog-of-ben-rockwood-io-benchmarking-how-why-and-with-what/<p class="link">
<a href="http://www.cuddletech.com/blog/pivot/entry.php?id=820" >The Blog of Ben Rockwood – IO Benchmarking: How, Why and With What</a>
</p>
<p class="extended">
Ben surveys a set of tools for evaluating aspects of I/O performance.
</p>Particletree » Subdomains + Development = Suckshttps://blueslugs.com/2007/05/23/particletree-subdomains-development-sucks/Wed, 23 May 2007 16:06:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/23/particletree-subdomains-development-sucks/<p class="link">
<a href="http://particletree.com/notebook/subdomains-development-sucks/" >Particletree » Subdomains + Development = Sucks</a>
</p>
<p class="extended">
Wufoo’s per-user domain experience shows the costs and complexity that accompany vanity subdomains.
</p>InotifyExtension – Mercurialhttps://blueslugs.com/2007/05/16/inotifyextension-mercurial/Thu, 17 May 2007 03:28:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/16/inotifyextension-mercurial/<p class="link">
<a href="http://www.selenic.com/mercurial/wiki/index.cgi/InotifyExtension" class="broken_link" rel="nofollow">InotifyExtension – Mercurial</a>
</p>
<p class="extended">
Interesting application of Linux inotify API to SCM status.
</p>RFC1297 NOC Internal Integrated Trouble Ticket System Functional Specification Wishlist ("NOC TT REQUIREMENTS")https://blueslugs.com/2007/05/04/rfc1297-noc-internal-integrated-trouble-ticket-system-functional-specification-wishlist-noc-tt-requirements/Sat, 05 May 2007 03:33:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/04/rfc1297-noc-internal-integrated-trouble-ticket-system-functional-specification-wishlist-noc-tt-requirements/<p class="link">
<a href="http://www.ietf.org/rfc/rfc1297.txt" >RFC1297 NOC Internal Integrated Trouble Ticket System Functional Specification Wishlist ("NOC TT REQUIREMENTS")</a>
</p>
<p class="extended">
An informal set of requirements for a network operations organization’s ticketing system.
</p>Joe Gregorio | BitWorking | How to create a REST Protocolhttps://blueslugs.com/2007/05/02/joe-gregorio-bitworking-how-to-create-a-rest-protocol/Wed, 02 May 2007 17:17:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/05/02/joe-gregorio-bitworking-how-to-create-a-rest-protocol/<p class="link">
<a href="http://bitworking.org/news/How_to_create_a_REST_Protocol" >Joe Gregorio | BitWorking | How to create a REST Protocol</a>
</p>
<p class="extended">
One procedure for designing a REST-style protocol; reposted from a 2004 article for XML.com.
</p>Modules — Software Environment Managementhttps://blueslugs.com/2007/04/30/modules-software-environment-management/Mon, 30 Apr 2007 18:11:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/30/modules-software-environment-management/<p class="link">
<a href="http://modules.sourceforge.net/" >Modules — Software Environment Management</a>
</p>
<p class="extended">
Manages $PATH and other environment variables to allow different "setting stacks" to be constructed.
</p>WOVOdat Design Document: The Schema, Table Descriptions, and Create Table Statements for the Database of Worldwide Volcanic Unrest (WOVOdat Version 1.0)https://blueslugs.com/2007/04/26/wovodat-design-document-the-schema-table-descriptions-and-create-table-statements-for-the-database-of-worldwide-volcanic-unrest-wovodat-version-10/Thu, 26 Apr 2007 21:22:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/26/wovodat-design-document-the-schema-table-descriptions-and-create-table-statements-for-the-database-of-worldwide-volcanic-unrest-wovodat-version-10/<p class="link">
<a href="http://pubs.usgs.gov/of/2007/1117/" >WOVOdat Design Document: The Schema, Table Descriptions, and Create Table Statements for the Database of Worldwide Volcanic Unrest (WOVOdat Version 1.0)</a>
</p>
<p class="extended">
Dina’s schema for storing volcanic event history, as recorded by observers and sensors. (USGS Open File Report 2007-1117.)
</p>[Phoronix] Phoronix To Support Solaris OShttps://blueslugs.com/2007/04/23/phoronix-phoronix-to-support-solaris-os/Tue, 24 Apr 2007 01:28:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/23/phoronix-phoronix-to-support-solaris-os/<p class="link">
<a href="http://www.phoronix.com/scan.php?page=article&item=687&num=1" >[Phoronix] Phoronix To Support Solaris OS</a>
</p>
<p class="extended">
Phoronix, an OSS hardware review site, begins covering Solaris as one of its standard review platforms.
</p>Universal Feed Parserhttps://blueslugs.com/2007/04/13/universal-feed-parser/Sat, 14 Apr 2007 00:07:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/13/universal-feed-parser/<p class="link">
<a href="http://feedparser.org/" >Universal Feed Parser</a>
</p>
<p class="extended">
"Parse RSS and Atom feeds in Python. 3000 unit tests. Open source."
</p>baetle – Bug And Enhancement Tracking LanguagEhttps://blueslugs.com/2007/04/13/baetle-bug-and-enhancement-tracking-language/Fri, 13 Apr 2007 23:58:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/13/baetle-bug-and-enhancement-tracking-language/<p class="link">
<a href="http://code.google.com/p/baetle/" >baetle – Bug And Enhancement Tracking LanguagE</a>
</p>
<p class="extended">
Henry Story and collaborators are developing a description of the common attributes of bugs, as mapped in RDF
</p>DamageControl – Continuous Integration Server Feature Matrixhttps://blueslugs.com/2007/04/13/damagecontrol-continuous-integration-server-feature-matrix/Fri, 13 Apr 2007 23:54:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/13/damagecontrol-continuous-integration-server-feature-matrix/<p class="link">
<a href="http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix" >DamageControl – Continuous Integration Server Feature Matrix</a>
</p>
<p class="extended">
A comparison of a set of continuous integration systems. (DamageControl itself is not under active development.)
</p>hudson: Hudson: an extensible continuous integration enginehttps://blueslugs.com/2007/04/13/hudson-hudson-an-extensible-continuous-integration-engine/Fri, 13 Apr 2007 23:52:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/13/hudson-hudson-an-extensible-continuous-integration-engine/<p class="link">
<a href="https://hudson.dev.java.net/" class="broken_link" rel="nofollow">hudson: Hudson: an extensible continuous integration engine</a>
</p>
<p class="extended">
"Hudson monitors executions of repeated jobs, such as building a software project or jobs run by cron." Provided as a WAR; just drop in servlet container (or run directly with java(1)).
</p>CruiseControl Homehttps://blueslugs.com/2007/04/13/cruisecontrol-home/Fri, 13 Apr 2007 23:50:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/13/cruisecontrol-home/<p class="link">
<a href="http://cruisecontrol.sourceforge.net/" >CruiseControl Home</a>
</p>
<p class="extended">
"A ramework for a continuous build process." Plugins for Ant, various SCMs.
</p>Apache Maven Projecthttps://blueslugs.com/2007/04/13/apache-maven-project/Fri, 13 Apr 2007 23:49:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/13/apache-maven-project/<p class="link">
<a href="http://maven.apache.org/" >Apache Maven Project</a>
</p>
<p class="extended">
"A software project management and comprehension tool." Can manage builds, reporting, and documentation.
</p>Panoramic Feedback®: Open Source Software – Bugs Everywherehttps://blueslugs.com/2007/04/10/panoramic-feedback-open-source-software-bugs-everywhere/Tue, 10 Apr 2007 17:48:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/panoramic-feedback-open-source-software-bugs-everywhere/<p class="link">
<a href="http://www.panoramicfeedback.com/opensource/" >Panoramic Feedback®: Open Source Software – Bugs Everywhere</a>
</p>
<p class="extended">
Bug tracking tied to distributed SCM: bug data is stored beside source code.
</p>JTrac – open source and customizable issue-tracking in Javahttps://blueslugs.com/2007/04/10/jtrac-open-source-and-customizable-issue-tracking-in-java/Tue, 10 Apr 2007 17:44:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/jtrac-open-source-and-customizable-issue-tracking-in-java/<p class="link">
<a href="http://jtrac.info/" >JTrac – open source and customizable issue-tracking in Java</a>
</p>
<p class="extended">
Implemented in Java, atop the Wicket framework.
</p>Malone Bug Tracker in Launchpadhttps://blueslugs.com/2007/04/10/malone-bug-tracker-in-launchpad/Tue, 10 Apr 2007 17:43:49 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/malone-bug-tracker-in-launchpad/<p class="link">
<a href="https://launchpad.net/malone/" >Malone Bug Tracker in Launchpad</a>
</p>
<p class="extended">
The bug tracking component for the Launchpad suite. Likely implemented in Python; no source downloads?
</p>Roundup Issue Trackerhttps://blueslugs.com/2007/04/10/roundup-issue-tracker/Tue, 10 Apr 2007 17:37:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/roundup-issue-tracker/<p class="link">
<a href="http://roundup.sourceforge.net/" >Roundup Issue Tracker</a>
</p>
<p class="extended">
Based on the "Track" category winner from the Software Carpentry contest. Implemented in Python.
</p>Comparison of issue tracking systems – Wikipedia, the free encyclopediahttps://blueslugs.com/2007/04/10/comparison-of-issue-tracking-systems-wikipedia-the-free-encyclopedia/Tue, 10 Apr 2007 17:35:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/comparison-of-issue-tracking-systems-wikipedia-the-free-encyclopedia/<p class="link">
<a href="http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems" >Comparison of issue tracking systems – Wikipedia, the free encyclopedia</a>
</p>
<p class="extended">
A matrix comparing issue and bug tracking systems. Labelled as requiring an update.
</p>Home :: Bugzilla :: bugzilla.orghttps://blueslugs.com/2007/04/10/home-bugzilla-bugzillaorg/Tue, 10 Apr 2007 17:33:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/home-bugzilla-bugzillaorg/<p class="link">
<a href="http://www.bugzilla.org/" >Home :: Bugzilla :: bugzilla.org</a>
</p>
<p class="extended">
Mozilla’s bugtracking system. Implemented in Perl.
</p>Mantis Bug Trackerhttps://blueslugs.com/2007/04/10/mantis-bug-tracker/Tue, 10 Apr 2007 17:32:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/mantis-bug-tracker/<p class="link">
<a href="http://www.mantisbt.org/" >Mantis Bug Tracker</a>
</p>
<p class="extended">
A web-based bug tracking system. Written for PHP/MySQL, can work with PostgreSQL.
</p>scarab.tigris.orghttps://blueslugs.com/2007/04/10/scarabtigrisorg/Tue, 10 Apr 2007 17:31:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/10/scarabtigrisorg/<p class="link">
<a href="http://scarab.tigris.org/" >scarab.tigris.org</a>
</p>
<p class="extended">
An "artifact tracking system", capable of tracking defects and RFEs. Uses Java Servlets.
</p>Pacman – a simple package managerhttps://blueslugs.com/2007/04/09/pacman-a-simple-package-manager/Tue, 10 Apr 2007 02:32:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/09/pacman-a-simple-package-manager/<p class="link">
<a href="http://www.archlinux.org/pacman/" >Pacman – a simple package manager</a>
</p>
<p class="extended">
Arch Linux distribution’s packaging system.
</p>libMicro – portable microbenchmarks at OpenSolaris.orghttps://blueslugs.com/2007/04/09/libmicro-portable-microbenchmarks-at-opensolarisorg/Mon, 09 Apr 2007 20:45:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/09/libmicro-portable-microbenchmarks-at-opensolarisorg/<p class="link">
<a href="http://opensolaris.org/os/project/libmicro/" >libMicro – portable microbenchmarks at OpenSolaris.org</a>
</p>
<p class="extended">
Dan has made Bart and Phil’s microbenchmark collection available via Mercurial. Consider porting to your favourite POSIX-like platform.
</p>SMF Documentation at OpenSolaris.orghttps://blueslugs.com/2007/04/09/smf-documentation-at-opensolarisorg/Mon, 09 Apr 2007 20:44:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/09/smf-documentation-at-opensolarisorg/<p class="link">
<a href="http://opensolaris.org/os/project/smf-doc/" >SMF Documentation at OpenSolaris.org</a>
</p>
<p class="extended">
Liane opens a Mercurial repository to start collaboration on smf(5)-related documentation.
</p>GoboLinux – the alternative Linux distributionhttps://blueslugs.com/2007/04/05/gobolinux-the-alternative-linux-distribution/Fri, 06 Apr 2007 02:45:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/05/gobolinux-the-alternative-linux-distribution/<p class="link">
<a href="http://gobolinux.org/" >GoboLinux – the alternative Linux distribution</a>
</p>
<p class="extended">
"You don’t a package manager because the filesystem is the package manager: each program resides in its own directory…"
</p>Nixhttps://blueslugs.com/2007/04/01/nix/Mon, 02 Apr 2007 01:10:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/04/01/nix/<p class="link">
<a href="http://nix.cs.uu.nl/index.html" class="broken_link" rel="nofollow">Nix</a>
</p>
<p class="extended">
A purely functional (in the PL sense) package manager.
</p>Comparing Linux/UNIX Binary Package Formatshttps://blueslugs.com/2007/03/30/comparing-linuxunix-binary-package-formats/Sat, 31 Mar 2007 05:31:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/30/comparing-linuxunix-binary-package-formats/<p class="link">
<a href="http://kitenet.net/~joey/pkg-comp/" >Comparing Linux/UNIX Binary Package Formats</a>
</p>
<p class="extended">
A comparative feature matrix among various package formats.
</p>Jim Grisanzio: The OpenSolaris Electionhttps://blueslugs.com/2007/03/29/jim-grisanzio-the-opensolaris-election/Thu, 29 Mar 2007 18:55:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/29/jim-grisanzio-the-opensolaris-election/<p class="link">
<a href="http://blogs.sun.com/jimgris/entry/the_opensolaris_election" >Jim Grisanzio: The OpenSolaris Election</a>
</p>
<p class="extended">
Jim’s congratulations to the incoming Board and to the Community for voting to ratify.
</p>Glynn Foster's Blog: OpenSolaris – Where Next?https://blueslugs.com/2007/03/27/glynn-fosters-blog-opensolaris-where-next/Wed, 28 Mar 2007 00:28:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/27/glynn-fosters-blog-opensolaris-where-next/<p class="link">
<a href="http://www.gnome.org/~gman/blog/28032007" class="broken_link" rel="nofollow">Glynn Foster’s Blog: OpenSolaris – Where Next?</a>
</p>
<p class="extended">
Glynn starts to rev up for his coming term on the Governing Board.
</p>Simon Phipps, SunMink: Ratified and Electedhttps://blueslugs.com/2007/03/27/simon-phipps-sunmink-ratified-and-elected/Tue, 27 Mar 2007 19:29:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/27/simon-phipps-sunmink-ratified-and-elected/<p class="link">
<a href="http://blogs.sun.com/webmink/entry/ratified_and_elected" >Simon Phipps, SunMink: Ratified and Elected</a>
</p>
<p class="extended">
Outgoing Board member, Simon, announces the successful ratification of the Constitution, and cheers on its evolution.
</p>/dev/dump: Congratulations new OGBhttps://blueslugs.com/2007/03/27/devdump-congratulations-new-ogb/Tue, 27 Mar 2007 19:27:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/27/devdump-congratulations-new-ogb/<p class="link">
<a href="http://gdamore.blogspot.com/2007/03/congratulations-new-ogb.html" >/dev/dump: Congratulations new OGB</a>
</p>
<p class="extended">
Garrett analyzes the 2007 Board Election results, with commentary on some aspects he’d like to see changed. Article VI of the Constitution does place term limits on the Board Members.
</p>Rich Teer's Blog: OGB Election results are in!https://blueslugs.com/2007/03/27/rich-teers-blog-ogb-election-results-are-in/Tue, 27 Mar 2007 19:25:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/27/rich-teers-blog-ogb-election-results-are-in/<p class="link">
<a href="http://richteer.blogspot.com/2007/03/ogb-election-results-are-in.html" >Rich Teer’s Blog: OGB Election results are in!</a>
</p>
<p class="extended">
Rich summarizes the ratification/2007 board election poll. (Rich is the only non-Sun member elected to the 2007 board.)
</p>that?s whacked » we have consensus!https://blueslugs.com/2007/03/27/thats-whacked-we-have-consensus/Tue, 27 Mar 2007 19:23:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/27/thats-whacked-we-have-consensus/<p class="link">
<a href="http://whacked.net/2007/03/27/we-have-consensus/" >that?s whacked » we have consensus!</a>
</p>
<p class="extended">
Steve Lau accepts the responsibility not to screw up on the OpenSolaris Governing Board.
</p>poll.opensolaris.org: Board Election 2007/Ratify Constitutionhttps://blueslugs.com/2007/03/27/pollopensolarisorg-board-election-2007ratify-constitution/Tue, 27 Mar 2007 14:45:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/27/pollopensolarisorg-board-election-2007ratify-constitution/<p class="link">
<a href="http://poll.opensolaris.org/2/" >poll.opensolaris.org: Board Election 2007/Ratify Constitution</a>
</p>
<p class="extended">
The OpenSolaris Community completes ratification of its Constitution and elects its Board for 2007 – 2008. The Board election was resolved by Single Transferable Vote, using the Meek algorithm.
</p>Elections Canada On-linehttps://blueslugs.com/2007/03/26/elections-canada-on-line/Mon, 26 Mar 2007 17:51:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/26/elections-canada-on-line/<p class="link">
<a href="http://www.elections.ca/home.asp" class="broken_link" rel="nofollow">Elections Canada On-line</a>
</p>
<p class="extended">
Site for the Chief Electoral Officer of Canada, and his/her organization.
</p>LinkChecker – check websites and HTML documents for broken linkshttps://blueslugs.com/2007/03/23/linkchecker-check-websites-and-html-documents-for-broken-links/Sat, 24 Mar 2007 05:27:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/23/linkchecker-check-websites-and-html-documents-for-broken-links/<p class="link">
<a href="http://linkchecker.sourceforge.net/index.html" >LinkChecker – check websites and HTML documents for broken links</a>
</p>
<p class="extended">
A multithreaded link evaluator, in Python.
</p>Open Your Mind Todayhttps://blueslugs.com/2007/03/22/open-your-mind-today/Thu, 22 Mar 2007 17:10:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/22/open-your-mind-today/<p class="link">
<a href="http://openyourmindtoday.com/" class="broken_link" rel="nofollow">Open Your Mind Today</a>
</p>
<p class="extended">
Sun will give you a free T-shirt if you answer a skill-testing question.
</p>Niath: Command Not Foundhttps://blueslugs.com/2007/03/21/niath-command-not-found/Wed, 21 Mar 2007 16:23:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/21/niath-command-not-found/<p class="link">
<a href="http://niath.blogspot.com/2007/03/command-not-found.html" >Niath: Command Not Found</a>
</p>
<p class="extended">
Ubuntu has a utility, command-not-found, which with shell integration, recommends the packaging command to invoke to obtain a missing command.
</p>poll.opensolaris.org: Community Election Managementhttps://blueslugs.com/2007/03/19/pollopensolarisorg-community-election-management/Mon, 19 Mar 2007 23:06:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/19/pollopensolarisorg-community-election-management/<p class="link">
<a href="http://poll.opensolaris.org/" >poll.opensolaris.org: Community Election Management</a>
</p>
<p class="extended">
OpenSolaris’s community polling/voting/consensus mechanism site. Includes status for current and future elections, plus results for past ones.
</p>Vela Canopieshttps://blueslugs.com/2007/03/17/vela-canopies/Sat, 17 Mar 2007 17:59:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/17/vela-canopies/<p class="link">
<a href="http://www.velacanopies.com/" >Vela Canopies</a>
</p>
<p class="extended">
Residential shade structures and canopy awnings. May help me reclaim summer use of the deck.
</p>Busy, stopping emailhttps://blueslugs.com/2007/03/16/busy-stopping-email/Fri, 16 Mar 2007 23:43:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/03/16/busy-stopping-email/<p>The past couple of months have been busy: I’ve been working on different deliverables for <a href="http://opensolaris.org/" title="OpenSolaris site">OpenSolaris</a>, <a href="http://opensolaris.org/os/community/smf/" title="SMF Community Group">SMF</a>, and <a href="http://opensolaris.org/os/project/sfwnv/" title="Nevada Freeware Project">SFW</a>. I’ll try to give summaries on each of these items as they complete in the coming weeks, but I thought I should mention the consequences of some anti-spam provisions I implemented on opensolaris.org in February. Since these restrictions can cause mail to OpenSolaris lists to be dropped, you may wish to read on.</p>
<p>At the time, we had essentially no anti-spam on <code>opensolaris.org</code>‘s mail pipeline, and we relying on <a href="http://list.org" >Mailman</a> (which handles our 120+ lists) to reject spam directly, or for list moderators to do so manually. We knew that some lists were promptly moderated, and others less so, but figured things were working, for the most part. This state of affairs then changed.</p>
<p>It was public news that there was a <a href="http://www.theregister.co.uk/2006/10/31/botnet_spam_surge/page2.html" >jump in spam volume the previous fall</a>. On <code>opensolaris.org</code>, spam hit all of our addresses, including administrative aliases for list subscription and removal. Mailman requires time to process each request, and with the rate of inflow, finally built to a backlog of almost 35 000 unprocessed Mailman administrative queries in early February. For a potential OpenSolaris list subscriber, this translated to a multi-hour wait for subcription requests—no way to make it easy to get in on a conversation.</p>
<p>To stop the <code>-subscribe</code> and <code>-unsubscribe</code> addresses from getting pounded, I started activating the basic anti-spam features of <a href="http://www.postfix.org" >Postfix</a> (which we have run on <code>opensolaris.org</code> since the initial setup). Presently, we expect a host to have legitimate DNS entries and to not be on various blacklists, and we expect envelopes to be well-formed. The backlog started to clear as these controls were in place, and was completed with no dropped requests a day or two later. (We had one hiccough: I had initially written the configuration so that Postfix didn’t trust the Mailman outbound mail, which meant that we did both anti-spam on the inbound submission and also on the dozens or hundreds of outbound messages to the list subscribers. Once we straightened that out, things have been much better.)</p>
<p>Since we imposed these requirements after initial subscriptions, it is possible that a valid subscriber to a Mailman list can no longer send mail acceptable for <code>opensolaris.org</code>. This problem is particularly likely to be related to a host lacking a valid MX record. If you’ve sent mail to <code>opensolaris.org</code> that hasn’t appeared in the lists, please check that you have a valid MX record. You can use one of the <a href="http://www.webmaster-toolkit.com/mx-record-lookup.shtml" title="DNS MX lookups" class="broken_link" rel="nofollow">web forms</a> offering MX lookups, but on an OpenSolaris-based system it’s easy to do this using <code>nslookup</code>(1M):</p>
<pre>$ nslookup</p>
<blockquote>
<p>
set querytype=mx
rosseau.eng.sun.com
Server: 192.168.1.2
Address: 192.168.1.2#53
** server can't find rosseau.eng.sun.com: NXDOMAIN
rosseau.sfbay.sun.com
Server: 192.168.1.2
Address: 192.168.1.2#53
Non-authoritative answer:
rosseau.sfbay.sun.com mail exchanger = 10 btmx1.sun.com.
rosseau.sfbay.sun.com mail exchanger = 10 btmx3.sun.com.
rosseau.sfbay.sun.com mail exchanger = 10 btmx4.sun.com.
rosseau.sfbay.sun.com mail exchanger = 20 mx3.sun.com.
rosseau.sfbay.sun.com mail exchanger = 20 mx4.sun.com.
Authoritative answers can be found from:
sun.com nameserver = ns1.sun.com.
....
</p>
<p>
</pre>
</p>
</blockquote>
<p class="note">
(In fact, <code>rosseau</code> lost its
<code>eng.sun.com</code> MX record in the past couple of weeks, so I,
too, got caught by the new policy.)
</p>
<p>
Both our Mailman instance and our many moderators are much happier now,
processing many fewer, mostly legitimate list postings. If you’ve a
valid MX record, aren’t blacklisted, and are still having problems,
<a href="http://www.opensolaris.org/jive/forum.jspa?forumID=29" class="broken_link" rel="nofollow"><code>website-discuss</code></a>
is the place to ask.
</p>
<p class="tag">
[ <i>T</i>:
<a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a>
<a href="http://www.technorati.com/tag/Postfix" rel="tag nofollow" class="broken_link">Postfix</a>
<a href="http://www.technorati.com/tag/Mailman" rel="tag nofollow" class="broken_link">Mailman</a>
<a href="http://www.technorati.com/tag/spam" rel="tag nofollow" class="broken_link">spam</a>
]
</p>governance.lopsa.org: GovernanceWikihttps://blueslugs.com/2007/02/14/governancelopsaorg-governancewiki/Thu, 15 Feb 2007 01:44:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/02/14/governancelopsaorg-governancewiki/<p class="link">
<a href="http://governance.lopsa.org/index.php/Main_Page" >governance.lopsa.org: GovernanceWiki</a>
</p>
<p class="extended">
LOPSA’s governance wiki, with a well-written FAQ and results of their 2005 election using Meek STV.
</p>that?s whacked » OpenSolaris/Solaris Relationshipshttps://blueslugs.com/2007/02/13/thats-whacked-opensolarissolaris-relationships/Wed, 14 Feb 2007 02:42:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/02/13/thats-whacked-opensolarissolaris-relationships/<p class="link">
<a href="http://whacked.net/2007/02/13/opensolarissolaris-relationships/" >that?s whacked » OpenSolaris/Solaris Relationships</a>
</p>
<p class="extended">
Steve explains how source become binaries, consolidations, and finally distributions from the OpenSolaris code base. With diagram!
</p>SMF FAQ at OpenSolaris.orghttps://blueslugs.com/2007/02/09/smf-faq-at-opensolarisorg/Fri, 09 Feb 2007 15:13:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/02/09/smf-faq-at-opensolarisorg/<p class="link">
<a href="http://opensolaris.org/os/community/smf/faq/" >SMF FAQ at OpenSolaris.org</a>
</p>
<p class="extended">
The long-awaited FAQ for smf(5).
</p>Glynn Foster: OpenSolaris Membershiphttps://blueslugs.com/2007/01/29/glynn-foster-opensolaris-membership/Mon, 29 Jan 2007 23:53:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/29/glynn-foster-opensolaris-membership/<p class="link">
<a href="http://www.gnome.org/~gman/blog/26012007" class="broken_link" rel="nofollow">Glynn Foster: OpenSolaris Membership</a>
</p>
<p class="extended">
Glynn comments on the proposed governance for OpenSolaris; he’s read the document, lived an alternative via participation in GNOME, and makes a good point about how the differences in the two approaches might matter.
</p>The Blog of Ben Rockwood: OpenSolaris Governance: It's time to start caringhttps://blueslugs.com/2007/01/24/the-blog-of-ben-rockwood-opensolaris-governance-its-time-to-start-caring/Wed, 24 Jan 2007 22:14:13 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/24/the-blog-of-ben-rockwood-opensolaris-governance-its-time-to-start-caring/<p class="link">
<a href="http://cuddletech.com/blog/pivot/entry.php?id=791" >The Blog of Ben Rockwood: OpenSolaris Governance: It’s time to start caring</a>
</p>
<p class="extended">
Ben on governance in OpenSolaris (with a capsule history of what’s happened so far).
</p>Simon Phipps, SunMink: OpenSolaris Governance Ready to Boothttps://blueslugs.com/2007/01/24/simon-phipps-sunmink-opensolaris-governance-ready-to-boot/Wed, 24 Jan 2007 22:12:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/24/simon-phipps-sunmink-opensolaris-governance-ready-to-boot/<p class="link">
<a href="http://blogs.sun.com/webmink/entry/opensolaris_governance_ready_to_boot" >Simon Phipps, SunMink: OpenSolaris Governance Ready to Boot</a>
</p>
<p class="extended">
Simon on where we are in the OpenSolaris governance work.
</p>Scalla: Scalable Cluster Architecture for Low Latency Access Using xrootd and olbd Servershttps://blueslugs.com/2007/01/18/scalla-scalable-cluster-architecture-for-low-latency-access-using-xrootd-and-olbd-servers/Thu, 18 Jan 2007 15:16:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/18/scalla-scalable-cluster-architecture-for-low-latency-access-using-xrootd-and-olbd-servers/<p class="link">
<a href="http://xrootd.slac.stanford.edu/papers/Scalla-Intro.htm" >Scalla: Scalable Cluster Architecture for Low Latency Access Using xrootd and olbd Servers</a>
</p>
<p class="extended">
A clusterable low-latency, high-bandwidth data access framework. Hierarchical clustering model. Used in HEP community.
</p>It's official – Sun is the #1 contributor to Open Source – by a long wayhttps://blueslugs.com/2007/01/17/its-official-sun-is-the-1-contributor-to-open-source-by-a-long-way/Wed, 17 Jan 2007 16:42:30 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/17/its-official-sun-is-the-1-contributor-to-open-source-by-a-long-way/<p class="link">
<a href="http://blogs.sun.com/alanbur/entry/it_s_official_sun_is1" >It’s official – Sun is the #1 contributor to Open Source – by a long way</a>
</p>
<p class="extended">
Alan finds the EU has valued the contributions of various software and systems companies to open source.
</p>CSRF Guard – OWASPhttps://blueslugs.com/2007/01/10/csrf-guard-owasp/Thu, 11 Jan 2007 06:34:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/10/csrf-guard-owasp/<p class="link">
<a href="https://www.owasp.org/index.php/CSRF_Guard" >CSRF Guard – OWASP</a>
</p>
<p class="extended">
A Java EE filter proof of concept implementation of a unique token defense (or “guard”) against Cross-Site Request forgery.
</p>Finger Trees: A Simple General-purpose Data Structurehttps://blueslugs.com/2007/01/09/finger-trees-a-simple-general-purpose-data-structure/Tue, 09 Jan 2007 18:47:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/09/finger-trees-a-simple-general-purpose-data-structure/<p class="link">
<a href="http://www.soi.city.ac.uk/~ross/papers/FingerTree.html" >Finger Trees: A Simple General-purpose Data Structure</a>
</p>
<p class="extended">
“We present 2-3 finger trees, a functional representation of persistent sequences supporting access to the ends in amortized constant time, and concatenation and splitting in time logarithmic in the size of the smaller piece. Representations achieving the
</p>Brown CS: Tech Report CS-97-12: MW Shapiro, RDB: A System for Incremental Replay Debugginghttps://blueslugs.com/2007/01/08/brown-cs-tech-report-cs-97-12-mw-shapiro-rdb-a-system-for-incremental-replay-debugging/Mon, 08 Jan 2007 19:56:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/08/brown-cs-tech-report-cs-97-12-mw-shapiro-rdb-a-system-for-incremental-replay-debugging/<p class="link">
<a href="http://www.cs.brown.edu/publications/techreports/reports/CS-97-12.html" >Brown CS: Tech Report CS-97-12: MW Shapiro, RDB: A System for Incremental Replay Debugging</a>
</p>
<p class="extended">
Replay debugging seems to have a resurgence every few years. Here’s Mike’s take (and description of his implementation) from a few years ago.
</p>A Periodic Table of Visualization Methodshttps://blueslugs.com/2007/01/08/a-periodic-table-of-visualization-methods/Mon, 08 Jan 2007 19:45:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/08/a-periodic-table-of-visualization-methods/<p class="link">
<a href="http://www.visual-literacy.org/periodic_table/periodic_table.html" >A Periodic Table of Visualization Methods</a>
</p>
<p class="extended">
Interesting catalogue.
</p>DWR – Easy AJAX for JAVA | Getaheadhttps://blueslugs.com/2007/01/05/dwr-easy-ajax-for-java-getahead/Sat, 06 Jan 2007 02:02:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/05/dwr-easy-ajax-for-java-getahead/<p class="link">
<a href="http://getahead.ltd.uk/dwr/" class="broken_link" rel="nofollow">DWR – Easy AJAX for JAVA | Getahead</a>
</p>
<p class="extended">
“DWR allows Javascript in a browser to interact with Java on a server and helps you manipulate web pages with the results.” Interesting.
</p>Locationbar² | Firefox Add-ons | Mozilla Corporationhttps://blueslugs.com/2007/01/04/locationbar-firefox-add-ons-mozilla-corporation/Thu, 04 Jan 2007 18:35:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/04/locationbar-firefox-add-ons-mozilla-corporation/<p class="link">
<a href="https://addons.mozilla.org/firefox/4014/" class="broken_link" rel="nofollow">Locationbar² | Firefox Add-ons | Mozilla Corporation</a>
</p>
<p class="extended">
It’s simple–merely changing some of the URL to bold–but I like it.
</p>OpenSolaris: Restricted builds through the ageshttps://blueslugs.com/2007/01/03/opensolaris-restricted-builds-through-the-ages/Thu, 04 Jan 2007 00:47:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/03/opensolaris-restricted-builds-through-the-ages/<p class="link">
<a href="http://blueslugs.com/2007/01/03/opensolaris-restricted-builds-through-the-ages">OpenSolaris: Restricted builds through the ages</a>
</p>
<p class="extended">
On the history of restricted integration builds for ON, the recent ON restrictions, and the need to develop a community policy on frequency and publicity of future integration restrictions.
</p>OpenSolaris: Restricted builds through the ageshttps://blueslugs.com/2007/01/03/opensolaris-restricted-builds-through-the-ages-2/Thu, 04 Jan 2007 00:45:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/03/opensolaris-restricted-builds-through-the-ages-2/<p>Last month, <a href="http://blogs.sun.com/harpster" >Stephen Harpster</a> announced that there would be a <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=19347" class="broken_link" rel="nofollow">two-build sequence with restricted integration conditions</a>. This sort of restriction isn’t new for Solaris development, as I’ll show below, but the means of arriving at the restriction and the manner in which we shared it shows we are still learning what an “open process” must do—and when we miss, to make sure we learn from those mistakes.</p>
<p>So Stephen’s announcement noted that Build 54 and 55 would be “only bug fixes”. That’s not new; we can look at the build-by-build restrictions on ON integrations for Solaris 8</p>
<p><img src="https://blueslugs.com/mediacast/p-builds-58.png" alt="Solaris 8 ON build restrictions" title="ON 5.8"></p>
<p>Solaris 9,</p>
<p><img src="https://blueslugs.com/mediacast/p-builds-59.png" alt="Solaris 9 ON build restrictions" title="ON 5.9"></p>
<p>and Solaris 10,</p>
<p><img src="https://blueslugs.com/mediacast/p-builds-510.png" alt="Solaris 10 build restrictions" title="ON 5.10"></p>
<p>Here, each box represents a cycle of the two-week build clock. Solid boxes indicate a strong “bugfix only” integration policy (like “stopper only” or integrations requiring the consolidation’s technical lead’s approval); outlined boxes indicate a weak “bugfix only” integration policy (meaning no specially approved projects). I’ve worked out these integration policy digests from the ON schedules of past releases; policies will vary for other consolidations, but should match up roughly with ON’s history.</p>
<p class="note">
Solaris 8 and 9 show the classic “(Development Complete–)Beta–Beta Refresh–Ship” pattern that characterized Solaris releases. In Solaris 10, the Solaris Express program gets reflected in that, although there were identified Beta and Beta Refresh builds, the shift from early release to late release really takes place with the Beta Refresh build, which was the first in a series of restricted builds, until Ship.
</p>
<p>Thus, for current Nevada, ON looks a lot like it did for the release that became Solaris 10:</p>
<p><img src="https://blueslugs.com/mediacast/p-builds-5x.png" alt="OpenSolaris NV ON build restrictions" title="ON Nevada so far..."></p>
<p class="note">
Inferences you might make are at your own risk.
</p>
<p>Of course, the freezes we took in the past were easily achieved as there was only one distribution derived from the ON sources. Now that we are a community with a <a href="http://belenix.org" class="broken_link" rel="nofollow">collection</a> <a href="http://gnusolaris.org" >of</a> <a href="http://www.martux.org" class="broken_link" rel="nofollow">active</a> <a href="http://schillix.berlios.org" class="broken_link" rel="nofollow">distributions</a>, the notion of periodic and public restricted builds may still be attractive, so that distributions could choose to issue their latest version from a known stabilized build. Certainly current distributions (or emerging ones) might consider using the stabilized build 55—however we got here—as an opportune version to base their next release upon.</p>
<p class="note">
Of course, there is a tradeoff between letting each distribution stabilize and a consolidation-wide restriction. Perhaps a topic for a future post?
</p>
<p>We, as a community, will need to have a position on restricted builds. Please think about it, and then feel free to comment here, and mail me privately. Public discussions, I suspect, are more valuable: <a href="http://www.opensolaris.org/jive/forum.jspa?forumID=12" class="broken_link" rel="nofollow"><code>opensolaris-code</code></a> would be a good forum for the technical tradeoffs, possible frequency of stabilized builds, and so on, while <a href="http://www.opensolaris.org/jive/forum.jspa?forumID=17" class="broken_link" rel="nofollow"><code>cab-discuss</code></a> would be the best place for inter-distribution and coordination issues.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/distribution" rel="tag nofollow" class="broken_link">distribution</a> <a href="http://www.technorati.com/tag/consolidation" rel="tag nofollow" class="broken_link">consolidation</a> ]
</p>Project Eulerhttps://blueslugs.com/2007/01/01/project-euler/Tue, 02 Jan 2007 06:30:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2007/01/01/project-euler/<p class="link">
<a href="http://projecteuler.net/" >Project Euler</a>
</p>
<p class="extended">
Collection of mathematical problems that require computation.
</p>TypeMatrix EZR 2030 Keyboard Skinshttps://blueslugs.com/2006/12/21/typematrix-ezr-2030-keyboard-skins/Fri, 22 Dec 2006 00:19:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/21/typematrix-ezr-2030-keyboard-skins/<p class="link">
<a href="http://www.typematrix.com/skins/" >TypeMatrix EZR 2030 Keyboard Skins</a>
</p>
<p class="extended">
Cool silicone skins for TypeMatrix keyboards. Need to get a black Dvorak or two.
</p>Amateur Astronomy Magazinehttps://blueslugs.com/2006/12/17/amateur-astronomy-magazine/Sun, 17 Dec 2006 21:45:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/17/amateur-astronomy-magazine/<p class="link">
<a href="http://www.amateurastronomy.com/index.html" class="broken_link" rel="nofollow">Amateur Astronomy Magazine</a>
</p>
<p class="extended">
</p>clever, witty blog title » Blog Archive » Collaborative filtering made easyhttps://blueslugs.com/2006/12/13/clever-witty-blog-title-blog-archive-collaborative-filtering-made-easy/Wed, 13 Dec 2006 22:35:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/13/clever-witty-blog-title-blog-archive-collaborative-filtering-made-easy/<p class="link">
<a href="http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/" >clever, witty blog title » Blog Archive » Collaborative filtering made easy</a>
</p>
<p class="extended">
Bryan explains the use of “slope one predictors” for collaborative filtering, with an example in 40 lines of Python.
</p>opensolaris.org: Prevent accidental robotomieshttps://blueslugs.com/2006/12/11/opensolaris-org-prevent-accidental-robotomies/Mon, 11 Dec 2006 23:36:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/11/opensolaris-org-prevent-accidental-robotomies/<p>We’ve been working through bits and pieces of <code><a href="http://opensolaris.org" >opensolaris.org</a></code>, looking for the troubling portions where regular human touches are currently required.</p>
<p class="note">
These are troubling because (a) someone forgets to touch when someone else is on vacation, sick, or whatever, and then (b) someone depending on that resource being touched gets annoyed/loses time/<a href="http://www.opensolaris.org/jive/thread.jspa?threadID=19983&tstart=0" class="broken_link" rel="nofollow">sends us Kafkaeque email about transforming into an automaton</a>.
</p>
<p>Recently, <a href="http://whacked.net" >Steve</a> pulled a little Python script together and now we can smoothly offer direct DVD downloads of Solaris Express Community Release across each incremental release. In honour of his script, a new download button:</p>
<center>
<a href="http://opensolaris.org/sxcr_dvd" ><img src=" /mediacast/p-blog-dvd-pull-button.png" border="0" alt="Get the (SXCR) DVD." /></a>
</center>
<p class="note">
<code><a href="http://opensolaris.org/sxcr_dvd" >http://opensolaris.org/sxcr_dvd</a></code> should work, without problem, for the duration of Nevada. But pipe up on <code>website-discuss</code> if it fails.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/DVD" rel="tag nofollow" class="broken_link">DVD</a> <a href="http://www.technorati.com/tag/Downloads" rel="tag nofollow" class="broken_link">Downloads</a> ]
</p>Hypertext Markup Language – 2.0 – The HTML Coded Character Sethttps://blueslugs.com/2006/12/11/hypertext-markup-language-20-the-html-coded-character-set/Mon, 11 Dec 2006 23:16:24 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/11/hypertext-markup-language-20-the-html-coded-character-set/<p class="link">
<a href="http://www.w3.org/MarkUp/html-spec/html-spec_13.html" >Hypertext Markup Language – 2.0 – The HTML Coded Character Set</a>
</p>
<p class="extended">
I keep using this page, so best simply to bookmark it.
</p>Slightly better nfs v4 support for nomadic systemshttps://blueslugs.com/2006/12/11/slightly-better-nfs-v4-support-for-nomadic-systems/Mon, 11 Dec 2006 20:35:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/11/slightly-better-nfs-v4-support-for-nomadic-systems/<p class="link">
<a href="http://blogs.sun.com/chrisg/entry/slightly_better_nfs_v4_support" >Slightly better nfs v4 support for nomadic systems</a>
</p>
<p class="extended">
Chris offers patches to modify nfsmapid to allow more convenient assignments between IDs from different NFSv4 domains. Useful on a laptop transiting between two NFS environments.
</p>Infinite Knots: Ideas On Issue Tracking in the FLOSS Worldhttps://blueslugs.com/2006/12/06/infinite-knots-ideas-on-issue-tracking-in-the-floss-world/Wed, 06 Dec 2006 19:46:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/06/infinite-knots-ideas-on-issue-tracking-in-the-floss-world/<p class="link">
<a href="http://www.bryceharrington.org/blosxom.cgi/2006/12/05#issue_tracking" class="broken_link" rel="nofollow">Infinite Knots: Ideas On Issue Tracking in the FLOSS World</a>
</p>
<p class="extended">
Some thoughts on inter-product issue tracking, mostly from a user perspective.
</p>Interactive Mathematics Miscellany and Puzzles, Indexhttps://blueslugs.com/2006/12/06/interactive-mathematics-miscellany-and-puzzles-index/Wed, 06 Dec 2006 18:23:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/06/interactive-mathematics-miscellany-and-puzzles-index/<p class="link">
<a href="http://www.cut-the-knot.org/index.shtml" >Interactive Mathematics Miscellany and Puzzles, Index</a>
</p>
<p class="extended">
Many applets illustrating various numerical, logic, and visual puzzles.
</p>Untuning for 53https://blueslugs.com/2006/12/04/untuning-for-53/Mon, 04 Dec 2006 22:08:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/04/untuning-for-53/<p>Since I bumped into a couple of problems after moving to Build 53, I thought I should make a note and save folks some time. My laptop’s a reasonably standard install, but I do turn off a few more daemons, in the hope of squeezing out a few minutes’ more battery life. With the new GNOME bits, you need to make sure that</p>
<pre>$ svcs *hal* *fc-cache*
STATE STIME FMRI
online Nov_28 svc:/application/font/fc-cache:default
online 12:27:47 svc:/system/hal:default
</pre> shows that both
<p><code>hal</code>(1M) and <code>fc-cache</code>(1M) are running, as their functionality is required by other components. (If you don’t have <code>application/font/fc-cache</code> enabled, you’ll have trouble getting much of GNOME to run–you’ll see core files, running on which <code>pstack</code>(1) will reveal a stack trace filled with symbols beginning with <code>"FC"</code>…) A couple of <code>svcadm enable</code> invocations will bring things back into spec.</p>
<p class="note">
If you haven’t customized your system and you’re still having similar problems, you probably want to visit <a href="http://www.opensolaris.org/jive/forum.jspa?forumID=39" class="broken_link" rel="nofollow"><code>desktop-discuss</code></a>.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/GNOME" rel="tag nofollow" class="broken_link">GNOME</a> <a href="http://www.technorati.com/tag/HAL" rel="tag nofollow" class="broken_link">HAL</a> fc-cache ]
</p>[cs/0612009] Users' participation to the design process in an Open Source Software online communityhttps://blueslugs.com/2006/12/04/cs0612009-users-participation-to-the-design-process-in-an-open-source-software-online-community/Mon, 04 Dec 2006 21:53:13 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/12/04/cs0612009-users-participation-to-the-design-process-in-an-open-source-software-online-community/<p class="link">
<a href="http://arxiv.org/abs/cs/0612009" >[cs/0612009] Users’ participation to the design process in an Open Source Software online community</a>
</p>
<p class="extended">
A study of the Python Enhancement Proposal, as an OSS design process. Included field interviews, discussion analysis, etc. as part of study.
</p>53 looks goodhttps://blueslugs.com/2006/11/29/53-looks-good/Thu, 30 Nov 2006 00:36:55 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/29/53-looks-good/<p>About six weeks ago, in anticipation of GNOME 2.16, I switched my desktop from an <a href="http://modeemi.cs.tut.fi/~tuomov/ion/" class="broken_link" rel="nofollow">Ion window manager</a>-based X11 environment to the <a href="http://opensolaris.org/os/project/jds/" >JDS environment</a> integrated with Solaris. Now, with the delivery of Build 53—not yet on the Download Centre, apparently—the wait is over:</p>
<p>[Formerly, a scaled down screenshot of a system running Build 53.]</p>
<!--
href="https://blueslugs.com/mediacast/p-screenshot-53.png"
src="https://blueslugs.com/mediacast/p-screenthumb-53.png"
-->
<p>A few keyboard shortcuts input, a tweak of the window preferences, and it’s back to normal work. (Or better: using <code>evince</code> and <code>gnome-terminal</code> in their full screen modes are distinct improvements for reading documents onscreen.)</p>
<p class="note">
Background image by <a href="http://www.mandolux.com/" >Mandolux</a>.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/JDS" rel="tag nofollow" class="broken_link">JDS</a> <a href="http://www.technorati.com/tag/GNOME" rel="tag nofollow" class="broken_link">GNOME</a> ]
</p>Tools at OpenSolaris.orghttps://blueslugs.com/2006/11/27/tools-at-opensolarisorg/Mon, 27 Nov 2006 17:53:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/27/tools-at-opensolarisorg/<p class="link">
<a href="http://opensolaris.org/os/community/tools/" >Tools at OpenSolaris.org</a>
</p>
<p class="extended">
</p>PlanetDreamcast: Games – Best Dreamcast Gameshttps://blueslugs.com/2006/11/26/planetdreamcast-games-best-dreamcast-games/Mon, 27 Nov 2006 05:06:13 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/26/planetdreamcast-games-best-dreamcast-games/<p class="link">
<a href="http://www.planetdreamcast.com/games/best/index.shtml" class="broken_link" rel="nofollow">PlanetDreamcast: Games – Best Dreamcast Games</a>
</p>
<p class="extended">
</p>MogileFShttps://blueslugs.com/2006/11/22/mogilefs/Wed, 22 Nov 2006 22:48:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/22/mogilefs/<p class="link">
<a href="http://www.danga.com/mogilefs/" >MogileFS</a>
</p>
<p class="extended">
Danga’s userland distributed file service.
</p>[cs/0611108] On the Complexity of Processing Massive, Unordered, Distributed Datahttps://blueslugs.com/2006/11/22/cs0611108-on-the-complexity-of-processing-massive-unordered-distributed-data/Wed, 22 Nov 2006 18:50:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/22/cs0611108-on-the-complexity-of-processing-massive-unordered-distributed-data/<p class="link">
<a href="http://arxiv.org/abs/cs/0611108" >[cs/0611108] On the Complexity of Processing Massive, Unordered, Distributed Data</a>
</p>
<p class="extended">
Compares complexity of single stream algorithms to multiple stream algorithms on “massive, unordered, distributed” data.
</p>OpenSolaris Forums: Progress with System z Port …https://blueslugs.com/2006/11/15/opensolaris-forums-progress-with-system-z-port/Wed, 15 Nov 2006 20:12:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/15/opensolaris-forums-progress-with-system-z-port/<p class="link">
<a href="http://www.opensolaris.org/jive/message.jspa?messageID=72809&tstart=0#72809" class="broken_link" rel="nofollow">OpenSolaris Forums: Progress with System z Port …</a>
</p>
<p class="extended">
Neale Ferguson shows some early startup output for a port of OpenSolaris to a System z9 (IBM) mainframe.
</p>Redwood City Center of Palo Alto Medical Foundation, Redwood City, Californiahttps://blueslugs.com/2006/11/15/redwood-city-center-of-palo-alto-medical-foundation-redwood-city-california/Wed, 15 Nov 2006 20:06:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/15/redwood-city-center-of-palo-alto-medical-foundation-redwood-city-california/<p class="link">
<a href="http://www.pamf.org/redwoodcity/index.cfm" class="broken_link" rel="nofollow">Redwood City Center of Palo Alto Medical Foundation, Redwood City, California</a>
</p>
<p class="extended">
PAMF’s new office is now the closest to our home.
</p>Planet OpenSolarishttps://blueslugs.com/2006/11/14/planet-opensolaris/Wed, 15 Nov 2006 00:52:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/14/planet-opensolaris/<p class="link">
<a href="http://planet.opensolaris.org" >Planet OpenSolaris</a>
</p>
<p class="extended">
Brought to life by Gman and stevel! Now, how do I get a kooky headshot up there…?
</p>chandanlog(3C): Copyrights, Licenses and CDDL Illustratedhttps://blueslugs.com/2006/11/14/chandanlog3c-copyrights-licenses-and-cddl-illustrated/Tue, 14 Nov 2006 18:25:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/14/chandanlog3c-copyrights-licenses-and-cddl-illustrated/<p class="link">
<a href="http://blogs.sun.com/chandan/entry/copyrights_licenses_and_cddl_illustrated#comments" >chandanlog(3C): Copyrights, Licenses and CDDL Illustrated</a>
</p>
<p class="extended">
Chandan developed these diagrams a couple of months ago, but since I keep explaining these distinctions over and over, it seems best to make it easier to find.
</p>Tip: Mercurial atop sshhttps://blueslugs.com/2006/11/09/tip-mercurial-atop-ssh/Thu, 09 Nov 2006 18:41:49 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/09/tip-mercurial-atop-ssh/<p>On opensolaris.org, we host Mercurial and Subversion via their ability to tunnel through an SSH connection. A slight gotcha with Mercurial is that it turns off compression when tunnelled through SSH, as described in <code>hg</code>(1):</p>
<pre>$ man hg
....
- Mercurial doesn't use its own compression via SSH; the right thing
to do is to configure it in your ~/.ssh/ssh_config, e.g.:
Host *.mylocalnetwork.example.com
Compression off
Host *
Compression on
Alternatively specify "ssh -C" as your ssh command in your hgrc or
with the --ssh command line option.
....
</pre>
<p>For pulls of a large repository, such as ON, compression changes an approximately 51 minute operation to a 17 minute operation. So you’ll want something like</p>
<pre>$ cat ~/.ssh/config
....
Host hg.opensolaris.org
Compression yes
...
....
</pre> in your SSH configuration.
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/Mercurial" rel="tag nofollow" class="broken_link">Mercurial</a> <a href="http://www.technorati.com/tag/hg" rel="tag nofollow" class="broken_link">hg</a> ]
</p>Ajaxian » Dojo Charting Engine Releasedhttps://blueslugs.com/2006/11/08/ajaxian-dojo-charting-engine-released/Thu, 09 Nov 2006 01:27:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/08/ajaxian-dojo-charting-engine-released/<p class="link">
<a href="http://ajaxian.com/archives/dojo-charting-engine-released" >Ajaxian » Dojo Charting Engine Released</a>
</p>
<p class="extended">
Another AJAX charting library; pleasant looking. Apparently SVG.
</p>milek – ZFS saved our datahttps://blueslugs.com/2006/11/08/milek-zfs-saved-our-data/Wed, 08 Nov 2006 19:29:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/08/milek-zfs-saved-our-data/<p class="link">
<a href="http://milek.blogspot.com/2006/11/zfs-saved-our-data.html" >milek – ZFS saved our data</a>
</p>
<p class="extended">
Robert describes how end-to-end checksum detected and protected against a failing disk controller.
</p>UCSB Kavli Institute for Theoretical Physics: Talkshttps://blueslugs.com/2006/11/08/ucsb-kavli-institute-for-theoretical-physics-talks/Wed, 08 Nov 2006 19:28:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/08/ucsb-kavli-institute-for-theoretical-physics-talks/<p class="link">
<a href="http://www.kitp.ucsb.edu/talks/" >UCSB Kavli Institute for Theoretical Physics: Talks</a>
</p>
<p class="extended">
Published talks and public lectures given at KITP.
</p>OpenSolaris: Documentation tutorial buffethttps://blueslugs.com/2006/11/07/opensolaris-documentation-tutorial-buffet/Tue, 07 Nov 2006 19:33:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/07/opensolaris-documentation-tutorial-buffet/<p>Each of the community groups that make up OpenSolaris is experimenting with different styles of introductory materials (or procedures), so that potential contributors don’t get blocked on the details and can focus on their real intention—contributions. The <a href="http://opensolaris.org/os/community/documentation/" >Documentation community group</a> has been energetically pursuing a complete offering: they have a large document tree, they’re using a <a href="http://http://www.genunix.org/wiki/index.php/OpenSolaris_Documentation_Community_SketchPad" class="broken_link" rel="nofollow">“scratchpad” on the Genunix wiki</a>, and they have at least <a href="http://www.opensolaris.org/jive/forum.jspa?forumID=21" class="broken_link" rel="nofollow">one mailing list</a>. They even have <a href="http://opensolaris.org/os/community/documentation/doc_collab/tutorial/" >a Flash animated tutorial</a>, illustrating how to use a DocBook XML toolchain. Slick.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/documentation" rel="tag nofollow" class="broken_link">documentation</a> DocBook ]
</p>OpenSolaris Day, Buenos Aireshttps://blueslugs.com/2006/11/06/opensolaris-day-buenos-aires/Mon, 06 Nov 2006 19:05:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/06/opensolaris-day-buenos-aires/<p>I’ve been back from Buenos Aires for a week now, and just wanted to comment on my trip, and show the few pictures I managed to take. Like its sister events, Buenos Aires TechDays was a densely packed three day conference, with multiple tracks available on OpenSolaris, Java, NetBeans, SunStudio, Glassfish, and other technologies and platforms. I updated the <a href="https://blueslugs.com/mediacast/t-osol-building-buenos-aires-1006.pdf" >“Building and Deploying OpenSolaris”</a> talk, to cover the convenient <a href="http://opensolaris.org/os/project/starterkit/" >Starter Kit</a>, which has the tools and source (and OS images) and to mention the <a href="http://opensolaris.org/os/project/onnv/" >ONNV</a> Mercurial repository on opensolaris.org.</p>
<p class="note">
The talk was simultaneously translated into Spanish, using some slick IR emitter arrays and receivers. <a href="http://blogs.sun.com/rab/" >Russ</a>, I think, was much more effective, as he gave his presentations in Spanish.
</p>
<p>The event was held at the Hilton Buenos Aires, which is located in the recently redeveloped Puerto Madero area. When <a href="http://blogs.sun.com/teresag/" >Teresa</a> and I walked around on the first day, we saw activity in the harbour, and paused to watch (along with a few hundred other pedestrians), as this tugboat</p>
<p><img src="https://blueslugs.com/mediacast/p-buenos-aires-1006-tug.png" alt="tug" title="Prefectura tugboat"></p>
<p>helped this coast guard ship</p>
<p><img src="https://blueslugs.com/mediacast/p-buenos-aires-1006-ship.png" alt="ship" title="Prefectura ship"></p>
<p>turn out of the relatively narrow channel.</p>
<p>Back at TechDays, we enjoyed the chance to have further technical discussions, with many resolutions</p>
<p><img src="https://blueslugs.com/mediacast/p-buenos-aires-1006-discuss.png" alt="discussion" title="TechDays discussion with Sridhar, Pablo, Gabriel, and Russ"></p>
<p>to study new problems, reengage with old ones, or just return to Argentina.</p>
<p class="note">
The <em>Inquirer</em>‘s Fernando Cassia has <a href="http://www.theinquirer.net/default.aspx?article=35285" >more</a> on the NetBeans portion of the event.
</p>
<p class="note">
In Argentina, but missed TechDays? There’s an <a href="http://opensolaris.org/os/community/os_user_groups/aosug/" >OpenSolaris user group</a>—check it out.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/TechDays" rel="tag nofollow" class="broken_link">TechDays</a> <a href="http://www.technorati.com/tag/Buenos_Aires" rel="tag nofollow" class="broken_link">Buenos_Aires</a> ]
</p>Jeff Bonwick's Weblog: ZFS Block Allocationhttps://blueslugs.com/2006/11/06/jeff-bonwicks-weblog-zfs-block-allocation/Mon, 06 Nov 2006 18:28:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/06/jeff-bonwicks-weblog-zfs-block-allocation/<p class="link">
<a href="http://blogs.sun.com/bonwick/entry/zfs_block_allocation" >Jeff Bonwick’s Weblog: ZFS Block Allocation</a>
</p>
<p class="extended">
Jeff describes the steps involved in allocating blocks across devices in ZFS. (Interested in OS work? Note the open areas of investigation, involving optimum handling in the case of failures and in the cases of different kinds of data.)
</p>NOAA News Online (Story 2724)https://blueslugs.com/2006/11/04/noaa-news-online-story-2724/Sun, 05 Nov 2006 01:13:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/11/04/noaa-news-online-story-2724/<p class="link">
<a href="http://www.noaanews.noaa.gov/stories2006/s2724.htm" >NOAA News Online (Story 2724)</a>
</p>
<p class="extended">
NOAA’s winter weather outlook for 2006-2007. It’s apparently a mild El Niño year, but doesn’t look like we’ll see the rains of ’97-’98.
</p>TinyMCE Javascript Content Editor by Moxiecode Systems ABhttps://blueslugs.com/2006/10/30/tinymce-javascript-content-editor-by-moxiecode-systems-ab/Mon, 30 Oct 2006 23:05:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/30/tinymce-javascript-content-editor-by-moxiecode-systems-ab/<p class="link">
<a href="http://tinymce.moxiecode.com/" >TinyMCE Javascript Content Editor by Moxiecode Systems AB</a>
</p>
<p class="extended">
A JavaScript WYSIWYG HTML editor component.
</p>OpenSolaris Forums: ON Mercurial repository mirror …https://blueslugs.com/2006/10/18/opensolaris-forums-on-mercurial-repository-mirror/Wed, 18 Oct 2006 23:38:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/18/opensolaris-forums-on-mercurial-repository-mirror/<p class="link">
<a href="http://www.opensolaris.org/jive/thread.jspa?threadID=15748" class="broken_link" rel="nofollow">OpenSolaris Forums: ON Mercurial repository mirror …</a>
</p>
<p class="extended">
Steve announces the availability of a public live read-only Mercurial repository for ON. It’s bridged from the main ON TeamWare repository, so new code is available to all, as soon as it’s integrated.
</p>tumgreyspf: Greylisting and SPF for Postfix in Pythonhttps://blueslugs.com/2006/10/18/tumgreyspf-greylisting-and-spf-for-postfix-in-python/Wed, 18 Oct 2006 21:08:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/18/tumgreyspf-greylisting-and-spf-for-postfix-in-python/<p class="link">
<a href="http://www.tummy.com/Community/software/tumgreyspf/" >tumgreyspf: Greylisting and SPF for Postfix in Python</a>
</p>
<p class="extended">
A different greylisting implementation for Postfix. No database dependencies.
</p>Improving the Availability and Performance of Network-Mediated Serviceshttps://blueslugs.com/2006/10/16/improving-the-availability-and-performance-of-network-mediated-services/Tue, 17 Oct 2006 01:04:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/16/improving-the-availability-and-performance-of-network-mediated-services/<p class="link">
<a href="http://www.isoc.org/inet99/proceedings/4g/4g_3.htm" >Improving the Availability and Performance of Network-Mediated Services</a>
</p>
<p class="extended">
A now-older investigation into load balancing proxy servers, here SOCKS4/5 and HTTP.
</p>Periodic reducation of email interrupt ratehttps://blueslugs.com/2006/10/11/periodic-reducation-of-email-interrupt-rate/Wed, 11 Oct 2006 20:23:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/11/periodic-reducation-of-email-interrupt-rate/<p>At work, I’ve ended up on many email aliases; since we moved to pursuing open development on <a href="http://opensolaris.org" >opensolaris.org</a>, 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.</p>
<p>I’ve had a small email toolset built around <a href="http://www.mutt.org/" >the Mutt email client</a> (or mail user agent (MUA) in email-speak). My <code>.muttrc</code> includes <code>$HOME/.mailboxes</code>, which is a list of the mail inboxes into which my <code>procmail</code> filter delivers. The <code>m</code> and <code>check</code> commands use <code>.mailboxes</code> 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.</p>
<p>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 <code>.mailboxes</code> outlined above, the solution is pretty easy:</p>
<ol>
<li>Move <code>.mailboxes</code> to <code>.mailboxes.offprime</code>.</li>
<li>Take a copy of <code>.mailboxes.offprime</code> as <code>.mailboxes.prime</code>. Prune the prime mailboxes severely.</li>
<li>Install these files in <code>$HOME</code>. (My Makefiles do this, and all the mailbox lists and the Makefiles are version-controlled.)</li>
<li>Add something like the following using <code>crontab -e</code>:
<pre># We want to eliminate mail testing on all mailboxes during prime work</li>
</ol>
<h1 id="hours--this-change-means-that-between-12pm---6pm-mailboxes-is">hours. This change means that between 12pm - 6pm, mailboxes is</h1>
<h1 id="pointed-to-a-reduced-mailboxes-file">pointed to a reduced mailboxes file.</h1>
<p>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
</pre></p>
<ol start="5">
<li>Run whichever of the two <code>ln</code>(1) invocations above correspond to the current time.</li>
</ol>
<p>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.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/mutt" rel="tag nofollow" class="broken_link">mutt</a> procmail ]
</p>Periodic reducation of email interrupt ratehttps://blueslugs.com/2006/10/11/periodic-reducation-of-email-interrupt-rate-2/Wed, 11 Oct 2006 20:22:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/11/periodic-reducation-of-email-interrupt-rate-2/<p>At work, I’ve ended up on many email aliases; since we moved to pursuing open development on <a href="http://opensolaris.org" >opensolaris.org</a>, 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.</p>
<p>I’ve had a small email toolset built around <a href="http://www.mutt.org/" >the Mutt email client</a> (or mail user agent (MUA) in email-speak). My <code>.muttrc</code> includes <code>$HOME/.mailboxes</code>, which is a list of the mail inboxes into which my <code>procmail</code> filter delivers. The <code>m</code> and <code>check</code> commands use <code>.mailboxes</code> 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.</p>
<p>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 <code>.mailboxes</code> outlined above, the solution is pretty easy:</p>
<ol>
<li>Move <code>.mailboxes</code> to <code>.mailboxes.offprime</code>.</li>
<li>Take a copy of <code>.mailboxes.offprime</code> as <code>.mailboxes.prime</code>. Prune the prime mailboxes severely.</li>
<li>Install these files in <code>$HOME</code>. (My Makefiles do this, and all the mailbox lists and the Makefiles are version-controlled.)</li>
<li>Add something like the following using <code>crontab -e</code>:
<pre># We want to eliminate mail testing on all mailboxes during prime work</li>
</ol>
<h1 id="hours--this-change-means-that-between-12pm---6pm-mailboxes-is">hours. This change means that between 12pm - 6pm, mailboxes is</h1>
<h1 id="pointed-to-a-reduced-mailboxes-file">pointed to a reduced mailboxes file.</h1>
<p>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
</pre></p>
<ol start="5">
<li>Run whichever of the two <code>ln</code>(1) invocations above correspond to the current time.</li>
</ol>
<p>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.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/mutt" rel="tag nofollow" class="broken_link">mutt</a> procmail ]
</p>OpenSolaris: TechDays, Buenos Aires, 23 – 25 Octoberhttps://blueslugs.com/2006/10/11/opensolaris-techdays-buenos-aires-23-25-october/Wed, 11 Oct 2006 19:24:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/11/opensolaris-techdays-buenos-aires-23-25-october/<p>I’ll be visiting Argentina for the first time, to present at the <a href="http://developers.sun.com/events/techdays/" >upcoming TechDays</a> in Buenos Aires. As with all TechDays, the event itself is free, but you must <a href="http://ar.sun.com/sunnews/events/2006/techdays/index.html" >register in advance</a>. The event is being held at the Hilton Buenos Aires; OpenSolaris day is 23 October.</p>
<p>As always, if you want to meet up and talk about <a href="http://opensolaris.org" >OpenSolaris</a>, software development in Argentina, or any other topic, leave me a comment or send me some email.</p>
<p class="note">
I’m a little tired today, as I made a round-trip to Los Angeles to visit the Argentinian consulate there and obtain a visa. 700+ miles on the road, but the friendly officers were able to do the turnaround in only a few hours.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/TechDays" rel="tag nofollow" class="broken_link">TechDays</a> <a href="http://www.technorati.com/tag/Buenos_Aires" rel="tag nofollow" class="broken_link">Buenos_Aires</a> ]
</p>Parallel BZIP2 (PBZIP2)https://blueslugs.com/2006/10/06/parallel-bzip2-pbzip2/Fri, 06 Oct 2006 18:36:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/06/parallel-bzip2-pbzip2/<p class="link">
<a href="http://compression.ca/pbzip2/" >Parallel BZIP2 (PBZIP2)</a>
</p>
<p class="extended">
A parallel implementation of the bzip2 compression implementation, using POSIX threads. C++, wrapping base routines from libbz2.
</p>milek's blog: SMF management for normal usershttps://blueslugs.com/2006/10/05/mileks-blog-smf-management-for-normal-users/Thu, 05 Oct 2006 21:57:24 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/05/mileks-blog-smf-management-for-normal-users/<p class="link">
<a href="http://milek.blogspot.com/2006/10/smf-management-for-normal-users.html" >milek’s blog: SMF management for normal users</a>
</p>
<p class="extended">
Robert gives an example of authorization assignments so that an unprivileged user can manage a service via smf(5).
</p>Derek Crudgington » Blog Archive » SMF Monitor Alert v1https://blueslugs.com/2006/10/04/derek-crudgington-blog-archive-smf-monitor-alert-v1/Wed, 04 Oct 2006 18:23:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/04/derek-crudgington-blog-archive-smf-monitor-alert-v1/<p class="link">
<a href="http://hell.jedicoder.net/?p=83" class="broken_link" rel="nofollow">Derek Crudgington » Blog Archive » SMF Monitor Alert v1</a>
</p>
<p class="extended">
Derek’s got a preliminary release of a daemon that monitors smf(5) managed services.
</p>Solaris PowerPC Port at OpenSolaris.orghttps://blueslugs.com/2006/10/03/solaris-powerpc-port-at-opensolarisorg/Tue, 03 Oct 2006 22:46:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/03/solaris-powerpc-port-at-opensolarisorg/<p class="link">
<a href="http://www.opensolaris.org/os/project/ppc-dev/" class="broken_link" rel="nofollow">Solaris PowerPC Port at OpenSolaris.org</a>
</p>
<p class="extended">
The effort to bring OpenSolaris back to PowerPC made its first large code drop today.
</p>Mailgraph Homepagehttps://blueslugs.com/2006/10/03/mailgraph-homepage/Tue, 03 Oct 2006 21:28:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/10/03/mailgraph-homepage/<p class="link">
<a href="http://people.ee.ethz.ch/~dws/software/mailgraph/" class="broken_link" rel="nofollow">Mailgraph Homepage</a>
</p>
<p class="extended">
“A very simple mail statistics RRDtool frontend for Postfix and Sendmail”, by the author of Postgrey.
</p>Martin Englund's Weblog: Mercurial for TeamWare usershttps://blueslugs.com/2006/09/27/martin-englunds-weblog-mercurial-for-teamware-users/Wed, 27 Sep 2006 18:33:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/27/martin-englunds-weblog-mercurial-for-teamware-users/<p class="link">
<a href="http://blogs.sun.com/martin/entry/mercurial_for_teamware_users" >Martin Englund’s Weblog: Mercurial for TeamWare users</a>
</p>
<p class="extended">
Martin assembled a quick concept map from TeamWare commands to Mercurial commands.
</p>Martin Englund's Blog: Migrating from TeamWare to a new SCMhttps://blueslugs.com/2006/09/27/martin-englunds-blog-migrating-from-teamware-to-a-new-scm/Wed, 27 Sep 2006 18:24:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/27/martin-englunds-blog-migrating-from-teamware-to-a-new-scm/<p class="link">
<a href="http://weblogs.java.net/blog/martin/archive/2006/09/migrating_from_1.html" class="broken_link" rel="nofollow">Martin Englund’s Blog: Migrating from TeamWare to a new SCM</a>
</p>
<p class="extended">
And Martin’s been looking at the performance and resource issues anticipated by the SCM switch for Java.
</p>Kelly O'Hair's Blog: Teamware, Mercurial, and SCCS revs that go bump in the nighthttps://blueslugs.com/2006/09/27/kelly-ohairs-blog-teamware-mercurial-and-sccs-revs-that-go-bump-in-the-night/Wed, 27 Sep 2006 18:23:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/27/kelly-ohairs-blog-teamware-mercurial-and-sccs-revs-that-go-bump-in-the-night/<p class="link">
<a href="http://weblogs.java.net/blog/kellyohair/archive/2006/09/teamware_and_me.html" class="broken_link" rel="nofollow">Kelly O’Hair’s Blog: Teamware, Mercurial, and SCCS revs that go bump in the night</a>
</p>
<p class="extended">
Kelly, on the technical aspects of converting TeamWare history to Mercurial.
</p>Mark Reinhold?s Other Blog: Source-code management for an open JDKhttps://blueslugs.com/2006/09/27/mark-reinholds-other-blog-source-code-management-for-an-open-jdk/Wed, 27 Sep 2006 18:21:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/27/mark-reinholds-other-blog-source-code-management-for-an-open-jdk/<p class="link">
<a href="http://blogs.sun.com/mr/entry/openjdk_scm" >Mark Reinhold?s Other Blog: Source-code management for an open JDK</a>
</p>
<p class="extended">
Mark’s the Chief Engineer for Java SE, which is shifting to become an open development project. Here Mark talks about their intent to investigate Mercurial as a preferred SCM candidate, as OpenSolaris did.
</p>Solaris vs. Asterisk running Asterisk PBXhttps://blueslugs.com/2006/09/26/solaris-vs-asterisk-running-asterisk-pbx/Wed, 27 Sep 2006 04:25:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/26/solaris-vs-asterisk-running-asterisk-pbx/<p class="link">
<a href="http://www.thrallingpenguin.com/articles/asterisk-solaris.htm" class="broken_link" rel="nofollow">Solaris vs. Asterisk running Asterisk PBX</a>
</p>
<p class="extended">
A comparison of various systems running the Asterisk software PBX.
</p>Google testing Sun's OpenSolaris, sources sayhttps://blueslugs.com/2006/09/21/google-testing-suns-opensolaris-sources-say/Thu, 21 Sep 2006 16:24:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/21/google-testing-suns-opensolaris-sources-say/<p class="link">
<a href="http://computerworld.com/action/article.do?command=viewArticleBasic&articleId=9003492&pageNumber=1" class="broken_link" rel="nofollow">Google testing Sun’s OpenSolaris, sources say</a>
</p>
<p class="extended">
Eric Lai finds other organizations are deploying or reevaluating OpenSolaris as well.
</p>OpenSolaris: Gary's in Brusselshttps://blueslugs.com/2006/09/19/opensolaris-garys-in-brussels/Tue, 19 Sep 2006 19:39:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/19/opensolaris-garys-in-brussels/<p><a href="http://blogs.sun.com/garypen/" >Gary Pennington</a> is attending <a href="http://conferences.oreillynet.com/euos2006/" >EuroOSCON</a>, being held this week in <a href="http://en.wikipedia.org/wiki/Brussels" >Brussels</a>. He’s <a href="http://blogs.sun.com/garypen/entry/eurooscon_sessions" >reporting</a> on the various sessions. Worth a read, particularly if you’ve not been to an open source conference in a while…</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> EuroOSCON <a href="http://www.technorati.com/tag/Brussels" rel="tag nofollow" class="broken_link">Brussels</a> ]
</p>Reading at work: Rosenfeld and Morville's Information Architecture for the World Wide Web, 2ehttps://blueslugs.com/2006/09/18/reading-at-work-rosenfeld-and-morvilles-information-architecture-for-the-world-wide-web-2e/Mon, 18 Sep 2006 20:12:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/18/reading-at-work-rosenfeld-and-morvilles-information-architecture-for-the-world-wide-web-2e/<p>My flight to Seattle’s TechDays a couple of weeks ago ended up being delayed by about an hour, so I had enough reading time to finish the second edition of <a href="http://www.louisrosenfeld.com/" >Louis Rosenfeld</a> and <a href="http://semanticstudios.com/" >Peter Morville</a>‘s <a href="http://www.oreilly.com/catalog/infotecture2/" >Information Architecture for the World Wide Web</a>.</p>
<p class="note">
Because the book’s publication date is 2002, the various dynamic elements of AJAX-style interactions are touched upon very lightly. The book ends up arguing along the lines of “designing for the lowest fidelity is safest”, but I’m not sure that browser expectations can be traded away so quickly today. Certainly some of the example websites cited in the text now use a substantial amount of AJAX enhancements that improve site interaction.
</p>
<p>Rosenfeld and Morville’s main point is that information architecture—the organization of information so that that information can be successfully retrieved by the various individuals that interact with a site—is hard. Having spent some time worrying about how to publish the engineering workflow around ON (and, I believe, OpenSolaris more widely) open software development, and to make sure that that publication is navigable and meaningful over time, I can only agree. The book presents a medium-scale overview of information architecture: there are “basic principles” chapters on organization, labelling, navigation, and search, as well as case studies and thoughts about practice. Various classic tradeoffs, simple usability tests, and kinds of site prototypes are concisely introduced and then expanded upon, leading to more advanced considerations.</p>
<p>Beyond the illustrative examples from a wide set of websites, one thing that was of particular value to me was learning about the potential role of thesauruses as a specific form of metadata, and how that metadata can be used to make search-based navigation capture a larger set of related documents. We’re also outgrowing the initial design for the opensolaris.org site, so we’ll use some of the ideas presented in the “Process and Methodology” section. The example strategy document is also a useful case study—we probably need to develop a similar document for <a href="http://opensolaris.org" >opensolaris.org</a> in a collaborative fashion in the <a href="http://opensolaris.org/os/project/website/" >website project</a>.</p>
<p>The authors also identify some of the potential career forms an information architectural role might take, as well as how information architecture’s shared boundaries with implementation and graphic design are fuzzy. It seems to me that every substantial open development community needs some kind of information architecture, if only to support the classic user/developer audience split, so some of the credentials they suggest might be necessary for a <em>corporate</em> information architect appear elite, or unusual, for a community effort.</p>
<p>Interesting.</p>
<p class="note">
Available via Sun’s subscription to the O’Reilly Safari online library.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/TechDays" rel="tag nofollow" class="broken_link">TechDays</a> ]
</p>OpenSolaris Day, Seattlehttps://blueslugs.com/2006/09/07/opensolaris-day-seattle/Thu, 07 Sep 2006 21:23:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/09/07/opensolaris-day-seattle/<p>It’s nice to be in Seattle. I spent a couple of weeks on the <a href="http://www.washington.edu/" >UW</a> campus a dozen or so years ago; on customer visits, we’re ususally in a suburb. Enjoying the chance to wander in a different downtown, I decided to walk from the hotel to the TechDays site, at Marion Oliver McCaw Hall, in Seattle Center.</p>
<p>This let me do a few errands—like eat a quick breakfast at Specialty Café and replace the broken SD card for my camera—and walk past a well known building</p>
<p><img src="https://blueslugs.com/mediacast/p-seattle-0906-needle.png" alt="space needle" title="Spac
e Needle above dishes"></p>
<p>and under the disappointingly-testing-only-service monorail</p>
<p><img src="https://blueslugs.com/mediacast/p-seattle-0906-monorail.png" alt="monorail" title="Monorail in test service"></p>
<p class="note">
Has no one learned from North Haverbrook?
</p>
<p>We had an audience split roughly between developers and administrators at the first of a global series of OpenSolaris TechDays. After an introduction by Teresa, I gave <a href="http://blogs.sun.com/fvdl/" >Frank</a>‘s new presentation, “Building and Deploying OpenSolaris”, which is an overview of what’s out there and how to build some of it. Post-presentation, we got some good questions: on switching easily between the various in-progress development project variants; on various forking scenarios; )and on arriving at a shared development methodology. I think the talk actually has some room for covering one or two more topics, but I’ve <a href="https://blueslugs.com/mediacast/p-seattle-0906-building.pdf" >posted the presentation</a> in the meanwhile.</p>
<p>Nicolas, Glenn, and Jim gave great technical talks on Virtualization, Security, and Performance for OpenSolaris, respectively. Slides for all of these talks should be at <a href="http://developers.sun.com/techdays/" >the TechDays developer site</a>.</p>
<p>We finished with an open question-and-answer session.</p>
<p><</p>
<p>p>On Thursday’s TechDays session, there is a Solaris track which should provide folks with additional information about Solaris futures—derived, of course, from OpenSolaris—as well as development techniques available atop OpenSolaris systems. I’ll be around until late afternoon, when I’ll take <a href="http://transit.metrokc.gov/tops/bus/schedules/s194_0_.html" class="broken_link" rel="nofollow">#194</a> back to the airport.</ p></p>
<p class="note">
Thanks all those who came, plus nods to Clayton for the conversations as well as a fine restaurant recommendation, the fellow at the airport who pointed out the fast bus to downtown, and to the folks who drove 350 miles round trip from Portland for the day.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/TechDays" rel="tag nofollow" class="broken_link">TechDays</a> <a href="http://www.technorati.com/tag/Seattle" rel="tag nofollow" class="broken_link">Seattle</a> ]
</p>Edgewall Software: Python Sidebarhttps://blueslugs.com/2006/08/24/edgewall-software-python-sidebar/Thu, 24 Aug 2006 17:00:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/24/edgewall-software-python-sidebar/<p class="link">
<a href="http://www.edgewall.org/python-sidebar/" >Edgewall Software: Python Sidebar</a>
</p>
<p class="extended">
A sidebar for Mozilla–or Firefox–with many categorized links to, and into, various Python references.
</p>The PracTeX Journal – TeX Users Grouphttps://blueslugs.com/2006/08/23/the-practex-journal-tex-users-group/Thu, 24 Aug 2006 04:25:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/23/the-practex-journal-tex-users-group/<p class="link">
<a href="http://tug.org/pracjourn/index.html" >The PracTeX Journal – TeX Users Group</a>
</p>
<p class="extended">
A magazine on TeX/LaTeX, hosted by TuG.
</p>OpenSolaris: TechDays, Seattle, 5 – 7 Septemberhttps://blueslugs.com/2006/08/22/opensolaris-techdays-seattle-5-7-september/Tue, 22 Aug 2006 19:47:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/22/opensolaris-techdays-seattle-5-7-september/<p>I’ll be up in the Seattle area for 5 – 7 September—I’ll be presenting on <a href="http://opensolaris.org" >OpenSolaris</a> at the upcoming <a href="http://developers.sun.com/events/techdays/" >Tech Days</a> there. If you’re interested in attending, then get over to <a href="http://www.cplan.com/suntechdays06/seattle" title="Register for Tech Days">the registration site</a>; the event is free, but space is limited.</p>
<p class="note">
(Undecided? Peruse the Seattle <a href="http://developers.sun.com/events/techdays/2006/US_SEA.jsp" title="Seattle Tech Days Agenda">agenda</a>.)
</p>
<p>If you’d like to have a beer or a coffee and talk about OpenSolaris, Solaris, software development, or the like, drop me a line. 6 September has the main OpenSolaris track, but I’ll be around the evening before and most of the day following.</p>
<p class="note">
I can’t <a href="http://www.opensolaris.org/os/community/os_user_groups/" title="OpenSolaris User Groups" class="broken_link" rel="nofollow">find one here</a>, so I’ll ask: anyone thinking about starting a Seattle OSUG?
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/Tech_Days" rel="tag nofollow" class="broken_link">Tech_Days</a> <a href="http://www.technorati.com/tag/Seattle" rel="tag nofollow" class="broken_link">Seattle</a> ]
</p>opends: An open source directory serverhttps://blueslugs.com/2006/08/21/opends-an-open-source-directory-server/Mon, 21 Aug 2006 18:17:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/21/opends-an-open-source-directory-server/<p class="link">
<a href="https://opends.dev.java.net/" class="broken_link" rel="nofollow">opends: An open source directory server</a>
</p>
<p class="extended">
Implemented in Java, licensed under CDDL, initial team composed of Sun directory engineers.
</p>Angry Kitchen Appliances: Drives a Saab 9-5https://blueslugs.com/2006/08/13/angry-kitchen-appliances-drives-a-saab-9-5/Mon, 14 Aug 2006 01:41:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/13/angry-kitchen-appliances-drives-a-saab-9-5/<p class="link">
<a href="http://www.mitt-eget.com/saab/" class="broken_link" rel="nofollow">Angry Kitchen Appliances: Drives a Saab 9-5</a>
</p>
<p class="extended">
And has written one of the few 9-5 specific FAQs I’ve found.
</p>fabprefab – modernist prefab dwellingshttps://blueslugs.com/2006/08/11/fabprefab-modernist-prefab-dwellings/Sat, 12 Aug 2006 05:11:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/11/fabprefab-modernist-prefab-dwellings/<p class="link">
<a href="http://fabprefab.com/" >fabprefab – modernist prefab dwellings</a>
</p>
<p class="extended">
Tracks developments in modern manufactured or prefabricated houses.
</p>YAP Prologhttps://blueslugs.com/2006/08/09/yap-prolog/Thu, 10 Aug 2006 04:46:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/09/yap-prolog/<p class="link">
<a href="http://www.ncc.up.pt/~vsc/Yap/" >YAP Prolog</a>
</p>
<p class="extended">
Another Warren Abstract Machine-based implementation.
</p>Home – tuProloghttps://blueslugs.com/2006/08/09/home-tuprolog/Thu, 10 Aug 2006 04:45:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/09/home-tuprolog/<p class="link">
<a href="http://www.alice.unibo.it:8080/tuProlog/" class="broken_link" rel="nofollow">Home – tuProlog</a>
</p>
<p class="extended">
Java-based implementation.
</p>AI::Prolog – Perl extension for logic programming. – search.cpan.orghttps://blueslugs.com/2006/08/09/aiprolog-perl-extension-for-logic-programming-searchcpanorg/Thu, 10 Aug 2006 04:44:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/09/aiprolog-perl-extension-for-logic-programming-searchcpanorg/<p class="link">
<a href="http://search.cpan.org/~ovid/AI-Prolog-0.734/lib/AI/Prolog.pm" >AI::Prolog – Perl extension for logic programming. – search.cpan.org</a>
</p>
<p class="extended">
Pure Perl implementation.
</p>The GNU Prolog web sitehttps://blueslugs.com/2006/08/09/the-gnu-prolog-web-site/Thu, 10 Aug 2006 04:43:55 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/09/the-gnu-prolog-web-site/<p class="link">
<a href="http://pauillac.inria.fr/~diaz/gnu-prolog/" class="broken_link" rel="nofollow">The GNU Prolog web site</a>
</p>
<p class="extended">
Compiler. Uses Warren Abstract Machine representation.
</p>A not-quite-isochronous upgradehttps://blueslugs.com/2006/08/09/a-not-quite-isochronous-upgrade/Wed, 09 Aug 2006 17:33:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/08/09/a-not-quite-isochronous-upgrade/<p>In the midst of many pieces of work, a <a href="http://sun.com/desktop/workstation/ultra40/" >new machine</a> showed up on my doorstep. It’s pretty sweet, and I wanted to get it running latest Solaris Nevada bits. So I repartitioned the disk to make room for an additional boot environment (BE), updated the Live Upgrade support, upgraded (to Build 44), and got back to work.</p>
<p>But this week I saw something pretty strange. I was working on making some software more portable, updating some Makefiles as well as changing some of the source. On a rebuild, my gcc compilation failed with</p>
<pre><code>collect2: ld terminated with signal 9 [Killed]
ld.so.1: ld: fatal: libld.so.4: version `SUNWprivate_4.2' not found (required by file /usr/ccs/bin/ld)
ld.so.1: ld: fatal: libld.so.4: open failed: No such file or directory
ld.so.1: ld: fatal: relocation error: file /usr/ccs/bin/ld: symbol ld32_main: referenced symbol not found
</code></pre>
<p>After checking with a few neighbours about any recent linker fixes, and reviewing package installation times, we finally started looking inside the binaries. The version from the install server showed Build 44:</p>
<pre><code>$ mcs -p reloc/usr/ccs/bin/ld
reloc/usr/ccs/bin/ld:
@(#)SunOS 5.11 snv_44 October 2007
</code></pre>
<p>But the version installed on the machine was from the future:</p>
<pre><code>$ mcs -p /usr/ccs/bin/ld
/usr/ccs/bin/ld:
@(#)SunOS 5.11 snv_45 October 2007
</code></pre>
<p>What were we running on this box?</p>
<pre><code>$ cat /etc/motd
Sun Microsystems Inc. SunOS 5.11 snv_44 October 2007
</code></pre>
<p>I suppose if this were an <a href="http://en.wikipedia.org/wiki/Encyclopedia_Brown" >Encyclopedia Brown</a> mystery, you would have to flip to the end of the book to discover the solution to the mystery. Unfortunately, I haven’t given you quite enough information–you need to know how our install servers share new images.</p>
<p>As you might expect, there is a large set of install servers available across Sun. Some are run by IT operations, some are in development labs—but all pull their images across at different times. It turns out that the most recent build is linked to a directory called “<code>latest</code>“, so that one can reinstall a system every two weeks and have it running the most recently assembled version of Solaris.</p>
<p>Generally, the action to get a copy of the newest image and update the links happens automatically, and outside of business hours. But sometimes in a development lab, someone wants an image early, perhaps to upgrade a collection of test machines for verification purposes. And, it turns out, <code>luupgrade</code>(1M) works just fine across such a rename, if it’s not specifically accessing the filesystem during the image changeover. So my Live Upgrade installed a swathe of packages from 44 followed by a smattering from 45.</p>
<p>One more Live Upgrade (using the numbered path, rather than <code>latest</code>) to Build 45, and it’s back to porting.</p>
<p class="note">
This problem isn’t going to be seen very often—particularly if you don’t have a multi-version install server setup like we do—but it seems appropriate to document the underlying issue: Live Upgrade doesn’t detect an image change during the operation. I’m not sure it should, but it’s pretty clear that the underlying package operations are incomplete with respect to versioned dependencies.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/install" rel="tag nofollow" class="broken_link">install</a> luupgrade ]
</p>Weird UPS package statehttps://blueslugs.com/2006/07/26/weird-ups-package-state/Thu, 27 Jul 2006 05:33:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/26/weird-ups-package-state/<p>I’ve been waiting for a new electric fan to arrive. I checked in on the shipment today, and the UPS site reports:</p>
<pre>07/26/2006 5:30 A.M. THE PACKAGE IS DELAYED DUE TO EMERGENCY CONDITIONS BEYOND UPS' CONTROL
</pre> On the retailer’s site, this state is reported as a “Delay in delivery due to external factors”.
<p>Huh. Well, I hope it shows up soon: it’s still taking a while for the house to cool down in the evening.</p>GNATShttps://blueslugs.com/2006/07/25/gnats/Wed, 26 Jul 2006 00:01:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/25/gnats/<p class="link">
<a href="http://www.gnu.org/software/gnats/" >GNATS</a>
</p>
<p class="extended">
The FSF/GNU problem report management system.
</p>OpenSolaris: Noted on zfs-discusshttps://blueslugs.com/2006/07/25/opensolaris-noted-on-zfs-discuss/Tue, 25 Jul 2006 19:07:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/25/opensolaris-noted-on-zfs-discuss/<p>Since the break, I’ve been working with <a href="http://blogs.sun.com/garypen" >Gary</a>, <a href="http://whacked.net" >Steve</a>, <a href="http://blogs.sun.com//dcicero" >Derek</a> and <a href="http://blogs.sun.com/alanbur" >Alan</a>—plus Dermot and Bonnie, neither of whom blog—on the source code repository hosting for <a href="http://opensolaris.org" >opensolaris.org</a>, which I expect will come out of Beta pretty soon. The <a href="http://www.opensolaris.org/os/community/tools/scm/scmhostspec/" class="broken_link" rel="nofollow">hosting model</a> we worked out showed its versatility last week, when we added <a href="http://selenic.com/mercurial" class="broken_link" rel="nofollow">Mercurial</a> support to the test site with only a few hours of work. (We had been doing the initial development using only <a href="http://subversion.tigris.org" class="broken_link" rel="nofollow">Subversion</a> repositories.) There are still a few bugs to fix and a few features to add, but adding this capability will take our open development effort a sizeable step forward.</p>
<p class="note">
In fact, I need to put the <span
class="caps">SCM</span> work aside soon and join in the structuring of the final review of the OpenSolaris constitution. If you’re interested, see the <a href="http://www.genunix.org/wiki/index.php/Category:Governance" class="broken_link" rel="nofollow">Governance category</a> at <a href="http://www.genunix.org/" >genunix.org</a>.
</p>
<p>But I’m still keeping up with the mail flows. One particularly interesting alias is zfs-discuss, which is a mix of the <span
class="caps">ZFS</span> developers, early adopters, and potential deployers. There’s been discussions on reliability, Thumper, and a few issues people have had using <code>zfs</code>(1M) and <code>zpool</code>(1M). Occasionally, something more curious pops up, like <a href="http://mail.opensolaris.org/pipermail/zfs-discuss/2006-July/003903.html" class="broken_link" rel="nofollow">Jim Connors’s posting</a>, where he reveals</p>
<blockquote>
<p>… I have a version of Solaris 10 U2 with <span
class="caps">ZFS</span> functionality with a disk footprint of about 60MB. Creating a miniroot based upon this image, it can be compressed to under 30MB. Currently, I load this image onto a <span
class="caps">USB</span> keyring and boot from the <span
class="caps">USB</span> device running the Solaris miniroot out of <span
class="caps">RAM</span>.</p>
</blockquote>
<p>Neat.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/zfs" rel="tag nofollow" class="broken_link">zfs</a> <a href="http://www.technorati.com/tag/Mercurial" rel="tag nofollow" class="broken_link">Mercurial</a> <a href="http://www.technorati.com/tag/Subversion" rel="tag nofollow" class="broken_link">Subversion</a> ]
</p>Docutils: Documentation Utilitieshttps://blueslugs.com/2006/07/24/docutils-documentation-utilities/Mon, 24 Jul 2006 18:14:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/24/docutils-documentation-utilities/<p class="link">
<a href="http://docutils.sourceforge.net/" >Docutils: Documentation Utilities</a>
</p>
<p class="extended">
A lightweight markup language and utilities. Written in Python, and with related activity in the PEP processes.
</p>Solaris VoIP – VoIP Telephony Software and Hardware for Solaris and Asteriskhttps://blueslugs.com/2006/07/17/solaris-voip-voip-telephony-software-and-hardware-for-solaris-and-asterisk/Mon, 17 Jul 2006 18:25:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/17/solaris-voip-voip-telephony-software-and-hardware-for-solaris-and-asterisk/<p class="link">
<a href="http://www.solarisvoip.com/" >Solaris VoIP – VoIP Telephony Software and Hardware for Solaris and Asterisk</a>
</p>
<p class="extended">
“Solaris Voip holds the responsibility for the development of Zaptel device drivers for Solaris – the most advanced UNIX operating system in the world. Additionally, Solaris Voip maintains Asterisk PBX packages for Solaris.”
</p>[quant-ph/0312174] Quantum Computation, Categorical Semantics and Linear Logichttps://blueslugs.com/2006/07/13/quant-ph0312174-quantum-computation-categorical-semantics-and-linear-logic/Fri, 14 Jul 2006 00:36:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/13/quant-ph0312174-quantum-computation-categorical-semantics-and-linear-logic/<p class="link">
<a href="http://www.arxiv.org/abs/quant-ph/0312174" >[quant-ph/0312174] Quantum Computation, Categorical Semantics and Linear Logic</a>
</p>
<p class="extended">
A follow-on paper. From the abstract: “In our semantics, terms inhabit certain Hilbert bundles, and computations are interpreted as the appropriate inner product preserving maps between Hilbert bundles. These bundles and maps form a symmetric monoidal c
</p>[quant-ph/0307150] A Lambda Calculus for Quantum Computationhttps://blueslugs.com/2006/07/13/quant-ph0307150-a-lambda-calculus-for-quantum-computation/Fri, 14 Jul 2006 00:35:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/13/quant-ph0307150-a-lambda-calculus-for-quantum-computation/<p class="link">
<a href="http://arxiv.org/abs/quant-ph/0307150" >[quant-ph/0307150] A Lambda Calculus for Quantum Computation</a>
</p>
<p class="extended">
Andre’s paper.
</p>Andre van Tonder: A lambda calculus for quantum computationhttps://blueslugs.com/2006/07/13/andre-van-tonder-a-lambda-calculus-for-quantum-computation/Fri, 14 Jul 2006 00:35:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/13/andre-van-tonder-a-lambda-calculus-for-quantum-computation/<p class="link">
<a href="http://www.het.brown.edu/people/andre/qlambda/index.html" >Andre van Tonder: A lambda calculus for quantum computation</a>
</p>
<p class="extended">
A simulator for Scheme extended to allow quantum calculation.
</p>Open Source Developers' Conference, 20-22 February 2007, Israelhttps://blueslugs.com/2006/07/11/open-source-developers-conference-20-22-february-2007-israel/Tue, 11 Jul 2006 22:42:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/11/open-source-developers-conference-20-22-february-2007-israel/<p class="link">
<a href="http://www.osdc.org.il/2007/" >Open Source Developers’ Conference, 20-22 February 2007, Israel</a>
</p>
<p class="extended">
In Netanya; paper proposals due September 2006.
</p>GEOPRODUCTS CORP – Advanced Construction Technology – salvaverdehttps://blueslugs.com/2006/07/10/geoproducts-corp-advanced-construction-technology-salvaverde/Mon, 10 Jul 2006 20:19:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/07/10/geoproducts-corp-advanced-construction-technology-salvaverde/<p class="link">
<a href="http://www.geoproducts.ca/geoaxa.php?to=salvaverde&sw=geo&dm=gp" class="broken_link" rel="nofollow">GEOPRODUCTS CORP – Advanced Construction Technology – salvaverde</a>
</p>
<p class="extended">
A plastic product, composed of hexagonal cells, that allows the construction of a grassy driveway.
</p>Jiniology Articleshttps://blueslugs.com/2006/06/29/jiniology-articles/Fri, 30 Jun 2006 04:43:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/29/jiniology-articles/<p class="link">
<a href="http://www.artima.com/jini/jiniology/index.html" >Jiniology Articles</a>
</p>
<p class="extended">
A collection of articles on Jini programming.
</p>How to Write Parallel Programshttps://blueslugs.com/2006/06/29/how-to-write-parallel-programs/Fri, 30 Jun 2006 04:40:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/29/how-to-write-parallel-programs/<p class="link">
<a href="http://www.lindaspaces.com/book/index.html" >How to Write Parallel Programs</a>
</p>
<p class="extended">
Nicholas Carriero and David Gelernter’s 1992 text. Uses Linda as a model.
</p>Edsger Dijkstra – How do we tell truths that might hurt?https://blueslugs.com/2006/06/29/edsger-dijkstra-how-do-we-tell-truths-that-might-hurt/Thu, 29 Jun 2006 17:14:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/29/edsger-dijkstra-how-do-we-tell-truths-that-might-hurt/<p class="link">
<a href="http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html" >Edsger Dijkstra – How do we tell truths that might hurt?</a>
</p>
<p class="extended">
It’s not hard to think of a few more truths that could be added to Dijkstra’s list.
</p>How to design programshttps://blueslugs.com/2006/06/23/how-to-design-programs/Sat, 24 Jun 2006 03:46:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/23/how-to-design-programs/<p class="link">
<a href="http://www.htdp.org/2003-09-26/Book/" >How to design programs</a>
</p>
<p class="extended">
A textbook.
</p>System V IPC at OpenSolaris.orghttps://blueslugs.com/2006/06/23/system-v-ipc-at-opensolarisorg/Fri, 23 Jun 2006 18:54:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/23/system-v-ipc-at-opensolarisorg/<p class="link">
<a href="http://www.opensolaris.org/os/project/rm/rctls/sysv/" class="broken_link" rel="nofollow">System V IPC at OpenSolaris.org</a>
</p>
<p class="extended">
Dave Powell posted detailed information about Solaris 10’s handling of System V IPC (shared memory, message queues, and semaphore) limits via resource controls.
</p>Brooks Brothers | Classic Tie Knotshttps://blueslugs.com/2006/06/22/brooks-brothers-classic-tie-knots/Thu, 22 Jun 2006 09:12:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/22/brooks-brothers-classic-tie-knots/<p class="link">
<a href="http://www.brooksbrothers.com/TieKnots/tieknots.tem" >Brooks Brothers | Classic Tie Knots</a>
</p>
<p class="extended">
Brooks Brothers reviews (with step-by-step instructions) various tie knots.
</p>A List Apart: Articles: How to Plan Manpower on a Web Teamhttps://blueslugs.com/2006/06/21/a-list-apart-articles-how-to-plan-manpower-on-a-web-team/Thu, 22 Jun 2006 07:53:51 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/21/a-list-apart-articles-how-to-plan-manpower-on-a-web-team/<p class="link">
<a href="http://www.alistapart.com/articles/manpoweronawebteam" >A List Apart: Articles: How to Plan Manpower on a Web Team</a>
</p>
<p class="extended">
Shane Diffily proposes metrics relating content generation time, complexity, and activity to website staffing.
</p>Dive Into Pythonhttps://blueslugs.com/2006/06/21/dive-into-python/Thu, 22 Jun 2006 07:28:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/21/dive-into-python/<p class="link">
<a href="http://diveintopython.org/toc/index.html" >Dive Into Python</a>
</p>
<p class="extended">
Mark Pilgrim’s online text on Python.
</p>Still, hothttps://blueslugs.com/2006/06/21/still-hot/Thu, 22 Jun 2006 05:35:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/21/still-hot/<p>It’s past ten o’clock in the evening, but it’s still 88°F—31°C—and there’s little to no wind. That means the back office is a little too hot to be comfortable…</p>Top 10 Solaris Installation Annoyances at VMUNIX Blueshttps://blueslugs.com/2006/06/21/top-10-solaris-installation-annoyances-at-vmunix-blues/Wed, 21 Jun 2006 19:03:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/21/top-10-solaris-installation-annoyances-at-vmunix-blues/<p class="link">
<a href="http://www.vmunix.com/mark/blog/archives/2006/06/20/top-10-solaris-installation-annoyances/" class="broken_link" rel="nofollow">Top 10 Solaris Installation Annoyances at VMUNIX Blues</a>
</p>
<p class="extended">
Mark Mayo on Solaris installation annoyances.
</p>The View from the Moon — OpenSolaris birthday festivitieshttps://blueslugs.com/2006/06/15/the-view-from-the-moon-opensolaris-birthday-festivities/Thu, 15 Jun 2006 15:15:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/15/the-view-from-the-moon-opensolaris-birthday-festivities/<p class="link">
<a href="http://blogs.sun.com/roller/page/dp?entry=opensolaris_birthday_festivities" >The View from the Moon — OpenSolaris birthday festivities</a>
</p>
<p class="extended">
Dan Price catalogues many of the interesting posts from the OpenSolaris anniversary blog postings.
</p>It Must Be Time for Tea — .o files: Just say nohttps://blueslugs.com/2006/06/15/it-must-be-time-for-tea-o-files-just-say-no/Thu, 15 Jun 2006 15:11:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/15/it-must-be-time-for-tea-o-files-just-say-no/<p class="link">
<a href="http://blogs.sun.com/roller/page/kupfer?entry=o_files_just_say_no" >It Must Be Time for Tea — .o files: Just say no</a>
</p>
<p class="extended">
Mike Kupfer explains the difficulties associated with shipping closed object files for the OpenSolaris ON build, and justifies the few exceptions where we do.
</p>Anniversary sunlighthttps://blueslugs.com/2006/06/14/anniversary-sunlight/Thu, 15 Jun 2006 07:20:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/14/anniversary-sunlight/<p>Midday during the anniversary, a few of us zipped off campus for a short lunch in downtown Redwood City. Obviously, this was part shared celebration, but also I wanted to make sure that <a href="http://blogs.sun.com/dp/" >Dan</a> and <a href="http://whacked.net/" >Steve</a> exited <code>#opensolaris</code> in favour of a few minutes outdoors and some refueling.</p>
<p><img src="https://blueslugs.com/mediacast/p-osol-lunch-060614-0.png" alt="At City Pub on Broadway, Redwood City" title=""></p>
<p><img src="https://blueslugs.com/mediacast/p-osol-lunch-060614-1.png" alt="At City Pub on Broadway, Redwood City" title=""></p>
<p class="note">
I’m not enough of a photographer to catch candidly seven faces, from table’s end. But lunch was pleasant—and my presence as a parental unit at home was mandatory this evening, so I will only get stories of the meet-up.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/anniversary" rel="tag nofollow" class="broken_link">anniversary</a> <a href="http://www.technorati.com/tag/2006" rel="tag nofollow" class="broken_link">2006</a> ]
</p>OpenSolaris: on one yearhttps://blueslugs.com/2006/06/14/opensolaris-on-one-year/Wed, 14 Jun 2006 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/14/opensolaris-on-one-year/<p><a href="http://www.opensolaris.org" class="broken_link" rel="nofollow"> <img border="0" style="margin: 8px;" alt="OpenSolaris 1 Year Anniversary" title="OpenSolaris 1 Year Anniversary" src="http://www.opensolaris.org/os/about/buttons/os_one_year_button.gif" /> </a></p>
<p>Anniversaries provide a convenient excuse to be contemplative—not that I would struggle to justify contemplation. So, I’ll take a moment to look both back and forward. At one year, the <a href="http://opensolaris.org" >OpenSolaris</a> effort has exhibited steady growth across the entire period; <a href="http://blogs.sun.com/patrickf/" >Patrick’s</a> <a href="http://www.opensolaris.org/os/community/marketing/metrics/week_52_stats/" class="broken_link" rel="nofollow">community metrics</a> have shown that the interest in participating isn’t waning. The community has passionate evangelists and communicators, and their efforts in blogs, at conferences, and in various forums are unflagging. Just as valuable have been the reasoned critiques of OpenSolaris’s technical gaps (and other challenges)—although there has been some concern about the conflict between advocacy and criticism.</p>
<p class="note">
As long as we keep this conflict vigorous and civil, and avoid dogma, it will be constructive. I know that the technical contributors have examined and adjusted for every concrete criticism they’ve read; these realizations I expect will emerge as more projects move to developing on opensolaris.org directly. On the other hand, hearing these critiques allows the evangelist to amend their presentation—to discover workarounds, to make counter-recommendations, and so forth.
</p>
<p>I’ve <a href="http://blogs.sun.com/roller/page/sch?entry=progress_in_open_development" >written at length</a> about the internal transformations underway as we move from an open-within-the-institution development model to one that is open to all. It’s been just as gratifying to see the changes in the community-wide conversations, as the formerly-Solaris-only jargon evolves into a wider community idiom that we all share. The dropping of the most awkward or provincial terms is no cause for sorrow; the acquisition of new and useful expressions—like the Apache-style “+1” for “I agree”—has been a pleasant surprise. (Expressions that are unambiguous in email seem to be rare and therefore valuable.)</p>
<p>One of the things I’m looking forward to is <em>unanticipated use</em>. Jason Hoffman’s <a href="http://www.scalewithrails.com/downloads/ScaleWithRails-April2006.pdf" class="broken_link" rel="nofollow">entertaining presentation</a> on their use of Solaris Express in production probed the boundaries of surprising use; I’ll enjoy getting caught off guard by at least one project in the coming year. Or so I predict.</p>
<p class="note">
Don’t get me wrong: obstacle-free anticipated use is good, too. But <a href="http://www.sun.com/cddl/" >CDDL</a> is so rational and relaxed compared to previous Solaris source arrangements that the bulk of previously impossible collaborations are now legit—so I want to be surprised by their output, not by their existence.
</p>
<p>Whether or not my hoped-for dramatic novelty arrives, the coming year will bring change. <a href="http://blogs.sun.com/jimgris/" >Jim’s</a> off to a new stage on the <a href="http://blogs.sun.com/roller/page/jimgris?entry=i_m_moving_to_japan" >other side of the Pacific</a>; the community will hold elections for a new Governing Board, operating under a new and newly ratified Constitution; new requirements, be they technology-driven or technology-driving, will present new challenges for software systems. We might even get a new lead-in image on <a href="http://opensolaris.org" >opensolaris.org</a>.</p>
<p>There’s no doubt it’s taken much time and work to get here. There’s also no doubt that it’s been worth it. Enjoy the year past and the year to come—there’s much to do.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/anniversary" rel="tag nofollow" class="broken_link">anniversary</a> <a href="http://www.technorati.com/tag/2006" rel="tag nofollow" class="broken_link">2006</a> ]
</p>OpenSolaris one year on: Success or failure?: ZDNet Australia: News: Softwarehttps://blueslugs.com/2006/06/13/opensolaris-one-year-on-success-or-failure-zdnet-australia-news-software/Tue, 13 Jun 2006 21:32:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/13/opensolaris-one-year-on-success-or-failure-zdnet-australia-news-software/<p class="link">
<a href="http://www.zdnet.com.au/news/software/soa/OpenSolaris_one_year_on_Success_or_failure_/0,2000061733,39259726,00.htm" >OpenSolaris one year on: Success or failure?: ZDNet Australia: News: Software</a>
</p>
<p class="extended">
Renai LeMay (ZDNet Australia) covers the OpenSolaris community’s first anniversary.
</p>OpenSolaris One Year Onhttps://blueslugs.com/2006/06/13/opensolaris-one-year-on/Tue, 13 Jun 2006 21:30:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/13/opensolaris-one-year-on/<p class="link">
<a href="http://linux.slashdot.org/article.pl?sid=06/06/13/1220221" >OpenSolaris One Year On</a>
</p>
<p class="extended">
Slashdot discussion of OpenSolaris community, at one year.
</p>smf(5): Recent (and open) developmentshttps://blueslugs.com/2006/06/08/smf5-recent-and-open-developments/Thu, 08 Jun 2006 22:29:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/08/smf5-recent-and-open-developments/<p>Keeping up with the technical discussions on <a href="http://opensolaris.org" title="opensolaris.org Home">opensolaris.org</a> probably requires a full time team. Even with <a href="http://www.gnome.org/~gman/blog/" class="broken_link" rel="nofollow">Glynn</a>‘s weekly news and <a href="http://blogs.sun.com/eric_boutilier/" >Eric</a>‘s list summaries, I’m still not able to track it all—which shouldn’t be a surprise, as I couldn’t track everything when it was all closed (and somewhat smaller). In the various areas close to <code>smf</code>(5), there have been some developments worth mentioning.</p>
<p><a href="http://www.opensolaris.org/viewProfile.jspa?id=99" class="broken_link" rel="nofollow">David Bustos</a> unveiled the <a href="http://www.opensolaris.org/os/project/smf-profiles/" class="broken_link" rel="nofollow">Enhanced SMF Profiles</a> project. There have been some clear shortcomings in our current use of configuration snapshots across upgrade operations, and enhanced profiles will clear these up very nicely. (But, like any well thought out feature, enhanced profiles will make a number of other configuration manipulation problems much more tractable.)</p>
<p>One such consumer will be the <a href="http://opensolaris.org/os/project/nwam/" >Network Auto-Magic</a> project, which <a href="http://blogs.sun.com/jbeck" >John Beck</a> has been pursuing. The NWAM team recently released an initial <a href="http://opensolaris.org/os/project/nwam/prototype/" >prototype</a>, which is letting them explore some of the issues—architectural, usability, generality—with making such a broad change.</p>
<p class="note">
I need to review the source to the <a href="http://opensolaris.org/os/community/laptop/wireless/iwi/" ><code>iwi</code> wireless driver</a> to see whether it issues the appropriate <code>DL_NOTE_LINK_UP</code> and <code>DL_NOTE_LINK_DOWN</code> notifications to <code>ip</code>
</p>
<p>Finally, we’ve long discussed extending the <code><template></code> section of the <code>smf</code>(5) service manifests with various forms of metadata that we believe might be useful to management software. <a href="http://blogs.sun.com/dep/" >Dave Powell</a> wrote and released a <a href="http://www.opensolaris.org/os/project/vpanels/templates/" class="broken_link" rel="nofollow">draft discussion of template extensions</a> under the auspices of the <a href="http://www.opensolaris.org/os/project/vpanels/" class="broken_link" rel="nofollow">Visual Panels</a> project. These properties will be useful to other <code>smf</code>(5) commands as well—<code>svccfg</code>(1M) being one of the most obvious target consumers.</p>
<p>Not all <code>smf</code>(5) work can be done virtually. Last month, <a href="http://blogs.sun.com/lianep/" >Liane</a> had a good trip to <a href="http://www.sane.nl/sane2006/" >SANE 2006</a>. She’s posted the <a href="http://mediacast.sun.com/share/lianep/t-smf-sane-may-2006.pdf" >slides from her tutorial</a> as well.</p>
<p class="note">
Probably need to get out there talking again soon myself.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>Little patch for Mediawiki external editorhttps://blueslugs.com/2006/06/06/little-patch-for-mediawiki-external-editor/Tue, 06 Jun 2006 18:12:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/06/little-patch-for-mediawiki-external-editor/<p>For the <a href="http://www.opensolaris.org" class="broken_link" rel="nofollow">OpenSolaris</a> governance discussions, the community is using the wiki at <a href="http://www.genunix.org" >genunix.org</a>. The genunix team installed Mediawiki, used most famously for the <a href="http://wikipedia.org" >Wikipedia</a>, to support communal editing.</p>
<p>I’m a creature of <a href="http://vim.sf.net" >Vim</a>, 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 <code>ee</code> script—and tweak it a little.</p>
<p>Below you’ll find a modified version that respects the <code>http_proxy</code> setting, handles the case where no matching site is present in your <code>ee.ini</code> file, and adds a configuration option to not append the “using an external editor” string to your article’s change summary.</p>
<ul>
<li><a href="http://blueslugs.com/wordpress/wp-content/ee.pl.txt" title="ee.pl script" class="broken_link" rel="nofollow">ee.pl</a></li>
<li><a href="http://blueslugs.com/wordpress/wp-content/ee.pl.export.txt" title="ee.pl Hg export" class="broken_link" rel="nofollow">ee.pl Hg export</a></li>
</ul>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> genunix <a href="http://www.technorati.com/tag/Mediawiki" rel="tag nofollow" class="broken_link">Mediawiki</a> ]
</p>Reading, 2006Q1https://blueslugs.com/2006/06/05/reading-2006q1/Tue, 06 Jun 2006 06:59:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/05/reading-2006q1/<p class="note">
(I’ve realized I need to deal with a much-too-high interrupt rate at work, in part by ensuring I take out a bit of time for leisure. Here’s an entry I started in April.)
</p>
<p>Over the past few years, my reading rate has climbed; perhaps I’ve unwittingly dropped a periodical, or maybe I’m getting back to splitting my reading time across a few books at once. In any case, I thought it would be pleasant to get back to recommending recent reading I’ve enjoyed.</p>
<p>When we were in Long Island at the end of our winter vacation, I secured sufficient late night reading to get through three 20th century classics:</p>
<ul>
<li>Chesterton’s <em>The man who was Thursday</em> (1907) [<a href="http://en.wikipedia.org/wiki/The_Man_Who_Was_Thursday" >Wikipedia</a>] [<a href="http://www.gutenberg.org/etext/1695" class="broken_link" rel="nofollow">Gutenberg</a>], which was an entertaining story that appears to have simultaneously pioneered the spy novel, takeoffs of the spy novel, and a number of forms of “postmodern paranoid” storytelling. It would be interesting to contrast with Conrad’s <em>The secret agent</em> (1907), but I won’t have time to work through these contemporary novels in parallel.</li>
<li>Christopher Morley’s [<a href="http://en.wikipedia.org/wiki/Christopher_Morley">Wikipedia</a>] <em>Parnassus on wheels</em> [<a href="http://www.gutenberg.org/etext/5311" class="broken_link" rel="nofollow">Gutenberg</a>] and <em>The haunted bookshop</em> [<a href="http://www.gutenberg.org/etext/172" class="broken_link" rel="nofollow">Gutenberg</a>]. These were light novels (about booksellers); one of the funniest parts was the introduction given in the edition of <em>Parnassus</em> that I read, which suggested that full comprehension of the novel would only be available to readers born in a three to four month period in the early 1920s. I wasn’t, but the books are still fun—although I never worried about highwaymen, however shabby, in any of my traverses of Connecticut.</li>
</ul>
<p>One of Benjamin or Nathaniel, and sometimes both, would accompany me to the Redwood City library. We’ve been finding some fun books, plus I can try to read science fiction again.</p>
<ul>
<li>Ben and I have been working our way, planet by planet, through <a href="http://www.pilkey.com/index.php" >Dav Pilkey</a>‘s <em>Ricky Ricotta and his mighty robot</em> series. The stories are on the corny side for adults, although I admire the determined construction of a monsters-on-planets cosmology. (Plus the cheese surnames on mouse characters are good silliness.)</li>
<li>I blitzed through Cory Doctorow’s <a href="http://www.craphound.com/est/" ><em>Eastern standard tribe</em></a>, and Bruce Sterling’s <em>Zeitgeist</em> and <em>The zenith angle</em>. I liked the last of these best; the other two were simple. (I like Doctorow’s story ideas initially, but I find that the unfolding is too pat—obvious complications of the hypothesis are ignored.)</li>
<li>Out of some unknown reptilian duty—I started following this series after my undergraduate degree—I read Robert Jordan’s <em>Knife of dreams</em>, which is the eleventh book in his <em>Wheel of time</em> series (not counting prequels). Apparently, the series will end with Book Twelve and, for what seems like forever, some plotlines appear to be coming to their conclusions.</li>
<li>From Ben’s continuing exploration of prehistory, I recommend Alan Turner’s <em>National Geographic prehistoric mammals</em> and Tim Haines’s <em>Walking with prehistoric beasts</em>. The latter is a companion to the Discovery Channel series—narrated by Stockard Channing—and appears to be illustrated with high quality stills from the shows, along with expanded text retellings of each episode. The National Geographic book is more of a complete text about the major prehistoric mammal groups. We enjoyed both of these enormously—suggestions on further reading are welcome, as I fear we’ll be off into college texts otherwise.</li>
<li>My final novel of the quarter was Philip Roth’s <em>The plot against America</em>, which was very finely written. I kept comparing it to the famous science fiction novel by Philip K. Dick, <em>The man in the high castle</em>, which is also an alternate history of World War II. Dick’s novel eventually focuses on the detection of wrongness by the inhabitants of his reality; Roth’s eponymous protagonist on more personal disquiet. Recommended.</li>
</ul>
<p>Of course, none of us stopped reading in April, but a quarterly summary seems like a reasonable balance.</p>Ilya Voronin's Blog: Managing instances within SMFhttps://blueslugs.com/2006/06/05/ilya-voronins-blog-managing-instances-within-smf/Tue, 06 Jun 2006 06:02:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/06/05/ilya-voronins-blog-managing-instances-within-smf/<p class="link">
<a href="http://ivoronin.blogspot.com/2006/06/managing-instances-within-smf.html" class="broken_link" rel="nofollow">Ilya Voronin’s Blog: Managing instances within SMF</a>
</p>
<p class="extended">
Ilya constructs service instances dynamically by piping svccfg snapshot output through Perl and back to svccfg (via xargs). Nifty, but we need to make this easy.
</p>Limited reputation sharing in P2P systemshttps://blueslugs.com/2006/05/30/limited-reputation-sharing-in-p2p-systems/Wed, 31 May 2006 04:21:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/05/30/limited-reputation-sharing-in-p2p-systems/<p class="link">
<a href="http://portal.acm.org/citation.cfm?id=988787&coll=portal&dl=ACM&cfid=565551514&cftoken=565551514" >Limited reputation sharing in P2P systems</a>
</p>
<p class="extended">
Marti and Garcia-Molina of Stanford, presented at the 5th ACM conference on Electronic commerce.
</p>Tom White's Blog: MapReducehttps://blueslugs.com/2006/05/25/tom-whites-blog-mapreduce/Thu, 25 May 2006 17:08:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/05/25/tom-whites-blog-mapreduce/<p class="link">
<a href="http://weblogs.java.net/blog/tomwhite/archive/2005/09/mapreduce.html#more" >Tom White’s Blog: MapReduce</a>
</p>
<p class="extended">
Review of the Nutch team’s work to implement a variant of MapReduce in Java.
</p>ongoing · On Gridshttps://blueslugs.com/2006/05/25/ongoing-on-grids/Thu, 25 May 2006 17:00:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/05/25/ongoing-on-grids/<p class="link">
<a href="http://www.tbray.org/ongoing/When/200x/2006/05/24/On-Grids" >ongoing · On Grids</a>
</p>
<p class="extended">
Tim Bray reviews current developments in grids and grid software.
</p>SourceForge.net: Voting systems toolboxhttps://blueslugs.com/2006/05/09/sourceforgenet-voting-systems-toolbox/Tue, 09 May 2006 20:45:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/05/09/sourceforgenet-voting-systems-toolbox/<p class="link">
<a href="http://sourceforge.net/projects/votesystem/" >SourceForge.net: Voting systems toolbox</a>
</p>
<p class="extended">
A Java implementation of Single Transferable Voting (Meek).
</p>PeterVG : Software / svcloghttps://blueslugs.com/2006/05/09/petervg-software-svclog/Tue, 09 May 2006 18:10:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/05/09/petervg-software-svclog/<p class="link">
<a href="http://www2.petervg.nl/software/" class="broken_link" rel="nofollow">PeterVG : Software / svclog</a>
</p>
<p class="extended">
Peter van Gemert has written a nice little script that uses the restarter/logfile property to fetch and display the recent log contents for a service instance.
</p>http://www.jini.org/jdp/Constitution.htmlhttps://blueslugs.com/2006/05/01/httpwwwjiniorgjdpconstitutionhtml/Mon, 01 May 2006 21:33:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/05/01/httpwwwjiniorgjdpconstitutionhtml/<p class="link">
<a href="http://www.jini.org/jdp/Constitution.html" class="broken_link" rel="nofollow">http://www.jini.org/jdp/Constitution.html</a>
</p>
<p class="extended">
The Jini community’s constitution. One of a collection of documents outlining how their community functions.
</p>How the ASF works – The Apache Software Foundationhttps://blueslugs.com/2006/05/01/how-the-asf-works-the-apache-software-foundation/Mon, 01 May 2006 21:32:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/05/01/how-the-asf-works-the-apache-software-foundation/<p class="link">
<a href="http://apache.org/foundation/how-it-works.html" >How the ASF works – The Apache Software Foundation</a>
</p>
<p class="extended">
Apache’s governance document.
</p>Paul McClintock, PRP, Bylaw Articleshttps://blueslugs.com/2006/04/28/paul-mcclintock-prp-bylaw-articles/Sat, 29 Apr 2006 04:54:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/28/paul-mcclintock-prp-bylaw-articles/<p class="link">
<a href="http://www.paulmcclintock.com/bylawarticles.htm" >Paul McClintock, PRP, Bylaw Articles</a>
</p>
<p class="extended">
A collection of example bylaws from various parliamentary authorities.
</p>Metadata as a 'filing system' – Lifehackerhttps://blueslugs.com/2006/04/27/metadata-as-a-filing-system-lifehacker/Thu, 27 Apr 2006 21:51:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/27/metadata-as-a-filing-system-lifehacker/<p class="link">
<a href="http://www.lifehacker.com/software/tags/metadata-as-a-filing-system-169971.php" >Metadata as a ‘filing system’ – Lifehacker</a>
</p>
<p class="extended">
A little bit about Vista and MacOS X generic features, but mostly about using Quicksilver. There’s another way to do this, of course.
</p>XWiki . Main . WebHomehttps://blueslugs.com/2006/04/27/xwiki-main-webhome/Thu, 27 Apr 2006 20:21:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/27/xwiki-main-webhome/<p class="link">
<a href="http://www.xwiki.org/xwiki/bin/view/Main/WebHome" >XWiki . Main . WebHome</a>
</p>
<p class="extended">
A Java-based Wiki.
</p>Gtagshttps://blueslugs.com/2006/04/27/gtags/Thu, 27 Apr 2006 18:29:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/27/gtags/<p class="link">
<a href="http://goog-gtags.sourceforge.net/" >Gtags</a>
</p>
<p class="extended">
Client/server tags implementation for large source trees.
</p>Scale with Railshttps://blueslugs.com/2006/04/26/scale-with-rails/Wed, 26 Apr 2006 20:13:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/26/scale-with-rails/<p class="link">
<a href="http://www.scalewithrails.com/downloads/ScaleWithRails-April2006.pdf" class="broken_link" rel="nofollow">Scale with Rails</a>
</p>
<p class="extended">
Jason Hoffman of Joyent on their Solaris/Tx000 datacenter plan.
</p>Progress in open developmenthttps://blueslugs.com/2006/04/25/progress-in-open-development/Wed, 26 Apr 2006 07:58:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/25/progress-in-open-development/<p class="note">
Just prior to this week’s news, <a href="http://blogs.sun.com/gaw/" >Glenn</a> had an all-hands for the Operating Platforms Group. Since the all-hands is performed once for the Pacific through European business day and again later for Asia through Pacific working hours, I thought I would compose my presentation in full in the hopes of being consistent, and knowing that I could share it here as well. I fear the later presentation will become known as the “apple juice” talk, as my not-quite-two-years-old son Nathaniel came to the phone a few times to inform the audience of his preferred remedy to a sudden thirst. Your comments are welcomed—we’ll be expanding and revising the talk and its material as the program and its tools mature. The talk benefitted from criticism and suggestions from <a href="http://blogs.sun.com/jimgris/" >Jim</a> and <a href="http://blogs.sun.com/kritter/" >Karyn</a>.
</p>
<h2 id="overview">Overview</h2>
<p>Thank you for this opportunity to speak with you. Over the next thirty minutes, I thought that we could review how software development for the various consolidations will change into open development, on opensolaris.org. I will attempt to be clear about what you can do today and what’s yet to come. Along the way, I’ll also share what I believe are candid criticisms of what we have so far.</p>
<p>In the interests of lending some structure to this talk, we’ll look at typical tasks an individual developer tends to do in the course of working on an operating system component. On a given day, a developer might</p>
<ul>
<li>read and comment on a modified bug report,</li>
<li>update a child source tree,</li>
<li>change some code in their source tree,</li>
<li>build the binaries in their source tree,</li>
<li>solicit or provide feedback for a code review, or</li>
<li>make or evaluate a request to integrate reviewed code into a consolidation’s gate,</li>
</ul>
<p>as actions that involve small group of people. Our developer might also be taking actions that involve a larger number of people, up to the entire OpenSolaris community. For instance, they could be</p>
<ul>
<li>asking or answering questions in a public forum,</li>
<li>proposing or commenting on a new interface or implementation choice, or</li>
<li>proposing or joining a new area of investigation.</li>
</ul>
<p>I intend to touch briefly on each of these examples, which I hope will make it clear that we’re committed to making it feasible—even easy—to perform the complete set of development tasks in an open environment.</p>
<h2 id="bug-reporting">Bug reporting</h2>
<p>The first part of my morning is still spent sipping a hot cup of tea and reading new and update bug reports in the categories I’m interested in. For any of the reports I might wish to comment on, I can use the Java client to connect to the bug database and make appropriate updates, perhaps making connections to related bugs or adding the email of a developer I suspect might be concerned about this issue. Unfortunately, none of these actions is presently convenient for a developer without that access: bug submission and manual querying is available at <a href="http://bugs.opensolaris.org" >bugs.opensolaris.org</a>, but ongoing reporting and updates are not.</p>
<p>There are two adjustments to make if you’re using the bug database. First, use the Description field for the bulk of your updates, as all other fields are not published. This means the end of the “See Comments” bug idiom. And also, check Hook 6, which will contain the OpenSolaris ID of the submitter; if you make a significant status change, send the submitter an update.</p>
<p>We’ve given input into one effort to examine the bug database’s role in open development, and we’re funding work to improve the functionality of bugs.opensolaris.org. But if you have Bugster access and can help a contributor who can’t make an update, please do so.</p>
<p>There are additional complications for the present bug database with respect to upstream and downstream relationships—with other communities whose software we rely upon or whose rely upon ours—but those aren’t part of a typical developer’s day.</p>
<p>One aspect of bug reporting we have noticed is that the bite sized bugs, with the keyword “<code>oss-bite-size</code>“, provide a very effective starting point for developers new to OpenSolaris. I encourage you all to start marking introductory bugs with this keyword; because this keyword has been so effective, we’re going to start tracking the marking and fixing rates as a metric for the program. For experienced developers, I appeal to you to respect some kind of rough law of “conservation of bite-sized bugs”; if you fix one, mark another one.</p>
<h2 id="source-code-management">Source code management</h2>
<p>Usually my tea is still warm when I’m deciding whether or not my current source tree is sufficiently up-to-date. Generally, the tea is tepid once my bringover is done.</p>
<p>If you’re following the tools-discuss list on opensolaris.org, you’ll know that we recently selected a source code management tool called Mercurial to be the distributed source code management utility for opensolaris consolidations. We will be working with the Mercurial community to get a few features implemented, and I expect that most of you will be pleased with the performance of this very nice utility. I expect in most cases my tea will still be pleasantly warm.</p>
<p>There will be an interim period where we’ll be publishing Mercurial bundles externally, but still using TeamWare inside Sun. This period will mostly be spent on tools updates, but in most cases we should see all developers on an equal footing, whether their primary consolidation uses Subversion or Mercurial.</p>
<h2 id="editing-code">Editing code</h2>
<p>Once I’ve synced up, I’m in position to start making changes. I promise not to recommend a specific editor. Generally, expectations about code have not changed: the C style is expected and enforced, other conventions will be verified by your code reviewers.</p>
<p>Practices across internal and external contributors are common for this stage.</p>
<p>New files written by contributors to ON should contain the CDDL copyright block; other consolidations may have a different default license. An example is given for common types of files in</p>
<p><code>$SRC/prototypes/prototype.{Makefile, c, csh, h, java, ksh, man, s, sh}</code></p>
<p>in the ON consolidation. If your work involves integration into a Solaris release prior to 14 June, then the CDDL block should not be carried back into that source tree.</p>
<p>The “wx cddlchk” invocation, which is also part of “wx nits” and “wx pbchk”, will check that the license block is correct and up-to-date.</p>
<h2 id="building-a-consolidation">Building a consolidation</h2>
<p>Typically, building your consolidation or a portion thereof takes some time, usually based on your system’s performance or how many people you share that system with. Once you’ve started your build, this is generally a good time to stretch or make a new cup of tea.</p>
<p>The various consolidations will tax build systems differently. With the recent integration of GCC shadow compilation, ON build system administrators need to be aware that there are now potentially two compiler invocations for each changed C file. On aggressively configured systems, this may result in paging.</p>
<p>For full builds, the experience of an internal and external developer should be equivalent.</p>
<p>A key difference at present is the availability of test suites. As you might suspect, there are many test suites that depend on the Sun corporate network environment; the result is that the suites are not presently available. Under the present sponsor process, a code submission is tested by the sponsor, or testing is arranged by the sponsor. There are a number of paths to balancing the test responsibility: the <a href="http://opensolaris.org/os/community/test" >Test Community</a> is exploring a hosted self-service test run, and would probably welcome discussions about what tests a developer should be able to run in their own environment to validate their changes.</p>
<h2 id="code-review">Code review</h2>
<p>With validated changes in hand, a developer is ready to start down the path towards integration. This commences with getting one or more developers to review your changes to the code. Of course, because you want your reviewers to find actual problems, you already made certain that your changes build cleanly and have no obvious style errors.</p>
<p>Finding a code reviewer often involves checking who’s around, either physically or by various network protocols. The webrev tool allows you to construct a small web tree that contains your changes in a variety of formats so that a reviewer can work through your modifications and make appropriate suggestions. This makes it more convenient to have reviewers who aren’t physically contiguous to you.</p>
<p>Since webrev generates a tree of HTML documents, all you need to publish your code review materials is a place to put them. This is easiest if you have an external site, and is an area where a developer primarily using the Sun corporate environment is at a disadvantage.</p>
<p>In the interim, <a href="http://blogs.sun.com/dp" >Dan Price</a> and <a href="http://whacked.net" >Steve Lau</a> have provided a “code review swamp” hosted at <a href="http://cr.grommit.com" class="broken_link" rel="nofollow">cr.grommit.com</a> to offer a place to host your webrevs. The swamp is set up to handle publishing current format webrevs today; instructions are present on that site.</p>
<p>Now, I’ve also asked the <a href="http://opensolaris.org/os/community/tools" >Tools community</a> to examine enhancing webrev to put the changes into a single document and use browser features to make the review experience equivalent. In this case, publication becomes substantially easier, and even blogs become a possible location for publishing code reviews.</p>
<p>Even with publication eased, finding reviewers can still end up relying on personal networks, which is difficult for a developer new to the community. I also believe that the request for a code review needs to be narrowcasted to those fellow developers who are interested in the area that is changing. So I believe we’ll need to develop code review workflow support on the opensolaris.org site. If you’re interested in how this feature might work, we will be discussing it in the Tools community.</p>
<h2 id="code-integration">Code integration</h2>
<p>With support for your changes from your code reviewers, and after building and testing your possibly modified code once more, you are ready to make your request to integrate—which has long been known by its acronym, RTI.</p>
<p>At present, the “request to integrate” is made via a tool only accessible on the Sun network. That, and the current source code management situation, led to the current sponsor process.</p>
<p>It’s worth noting that each time I mention an aspect where Sun corporate network access is required to access a resource, the sponsor is performing the work on behalf of the contributor. That can add up to a substantial amount of work for some changes. Please be supportive and respectful of both the contributor and the sponsor; if you’ve the time to be a sponsor, or assist a sponsor-contributor interaction by participating in a review or running tests or shepherding a build, please consider helping out.</p>
<p>Once the various consolidations move to external writable consolidations, we’ll see direct integration by all committers, but for new developers, the sponsor process will remain in place. Aspects will become simpler: the new source code tools make passing patches around substantially easier than before. As new capabilities are brought online on opensolaris.org, like code review hosting and self-service testing, we’ll see the sponsor-contributor process distilled down to its core: mentoring on technical participation in operating systems development.</p>
<h2 id="forum-participation">Forum participation</h2>
<p>Of course, technical guidance isn’t only provided on a one-on-one basis, and not everyone is intending that their changes target mainline. In the various discussion forums, you’ll see questions on how best to do something, or where it’s presently done, or whether a particular choice has drawbacks.</p>
<p>You should engage in these conversations. Questions, and the context behind them, is valuable to all community members, whether they are planning to develop code or merely consider that feature in their deployment. A considered answer has value beyond the immediate conversation; all accurate technical content, be it a forum response, project documents, or blog entries, will increase the search engine cross section for opensolaris.org. As with any public forum, your participation should be confined to the technical aspects of the discussion; private information concerning your organization is not suitable as a topic for public discussion. That’s not a new restriction—merely common sense.</p>
<p>I’ll talk about forum creation in a moment. But first, I want to talk about a few special forums on opensolaris.org.</p>
<p><a href="http://www.opensolaris.org/jive/forum.jspa?forumID=13" class="broken_link" rel="nofollow">opensolaris-discuss</a> is, in an extremely loose metaphor, the town square of opensolaris.org. The various procedures that the community’s Governing Board has developed generally involve making an announcement or request for discussion on opensolaris-discuss. But, like any public place, there are conversations on pretty much any topic; it’s a high traffic alias.</p>
<p><a href="http://www.opensolaris.org/jive/forum.jspa?forumID=12" class="broken_link" rel="nofollow">opensolaris-code</a> has in recent days had its role clarified: it’s a purely technical discussion alias on any aspect of the various components of OpenSolaris, architectural, implementation, or otherwise.</p>
<h2 id="architectural-process">Architectural process</h2>
<p>The third forum I want to mention is the ARC community and its associated mailing list, because it brings us back to our typical development activities.</p>
<p>Occasionally, in the course of fixing a bug or considering a problem, we realize we need to add a new interface to some OpenSolaris component. The process for doing this is to take the interface through architectural review. We’ve had a couple of contributors take their new interfaces through the fast track process, and reviewed some of the difficulties associated with each of those cases.</p>
<p>We also have found that the site isn’t well structured for the frequent publication required to track the currently active ARC cases, or to publish key historical cases.</p>
<p>So, while we have an awkward way of making the process participatory, the correct course appears to be to take the fast track process for open consolidations and modify it such that it can be hosted on opensolaris.org. If you’re interested in this topic, we’ll be starting this discussion in the <a href="http://opensolaris.org/os/community/arc" >ARC community</a>.</p>
<h2 id="proposals">Proposals</h2>
<p>But sometimes, you realize that the changes you’re envisioning are sufficiently large that they will require a group effort. This effort usually needs a forum of its own, plus a tree of documents, plus a source code repository.</p>
<p>opensolaris.org can handle this with its project hosting support, which will shortly offer the source code hosting feature. To get a project, you just propose the project on opensolaris-discuss. Over time, your project may garner interested individuals and communities, whose association will become a way for community members to identify projects they may find interesting. In the meanwhile, your project is well underway.</p>
<p>New projects and even existing projects for Nevada should use opensolaris.org for hosting their project; please don’t wait until you’re ready to integrate. That’s far too late. As you might suspect, we’re developing a metric to monitor the progression towards external hosting.</p>
<p>The other kind of forum that we can host on opensolaris.org is called a community, which has been confusing in a manifold sense. The term itself is overloaded: we can talk of the OpenSolaris membership as a whole as a community, or of a specific OpenSolaris community. And the role of a community in OpenSolaris governance is still being debated by the governance working group.</p>
<p>But I can tell you a few aspects of communities that might help you determine whether your initiative is a potential community. First, a community is not a program, strategy, or lifestyle. If you haven’t heard these terms in reference to software development, you may wish to plug your ears for a little while. The programs, and so forth, are mechanisms for organizing projects with respect to the business priorities associated with the development of one distribution of OpenSolaris. Second, those distribution groupings are likely to have a finite period of applicability whereas a community, because it will be identifying its contributors to the larger OpenSolaris membership, is expected to be a long lived group.</p>
<p>Finally, a community is expected to appeal to a fairly wide subset of the membership; it attempts to gather combine a collection of interests into a coherent group. That’s fuzzy and it’s made a bit worse by the fact that there are some communities that were grandfathered from being proposed prior to the introduction of a community proposal process or prior to the introduction of project hosting. Reorganizing some of the communities will be an area of effort over the next few months, but the basic guideline is propose your effort as a project.</p>
<h2 id="summary">Summary</h2>
<p>I hope this review of typical developer activities, how they are changing as we develop in an open community, and how certain aspects of these activities are simply hard to do if your workstation is not on Sun’s network. None of these deficits is likely new to those Sun developers who work from a remote location or from a campus distant from California. And of course there are other aspects to collaboration that we need to explore, but that would be another talk entirely. It’s my intent that we get to a situation where a developer, without reference to affiliation or location—but possibly dependent on their available bandwidth—can participate equivalently in opensolaris development. That will require ideas, feedback, code, and action from all of us.</p>
<p>Thanks.</p>
<p>Your questions, please.</p>
<h2 id="links">Links</h2>
<a href="http://cvs.opensolaris.org/source/xref/on/usr/src/prototypes/" >
<p>
http://cvs.opensolaris.org/source/xref/on/usr/src/prototypes/</a>
</p>
<p>
<a href="http://selenic.com/mercurial/" class="broken_link" rel="nofollow">http://selenic.com/mercurial/</a>
</p>
<p>
<a href="http://cr.grommit.com/" class="broken_link" rel="nofollow">http://cr.grommit.com/</a>
</p>
<p>
<a href="http://opensolaris.org/os/projects/" >http://opensolaris.org/os/projects/</a> <br /> <a href="http://opensolaris.org/os/communities/" >http://opensolaris.org/os/communities/</a>
</p>
<p>
A short set of slides were made to accompany the talk: <a href="http://blogs.sun.com/roller/resources/sch/t-open-working-apr-2006.pdf" >PDF</a>, <a href="http://blogs.sun.com/roller/resources/sch/t-open-working-apr-2006.odp" >ODP</a>.
</p>
<p>
<!--Creative Commons License-->
<p><a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license"><img
alt="Creative Commons License" border="0"
src="http://creativecommons.org/images/public/somerights20.png" /></a><br />This talk and the slides are each licensed under a <a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" rel="license">Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License</a>.<!--/Creative Commons License--></p>
<!-- <rdf:RDF
xmlns="http://web.resource.org/cc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <work
rdf:about=""> <license
rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.5/" />
<dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" /> </work>
<license
rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.5/"><permits
rdf:resource="http://web.resource.org/cc/Reproduction" /><permits
rdf:resource="http://web.resource.org/cc/Distribution" /><requires
rdf:resource="http://web.resource.org/cc/Notice" /><requires
rdf:resource="http://web.resource.org/cc/Attribution" /><prohibits
rdf:resource="http://web.resource.org/cc/CommercialUse" /><permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" /><requires
rdf:resource="http://web.resource.org/cc/ShareAlike" /></license></rdf:RDF>
-->
</p></p>
<p>
<
</p>
<p>
p>
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> ]
</p>Google's Secret Weaponhttps://blueslugs.com/2006/04/21/googles-secret-weapon/Fri, 21 Apr 2006 22:56:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/21/googles-secret-weapon/<p class="link">
<a href="http://www.cabochon.com/~stevey/blog-rants/google-secret-weapon.html" >Google’s Secret Weapon</a>
</p>
<p class="extended">
Amazon staffer compares their recruiting against Google’s (and Microsoft’s), circa 2004.
</p>NotaBene: Solaris 10 — new featureshttps://blueslugs.com/2006/04/21/notabene-solaris-10-new-features/Fri, 21 Apr 2006 20:09:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/21/notabene-solaris-10-new-features/<p class="link">
<a href="http://nb.inode.co.nz/articles/Solaris10_Evaluation.html" class="broken_link" rel="nofollow">NotaBene: Solaris 10 — new features</a>
</p>
<p class="extended">
One person’s (negative) take after a Solaris 10 training course. Sounds like the course doesn’t cover “svcs -x”, among other aspects.
</p>My Experiences With Subversionhttps://blueslugs.com/2006/04/20/my-experiences-with-subversion/Thu, 20 Apr 2006 16:50:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/20/my-experiences-with-subversion/<p class="link">
<a href="http://www.chiark.greenend.org.uk/~sgtatham/svn.html" >My Experiences With Subversion</a>
</p>
<p class="extended">
A detailed article by Simon Tatham about his experiences with Subversion.
</p>ARLIS, Northern California: Bylawshttps://blueslugs.com/2006/04/19/arlis-northern-california-bylaws/Wed, 19 Apr 2006 21:11:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/19/arlis-northern-california-bylaws/<p class="link">
<a href="http://www.lib.berkeley.edu/~skoskine/bylaws-nc.html" class="broken_link" rel="nofollow">ARLIS, Northern California: Bylaws</a>
</p>
<p class="extended">
Bylaws of the Art Libraries Society of Northern California.
</p>Debian Constitutionhttps://blueslugs.com/2006/04/19/debian-constitution/Wed, 19 Apr 2006 21:04:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/19/debian-constitution/<p class="link">
<a href="http://www.debian.org/devel/constitution" >Debian Constitution</a>
</p>
<p class="extended">
Constitution for the non-commercial Linux distribution, Debian.
</p>Bylaws of the California Community College Student Affairshttps://blueslugs.com/2006/04/19/bylaws-of-the-california-community-college-student-affairs/Wed, 19 Apr 2006 21:02:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/19/bylaws-of-the-california-community-college-student-affairs/<p class="link">
<a href="http://www.cccsaa.org/documents/Bylaws.pdf" >Bylaws of the California Community College Student Affairs</a>
</p>
<p class="extended">
Example of a California non-profit’s bylaws, with multiple membership classes.
</p>IComplete – A code completion systemhttps://blueslugs.com/2006/04/19/icomplete-a-code-completion-system/Wed, 19 Apr 2006 16:56:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/19/icomplete-a-code-completion-system/<p class="link">
<a href="http://stud4.tuwien.ac.at/~e0125672/icomplete/" class="broken_link" rel="nofollow">IComplete – A code completion system</a>
</p>
<p class="extended">
Symbol completion utility for C/C++ and potentially Java. Command line based; support for Vim integration.
</p>Your Family Disaster Supplies Kithttps://blueslugs.com/2006/04/18/your-family-disaster-supplies-kit/Tue, 18 Apr 2006 23:31:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/18/your-family-disaster-supplies-kit/<p class="link">
<a href="http://www.pueblo.gsa.gov/cic_text/family/disaster/famlykit.htm" >Your Family Disaster Supplies Kit</a>
</p>
<p class="extended">
FEMA’s pamphlet on disaster preparedness kits (via Pueblo).
</p>Largest carnivorous dinosaur (fossil) found in Argentinahttps://blueslugs.com/2006/04/18/largest-carnivorous-dinosaur-fossil-found-in-argentina/Tue, 18 Apr 2006 17:53:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/18/largest-carnivorous-dinosaur-fossil-found-in-argentina/<p>Big news for our household: the New York Times has <a href="http://www.nytimes.com/2006/04/18/science/18dino.html" >an article</a> on the announcement of the discovery of <em>Mapusaurus roseae</em>, which is larger than <em>Giganotosaurus</em> (which is in turn felt to be larger than <em>Tyrannosaurus rex</em>). Both <em>Mapusaurus</em> and <em>Giganotosaurus</em> were discovered in Argentina, and perhaps hunted <em>Argentinosaurus</em>, a huge plant-eating sauropod.</p>
<p>Ben’s home sick today, so reading about the find—particularly of a new, giant meat-eater—was a nice break.</p>Using Solaris SMFhttps://blueslugs.com/2006/04/17/using-solaris-smf/Tue, 18 Apr 2006 03:26:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/17/using-solaris-smf/<p class="link">
<a href="http://www.oreillynet.com/pub/a/sysadmin/2006/04/13/using-solaris-smf.html?page=1" >Using Solaris SMF</a>
</p>
<p class="extended">
Chris Josephes writes a nice summary article about smf(5) for O’Reilly’s SysAdmin channel.
</p>Historical CA DMV VLF onlinehttps://blueslugs.com/2006/04/16/historical-ca-dmv-vlf-online/Sun, 16 Apr 2006 14:43:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/16/historical-ca-dmv-vlf-online/<p>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 <a href="https://vrir.dmv.ca.gov/FeeCalculatorWeb/vlfForm.do" class="broken_link" rel="nofollow">that they have an online retrieval system</a> to help you find your vehicle license fee (VLF) for 2004 – 2006.</p>
<p class="note">
I bet I filed the registration bills in a “special” folder… which I’ll find in August.
</p>LighttpdOnSolaris – lighttpd – Trachttps://blueslugs.com/2006/04/12/lighttpdonsolaris-lighttpd-trac/Wed, 12 Apr 2006 22:21:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/12/lighttpdonsolaris-lighttpd-trac/<p class="link">
<a href="http://trac.lighttpd.net/trac/wiki/LighttpdOnSolaris" >LighttpdOnSolaris – lighttpd – Trac</a>
</p>
<p class="extended">
A service manifest for lighttpd, “a secure, fast, compliant, and very flexible web-server”.
</p>Dimplerhttps://blueslugs.com/2006/04/12/dimpler/Wed, 12 Apr 2006 21:30:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/12/dimpler/<p class="link">
<a href="http://www.dimpler.com/" >Dimpler</a>
</p>
<p class="extended">
A tool for creating dimples in necktie knots.
</p>Mailman, the GNU Mailing List Managerhttps://blueslugs.com/2006/04/11/mailman-the-gnu-mailing-list-manager/Wed, 12 Apr 2006 00:00:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/11/mailman-the-gnu-mailing-list-manager/<p class="link">
<a href="http://www.gnu.org/software/mailman/index.html" >Mailman, the GNU Mailing List Manager</a>
</p>
<p class="extended">
Main page for Mailman, a mailing list manager written in Python.
</p>subversion.tigris.orghttps://blueslugs.com/2006/04/11/subversiontigrisorg/Tue, 11 Apr 2006 23:59:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/11/subversiontigrisorg/<p class="link">
<a href="http://subversion.tigris.org/" >subversion.tigris.org</a>
</p>
<p class="extended">
Main page for Subversion, a centralized source code management solution, designed to address the shortcomings of CVS.
</p>Program technical status, 11 Aprilhttps://blueslugs.com/2006/04/11/program-technical-status-11-april/Tue, 11 Apr 2006 23:49:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/11/program-technical-status-11-april/<p>[Repost from <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=7716&tstart=0" class="broken_link" rel="nofollow">forum thread</a>.]</p>
<p>Since my previous status summary, written in December, a number of technical aspects to the program have made progress. (It’s becoming clear to me that I only write these when we actually deliver stuff.)</p>
<ol>
<li>Website capabilities.</li>
</ol>
<p>Basic community and project hosting seems to functioning reasonably well. There are 28 approved projects, some of which are still preparing their initial content, and 41 communities. It’s probably worth noting that we can easily support multiple mailing lists for each project or community, if the project or community leadership requests additional lists.</p>
<p>There is still ongoing development to simultaneously relax and tighten our <a href="http://www.gnu.org/software/mailman/" >Mailman</a> moderation settings, so that a registered email address can send to any list and so that an unregistered email address will always bounce. Mailing list moderators will appreciate the latter.</p>
<ol start="2">
<li>Source code management (SCM).</li>
</ol>
<p>The software to add repository hosting to projects is getting close to completion. Internal testing with the <a href="http://subversion.tigris.org" class="broken_link" rel="nofollow">Subversion</a>-only option suggests that we should be ready to do a beta deployment in the next six weeks. Project leads interested in hosting their source using Subversion as part of this beta should contact me, directly or via website-discuss.</p>
<p>We’re awaiting further comments on the tentative selection of <a href="http://selenic.com/mercurial/" class="broken_link" rel="nofollow">Mercurial</a> as the distributed SCM selection. Extending the hosting support to handle Mercurial repositories is straightforward, and I expect will be ready–with the then-current version of Mercurial–shortly after the deployment of the Subversion hosting beta.</p>
<p>The DSCM selection and related documents about hosting are available in the Tools community at</p>
<p><a href="http://www.opensolaris.org/os/community/tools/scm/" class="broken_link" rel="nofollow"> <a href="http://www.opensolaris.org/os/community/tools/scm/">http://www.opensolaris.org/os/community/tools/scm/</a></a></p>
<p>In terms of Mercurial use for the ON consolidation, I would like to discuss releasing Mercurial bundles, with per-integration granularity, as part of the weekly drops <a href="http://whacked.net/" >Steve Lau</a> has been doing. The drop frequency will hold at weekly, until we are hosting read-only ON on opensolaris.org. On tools-discuss, we’ll be talking about specific tools that need to be updated (or have the opportunity to be improved) because of the switch in the DSCM.</p>
<ol start="3">
<li>Continued source publication.</li>
</ol>
<p>I believe that, since December, the Developer Tools, Documentation, Install, Network Storage, Solaris Freeware, and X Windows consolidations have all released portions or the entirety of their source trees. In many of these cases, an active community and/or project is available to discuss how these components can evolve.</p>
<p>The split ON tree has made deliveries easy, and Steve and others have continued to move code that we know to be unencumbered out of <code>usr/closed</code> and into <code>usr/src</code> (which is what you get from opensolaris.org for ON source).</p>
<ol start="4">
<li>ON GCC readiness.</li>
</ol>
<p><a href="http://blogs.sun.com/wesolows/" >Keith Wesolowski</a> implemented shadow compilation with GCC as a means to keep the ON consolidation warnings-clean with respect to both the Sun Studio and the GNU C compilers. The choice of shadow compilation means that a typical developer’s test burden is still centered on the binaries produced with the primary compiler for the platform; at present, Sun Studio is the primary compiler for both SPARC and x86. Individuals and teams interested in a pure GCC build for those platforms or using GCC for ports to other platforms will still need to examine and test the binaries produced, but should not have to do “basic GCC cleanup”.</p>
<p>The ON GCC status, and related links, are available in the Tools community at</p>
<p><a href="http://www.opensolaris.org/os/community/tools/gcc/status/" class="broken_link" rel="nofollow"> <a href="http://www.opensolaris.org/os/community/tools/gcc/status/">http://www.opensolaris.org/os/community/tools/gcc/status/</a></a></p>
<ol start="5">
<li>Governance development.</li>
</ol>
<p>On February 8th, the CAB approved the OpenSolaris Charter. Glenn Weinberg, Vice-President of the Operating Platforms Group signed it, on behalf of Sun, on February 10th. The Charter is linked to by the CAB community at</p>
<p><a href="http://www.opensolaris.org/os/community/cab/charter/" class="broken_link" rel="nofollow"> <a href="http://www.opensolaris.org/os/community/cab/charter/">http://www.opensolaris.org/os/community/cab/charter/</a></a></p>
<p>For those of you enthusiastic about historical documents, however trivial, Jim Grisanzio made a virtual exhibit of the charter Glenn signed.</p>
<p><a href="http://blogs.sun.com/roller/page/jimgris?entry=opensolaris_charter_approved" > <a href="http://blogs.sun.com/roller/page/jimgris?entry=opensolaris_charter_approved">http://blogs.sun.com/roller/page/jimgris?entry=opensolaris_charter_approved</a></a></p>
<p>(Whether we do a theatrical all-signatories-signing event is dependent on their schedules permitting them to physically congregate, I expect.)</p>
<p>The now-OGB (OpenSolaris Governing Board) is now working on the Constitution and/or By-Laws for the community. The cab-discuss alias is one forum for discussion; the developing document(s) are being composed in the wiki at <a href="http://www.genunix.org" >genunix.org</a>, specifically:</p>
<p><a href="http://www.genunix.org/wiki/index.php/OpenSolaris_Governance" ><a href="http://www.genunix.org/wiki/index.php/OpenSolaris_Governance">http://www.genunix.org/wiki/index.php/OpenSolaris_Governance</a></a></p>
<p>Input into this drafting process is, I believe, always welcomed.</p>
<p>After we get through the various repository deployments, there are a number of opensolaris.org software components that I would like to host, pretty much immediately: we need to improve many aspects of the site, including voting support for the OGB election, code review notifications, per-user repositories, and community, project, and user file management. Plus we could really use some new pictures for the front page. For all these developments, I expect website-discuss and tools-discuss to be the primary mailing lists. Please join in.</p>
<p>As always, please share your concerns; I am happy to receive them privately or on the list.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> ]
</p>Edgewall Software: Trachttps://blueslugs.com/2006/04/10/edgewall-software-trac/Tue, 11 Apr 2006 00:23:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/10/edgewall-software-trac/<p class="link">
<a href="http://www.edgewall.com/trac/" >Edgewall Software: Trac</a>
</p>
<p class="extended">
A nice, integrated software project hosting application. If you need to host your own, a good choice. Can use different SCM backends.
</p>Continued indefinite drizzlehttps://blueslugs.com/2006/04/10/continued-indefinite-drizzle/Mon, 10 Apr 2006 20:57:30 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/10/continued-indefinite-drizzle/<p>Bloglines again suggests the week is shaping up wetly:</p>
<p><img src="http://blueslugs.com/wordpress/wp-content/weathernext.png" alt="Another weather forecast"></p>marTuxhttps://blueslugs.com/2006/04/10/martux/Mon, 10 Apr 2006 20:49:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/10/martux/<p class="link">
<a href="http://user.cs.tu-berlin.de/~mbeinsx/marTux/" class="broken_link" rel="nofollow">marTux</a>
</p>
<p class="extended">
An OpenSolaris distribution for SPARC. Apparently provides X.Org server for various Sun graphics adaptors.
</p>Andrei's blog: CPU caps Preview on OpenSolarishttps://blueslugs.com/2006/04/05/andreis-blog-cpu-caps-preview-on-opensolaris/Thu, 06 Apr 2006 07:34:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/05/andreis-blog-cpu-caps-preview-on-opensolaris/<p class="link">
<a href="http://blogs.sun.com/roller/page/andrei?entry=cpu_caps_preview_on_opensolaris1" >Andrei’s blog: CPU caps Preview on OpenSolaris</a>
</p>
<p class="extended">
Andrei developed the fair share scheduling (FSS) class for Solaris 9, and I know he’s been thinking about adding caps for a long time. There were just a long list of other things that needed his attention.
</p>Jython Home Pagehttps://blueslugs.com/2006/04/05/jython-home-page/Thu, 06 Apr 2006 04:31:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/05/jython-home-page/<p class="link">
<a href="http://jython.sourceforge.net/" >Jython Home Page</a>
</p>
<p class="extended">
Python for the Java VM.
</p>JRuby Homehttps://blueslugs.com/2006/04/05/jruby-home/Thu, 06 Apr 2006 04:29:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/05/jruby-home/<p class="link">
<a href="http://jruby.sourceforge.net/" >JRuby Home</a>
</p>
<p class="extended">
Ruby atop the Java VM.
</p>Fortune Magazine – Secrets of greatness: How I workhttps://blueslugs.com/2006/04/04/fortune-magazine-secrets-of-greatness-how-i-work/Wed, 05 Apr 2006 04:10:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/04/fortune-magazine-secrets-of-greatness-how-i-work/<p class="link">
<a href="http://money.cnn.com/popups/2006/fortune/how_i_work/frameset.exclude.html" >Fortune Magazine – Secrets of greatness: How I work</a>
</p>
<p class="extended">
Interviews with 12 successful individuals. Ideas about managing incoming/outgoing contact, for various media. Sometimes it’s just raw capability, like Judge Richard Posner: “I’m a very fast writer. I can write 20, 30 manuscript pages in an evening.”
</p>Coyote Point Systems: Application Traffic Management Solutionshttps://blueslugs.com/2006/04/04/coyote-point-systems-application-traffic-management-solutions/Tue, 04 Apr 2006 21:21:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/04/coyote-point-systems-application-traffic-management-solutions/<p class="link">
<a href="http://www.coyotepoint.com/e450.htm" >Coyote Point Systems: Application Traffic Management Solutions</a>
</p>
<p class="extended">
An application-level load balancer. Can redistribute telnet, SSH, etc. as well as HTTP.
</p>Indefinite drizzle to continuehttps://blueslugs.com/2006/04/03/drizzle-to-continue/Mon, 03 Apr 2006 19:12:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/04/03/drizzle-to-continue/<p>Courtesy of bloglines.com:</p>
<p><img src="http://blueslugs.com/wordpress/wp-content/weather.png" alt="This week's forecast"></p>
<p>It doesn’t look like I’ll be packing away the downspout extensions or the portable sump anytime soon…</p>Predictable – Bespoke services: network/rmi/registryhttps://blueslugs.com/2006/03/29/predictable-bespoke-services-networkrmiregistry/Thu, 30 Mar 2006 01:36:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/29/predictable-bespoke-services-networkrmiregistry/<p class="link">
<a href="http://blogs.sun.com/roller/page/sch?entry=bespoke_services_network_rmi_registry" >Predictable – Bespoke services: network/rmi/registry</a>
</p>
<p class="extended">
An smf(5) service conversion for the Java RMI registry daemon, rmiregistry.
</p>Ajax Link Trackerhttps://blueslugs.com/2006/03/29/ajax-link-tracker/Wed, 29 Mar 2006 21:32:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/29/ajax-link-tracker/<p class="link">
<a href="http://www.glennjones.net/Post/805/AjaxLinkTracker.htm" class="broken_link" rel="nofollow">Ajax Link Tracker</a>
</p>
<p class="extended">
An AJAX-based approach to link selection statistics. Overlay of the current statistics (as percentages) for each link available via a keystroke.
</p>Bespoke services: network/rmi/registryhttps://blueslugs.com/2006/03/28/bespoke-services-networkrmiregistry/Tue, 28 Mar 2006 23:26:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/28/bespoke-services-networkrmiregistry/<p><a href="http://blogs.sun.com/garypen/" >Gary</a> and I were recently prototyping an application that uses Java RMI, and so I ended up searching around to see if anyone has done a service conversion for <code>rmiregistry</code>(1). (<code>rmiregistry</code>(1) is the daemon that lets RMI clients find the available remote objects being served by various virtual machines on a given system.) Turns out no one has (or no one’s published it), which means it’s time to rev up the convert-o-tron.</p>
<p>Since we’re still developing our application and it’s likely we’ll change a definition or two, and since we need to restart the registry to cause the remote objects, we’re going to make our prototype service restart automatically if we restart the registry. That means our prototype service has a dependency on <code>network/rmi/registry</code> with specific <code>restart_on</code> behaviour, meaning that its service description has a fragment like the following:</p>
<pre><!--
As an RMI server application, we expect to be able to
register our RMI classes with the registry server.
-->
<dependency
name='rmi-registry'
grouping='require_all'
restart_on='restart'
type='service'>
<service_fmri value='svc:/network/rmi/registry' />
</dependency>
</pre>
<p>Inject that fragment into your various RMI servers’ descriptions (or the equivalent property group into the repository) and you’ll save a bit of time on application reinitializations.</p>
<p>So, if you’re interested, please feel free to take a copy of <a href="https://blueslugs.com/mediacast/rmiregistry.xml" ><code>network/rmi/registry</code></a>; comments and corrections welcome.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> RMI ]
</p>My_Little_SMF_FAQhttps://blueslugs.com/2006/03/28/my_little_smf_faq/Tue, 28 Mar 2006 22:01:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/28/my_little_smf_faq/<p class="link">
<a href="http://home.arcor.de/bnsmb/public/htdocs/My_Little_SMF_FAQ.html" class="broken_link" rel="nofollow">My_Little_SMF_FAQ</a>
</p>
<p class="extended">
Bernd Schemmer has collected a bunch of responses and blog posts, and constructed a short FAQ on smf(5)
</p>joey interactive » Blog Archive » Desktop Backgrounds For Designershttps://blueslugs.com/2006/03/28/joey-interactive-blog-archive-desktop-backgrounds-for-designers/Tue, 28 Mar 2006 18:54:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/28/joey-interactive-blog-archive-desktop-backgrounds-for-designers/<p class="link">
<a href="http://www.joeyinteractive.com/?p=185" >joey interactive » Blog Archive » Desktop Backgrounds For Designers</a>
</p>
<p class="extended">
A good collection of links to designers creating some slick desktop backgrounds.
</p>FiST: Stackable File System Language and Templateshttps://blueslugs.com/2006/03/27/fist-stackable-file-system-language-and-templates/Mon, 27 Mar 2006 19:56:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/27/fist-stackable-file-system-language-and-templates/<p class="link">
<a href="http://www.am-utils.org/project-fist.html" >FiST: Stackable File System Language and Templates</a>
</p>
<p class="extended">
Erez Zadok’s file system development system.
</p>Please excuse the interruptions in the feedhttps://blueslugs.com/2006/03/22/please-excuse-the-interruptions-in-the-feed/Thu, 23 Mar 2006 05:27:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/22/please-excuse-the-interruptions-in-the-feed/<p>I was having a bit of trouble with duplicate entries from Word Pre.cio.us (for entries containing <code>'\''</code> 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.</p>
<p class="note">
Sadly, some of the dates on the bookmarks got changed, so the time correlations between certain links have been lost.
</p>
<p>This little <a href="https://blueslugs.com/~sch/patches/del2wp.lib.php.diff" class="broken_link" rel="nofollow">patch</a> 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.)</p>
<p>In any case, the syndication feeds should be less bumpy henceforth.</p>Peter's Solaris Zone: JKstathttps://blueslugs.com/2006/03/21/peters-solaris-zone-jkstat-2/Tue, 21 Mar 2006 18:58:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/21/peters-solaris-zone-jkstat-2/<p class="link">
<a href="http://www.petertribble.co.uk/Solaris/jkstat.html" >Peter’s Solaris Zone: JKstat</a>
</p>
<p class="extended">
Peter Tribble has a JNI binding for Solaris kstats, and has graphical tools that provide example use of the interface.
</p>Why Bitkeeper Isn't Right For Free Softwarehttps://blueslugs.com/2006/03/20/why-bitkeeper-isnt-right-for-free-software/Tue, 21 Mar 2006 04:09:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/20/why-bitkeeper-isnt-right-for-free-software/<p class="link">
<a href="http://web.mit.edu/ghudson/thoughts/bitkeeper.whynot" >Why Bitkeeper Isn’t Right For Free Software</a>
</p>
<p class="extended">
An essay linking choice of SCM to free software development organization. Vague and unjustified (by article) association of Linux integration process with SCM supported topologies. Cited elsewhere.
</p>Robert, Henry M. 1915. Robert's Rules of Order Revised for Deliberative Assemblieshttps://blueslugs.com/2006/03/20/robert-henry-m-1915-roberts-rules-of-order-revised-for-deliberative-assemblies/Tue, 21 Mar 2006 04:08:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/20/robert-henry-m-1915-roberts-rules-of-order-revised-for-deliberative-assemblies/<p class="link">
<a href="http://www.bartleby.com/176/" >Robert, Henry M. 1915. Robert’s Rules of Order Revised for Deliberative Assemblies</a>
</p>
<p class="extended">
Fourth edition online
</p>Now integrating del.icio.ushttps://blueslugs.com/2006/03/20/now-integrating-delicious/Mon, 20 Mar 2006 15:52:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/20/now-integrating-delicious/<p>I decided to start pulling my <a href="http://del.icio.us/sch/" >del.icio.us</a> 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.</p>heisel.org > Projectshttps://blueslugs.com/2006/03/20/heiselorg-projects-57/Mon, 20 Mar 2006 15:47:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/20/heiselorg-projects-57/<p class="link">
<a href="http://heisel.org/blog/projects/" class="broken_link" rel="nofollow">heisel.org > Projects</a>
</p>
<p class="extended">
Home of Word Pre.cio.us, a patch to WordPress 1.5.x to integrate one’s del.icio.us bookmarks stream (or subset) with your blog.
</p>Stroller mileagehttps://blueslugs.com/2006/03/19/stroller-mileage/Mon, 20 Mar 2006 06:11:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/19/stroller-mileage/<p>Most Saturdays, Dina and Benjamin head off to swimming lessons. Nathaniel and I are left to our own devices, which means we go for one of two kinds of walk: a walking walk, where Nathaniel walks, and a seeing walk, where Nathaniel gets pushed. This week, Nathaniel expressed that he wanted to see trains on the walk, which meant a seeing walk.</p>
<p><img src="http://blueslugs.com/2006/03/19/walk0319nrh.png" alt="Eager for the walk"></p>
<p>We headed east towards the Redwood City Caltrain station. On the way, we passed the most recent arrival in <a href="http://blueslugs.com/wordpress/index.php/archives/2004/06/28/coffee-and-other-scents-in-the-air/" >Redwood City’s gradual approach to Seattle-class latte infrastructure</a>:</p>
<p><img src="http://blueslugs.com/2006/03/19/walk0319peets.png" alt="Most recent coffee franchise"></p>
<p>We walked through the station, intending to cross the tracks and visit a couple of the construction sites downtown. When you’re nearly two years old and focused on being an expert in trains and trucks, seeing a truck that can ride on the rails is perhaps mind expanding:</p>
<p><img src="http://blueslugs.com/2006/03/19/walk0319railtruck.png" alt="Caltrain utility truck"></p>
<p>The renovation of the Old San Mateo County Courthouse—now home to the <a href="http://www.sanmateocountyhistory.com/" >San Mateo County History Museum</a>—appears to involve extensive work on the columns:</p>
<p><img src="http://blueslugs.com/2006/03/19/walk0319museum.png" alt="Museum renovation"></p>
<p>Finally, we walked back to the station to see the 10:41 Northbound train,</p>
<p><img src="http://blueslugs.com/2006/03/19/walk031927train.png" alt="Northbound 27"></p>
<p>wheeled into Peet’s to grab a cappuccino, and sipped our drinks—Nathaniel is usually prepared with a travel flask—as the Southbound 26 pulled in ten minutes later. Two trains (and a “train truck”) spotted, we headed home.</p>How?s This for Load Averagehttps://blueslugs.com/2006/03/16/hows-this-for-load-average-2/Fri, 17 Mar 2006 00:44:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/16/hows-this-for-load-average-2/<p class="link">
<a href="http://www.colinseymour.co.uk/archives/2006/02/08/hows-this-for-load-average/" >How?s This for Load Average</a>
</p>
<p class="extended">
Colin runs a fork bomb on a zone bound to a resource pool. The zones.max-lwps resource control would further restrict the impact of the attempt to deny service, as he notes.
</p>How's This for Load Averagehttps://blueslugs.com/2006/03/16/hows-this-for-load-average/Fri, 17 Mar 2006 00:44:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/16/hows-this-for-load-average/<p class="link">
<a href="http://www.colinseymour.co.uk/archives/2006/02/08/hows-this-for-load-average/" >How?s This for Load Average</a>
</p>
<p class="extended">
Colin runs a fork bomb on a zone bound to a resource pool. The zones.max-lwps resource control would further restrict the impact of the attempt to deny service, as he notes.
</p>The Blog of Ben Rockwood: RHEL-to-Solaris Transition Referencehttps://blueslugs.com/2006/03/10/the-blog-of-ben-rockwood-rhel-to-solaris-transition-reference/Fri, 10 Mar 2006 22:39:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/10/the-blog-of-ben-rockwood-rhel-to-solaris-transition-reference/<p class="link">
<a href="http://www.cuddletech.com/blog/pivot/entry.php?id=570" >The Blog of Ben Rockwood: RHEL-to-Solaris Transition Reference</a>
</p>
<p class="extended">
Ben gives an admin’s cheatsheet for moving from one operating system to another.
</p>Zones development: You're invitedhttps://blueslugs.com/2006/03/09/zones-development-you-are-invited/Thu, 09 Mar 2006 21:50:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/09/zones-development-you-are-invited/<p class="link">
<a href="http://blogs.sun.com/roller/page/dp?entry=zones_development_you_re_invited" >Zones development: You’re invited</a>
</p>
<p class="extended">
Dan Price explains why OpenSolaris matters to ISVs delivering on Solaris. Not just relevant to Zones.
</p>Mentawai Web Framework – Mentawai Overviewhttps://blueslugs.com/2006/03/09/mentawai-web-framework-mentawai-overview/Thu, 09 Mar 2006 19:17:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/09/mentawai-web-framework-mentawai-overview/<p class="link">
<a href="http://www.mentaframework.org/" >Mentawai Web Framework – Mentawai Overview</a>
</p>
<p class="extended">
A lightweight Java web application framework. No use of XML configuration, in contrast to most other Java frameworks.
</p>RIFE : Abouthttps://blueslugs.com/2006/03/07/rife-about/Tue, 07 Mar 2006 22:06:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/07/rife-about/<p class="link">
<a href="http://rifers.org/" >RIFE : About</a>
</p>
<p class="extended">
A lightweight Java web applications framework.
</p>Textism: Tools: Textilehttps://blueslugs.com/2006/03/07/textism-tools-textile/Tue, 07 Mar 2006 21:16:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/07/textism-tools-textile/<p class="link">
<a href="http://textism.com/tools/textile/" >Textism: Tools: Textile</a>
</p>
<p class="extended">
Textile’s home page.
</p>SourceForge.net: textile4jhttps://blueslugs.com/2006/03/07/sourceforgenet-textile4j/Tue, 07 Mar 2006 21:15:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/07/sourceforgenet-textile4j/<p class="link">
<a href="http://sourceforge.net/projects/textile4j" >SourceForge.net: textile4j</a>
</p>
<p class="extended">
Another Textile markup implementation in Java.
</p>philwilson.org :: jtextilehttps://blueslugs.com/2006/03/07/philwilsonorg-jtextile/Tue, 07 Mar 2006 21:14:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/07/philwilsonorg-jtextile/<p class="link">
<a href="http://philwilson.org/projects/jtextile/" class="broken_link" rel="nofollow">philwilson.org :: jtextile</a>
</p>
<p class="extended">
A Java implementation of the Textile markup language.
</p>LiteratePrograms:Welcome – LiterateProgramshttps://blueslugs.com/2006/03/02/literateprogramswelcome-literateprograms/Thu, 02 Mar 2006 22:32:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/02/literateprogramswelcome-literateprograms/<p class="link">
<a href="http://literateprograms.org/LiteratePrograms:Welcome" >LiteratePrograms:Welcome – LiteratePrograms</a>
</p>
<p class="extended">
A wiki of literate programs: programs presented in an expository format, that can be reordered into a compilation ready form.
</p>GIT – Tree History Storage Toolhttps://blueslugs.com/2006/03/01/git-tree-history-storage-tool/Wed, 01 Mar 2006 19:30:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/01/git-tree-history-storage-tool/<p class="link">
<a href="http://git.or.cz/" >GIT – Tree History Storage Tool</a>
</p>
<p class="extended">
Software used as the basis for a number of source code managers. Includes “core GIT”, a basic but powerful SCM.
</p>Getopt: Parse command-line arguments from shell scriptshttps://blueslugs.com/2006/03/01/getopt-parse-command-line-arguments-from-shell-scripts/Wed, 01 Mar 2006 19:20:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/03/01/getopt-parse-command-line-arguments-from-shell-scripts/<p class="link">
<a href="http://software.frodo.looijaard.name/getopt/" >Getopt: Parse command-line arguments from shell scripts</a>
</p>
<p class="extended">
getopt(1) implementation with long option support.
</p>Predictable – Gates, projects, and developers in ONhttps://blueslugs.com/2006/02/28/predictable-gates-projects-and-developers-in-on/Tue, 28 Feb 2006 21:48:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/28/predictable-gates-projects-and-developers-in-on/<p class="link">
<a href="http://blogs.sun.com/roller/page/sch?entry=gates_projects_and_developers_in" >Predictable – Gates, projects, and developers in ON</a>
</p>
<p class="extended">
Aspects of source code management practices in the OpenSolaris ON consolidation.
</p>monotone documentationhttps://blueslugs.com/2006/02/27/monotone-documentation/Tue, 28 Feb 2006 05:41:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/27/monotone-documentation/<p class="link">
<a href="http://monotone.ca/docs/" >monotone documentation</a>
</p>
<p class="extended">
Monotone’s documentation in a single HTML page. The CVS-Monotone equivalence is an easy way to get started.
</p>Gates, projects, and developers in ONhttps://blueslugs.com/2006/02/27/gates-projects-and-developers-in-on/Tue, 28 Feb 2006 00:17:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/27/gates-projects-and-developers-in-on/<p>If you’re following the <a href="http://www.opensolaris.org/jive/forum.jspa?forumID=9" class="broken_link" rel="nofollow"><code>tools-discuss</code></a> alias on <a href="http://opensolaris.org" >opensolaris.org</a>, then you’re also aware that the <a href="http://opensolaris.org/os/community/onnv/" >ON consolidation</a> uses a distributed source code management tool to track changes to the ON source (which includes the kernel as well as many device drivers, libraries, and commands). I thought I would review the current relationships between code repositories in typical development scenarios in ON, in part to practice using tool-neutral terminology in describing how code changes move from a developer into the main repository for the development release, but also to reveal some of the assumptions behind the distributed source code requirements and evaluation.</p>
<p class="note">
To stay neutral, the various invocations of a fictional ‘scm’ tool below are hypothetical; different SCMs might treat some of these command sequences as a more monolithic operation or might provide even more primitive operations.
</p>
<p>For reference of the relationships we discuss below, here’s a simple diagram, in which the arrows indicate the flow of code changes. The two shaded repositories are the first to receive changes from their respective children, which we’ll call “gates”. (The unshaded repositories receive their changes from a gate or via a child pulling from a gate.)</p>
<p><img src="https://blueslugs.com/mediacast/p-gate-relns.png" alt="Typical repository relationships" title=""></p>
<p>Let’s consider first an individual developer addressing one or more bugs in ON. He or she will need a copy of the source to work on, which we choose to store in <code>/path/to/fix-0</code>.</p>
<pre><code>$ scm clone /path/to/onnv-clone /path/to/fix-0
</code></pre>
<p>For ON, this clone (or initial pull or initial bringover or initial checkout) operation involves the creation of a little over 34 000 files and nearly 7 000 directories.</p>
<p class="note">
Although we use file system paths in these examples, most of the candidates can perform their operations over the network, via `ssh`, `http`, or a native protocol.
</p>
<p>The developer then makes his or her changes to the files requiring correction. During that period of time—editing, compiling, and testing, as well as devising a fix—the user may make intermediate commits of their current work and pull new changes (made by the other ON committers—let’s say a thousand). This operation looks like</p>
<pre><code>$ scm commit
$ scm pull
$ scm merge
</code></pre>
<p>with all operations going to <code>onnv-clone</code>.</p>
<p>Finally the developer is ready for final integration. Their code has been tested, code reviewed, and an integration request has been approved. Their final sequence is</p>
<pre><code>$ scm reparent /path/to/onnv-gate
$ scm sanitize
$ scm commit
$ scm pull
$ scm merge
</code></pre>
<p>until they are completely up-to-date with respect to <code>onnv-gate</code>, at which point, they can publish their changes</p>
<pre><code>$ scm push
</code></pre>
<p>The “sanitize” operation removes all of the intermediate commits made in the developer’s repository—from merges made along the way—so that the main gate only sees the important portion of the history of their work: what specific defects, via bug IDs, are addressed by this changeset.</p>
<p class="note">
`sanitize` isn’t typically implemented in source code management tools; it is a local addition that might be seen as controversial in some circles. ON isn’t a pull- or patch-driven integration process, so if we didn’t sanitize, we would have commit logs with the merge records resulting from 1 000 developers merging at different rates.
</p>
<p>At this point, it’s probably worth commenting on the existence of the <code>onnv-clone</code> repository, which is provided as a read-only child of the main development repository, <code>onnv-gate</code>. All of the operations in our scenario would have been sensible if we had used <code>onnv-gate</code> as our parent repository (and omitted our <code>reparent</code> operation). So why have a ‘clone’ at all? There are two reasons, one technical and one social.</p>
<p>The technical reason is to make sure that contention for the gate’s repository locking is limited to developers integrating code. Integrating into ON carries with it a substantial burden of testing, watching for other integrations, rebuilding, and so on: getting blocked by an initial pull of the gate repository taking the various repository locks is a difficult scenario we want to avoid.</p>
<p>The social reason is that the clone represents a steadying rhythm for developers: unless you are preparing to integrate that day, you know that the pull/merge you do from the clone is, on some best effort basis, safe. Small build mistakes have been fixed and large ones undone prior to potentially impacting your development repositories.</p>
<p>So a clone is a useful technique when a DSCM’s locking might be overwhelmed by the number of child repositories needing to be kept up-to-date.</p>
<p>Our second scenario, where a few developers are pursuing a project that involves a large batch of coordinated changes to ON, is an example where a clone repository isn’t necessary, as the three developers are unlikely to contend on the repository lock. But the role of <code>project-gate</code> is similar: to provide a repository which is regularly built and whose binary products are regularly tested (and may even be shared with potential users or act as parents to other projects’ gates), so that the developers can make confident forward progress.</p>
<p>One of the developers (or more) will, on some schedule, do pulls and merges from <code>onnv-clone</code> and integrate them into <code>project-gate</code>. This “resync” can be done from the project gate itself or (and more preferably, but not illustrated) from an additional child. In the latter case, this sequence looks like</p>
<pre><code>$ scm parent
/path/to/project-gate
$ scm pull /path/to/onnv-clone
$ scm merge
$ # test build, corrections, with possible a commit/pull/merge
$ scm push
</code></pre>
<p>where we have pulled from <code>onnv-clone</code> to push to our project repository.</p>
<p>When the development team is ready to integrate their changes, their invocations from the <code>project-gate</code> repository are similar to their colleague’s from <code>fix-0</code> above:</p>
<pre><code>$ scm reparent /path/to/onnv-gate
$ scm sanitize
$ scm commit
$ scm pull
$ scm merge
$ scm push
</code></pre>
<p>For a project, this action is usually followed by the consumption of one or more celebratory beverages, while the most nervous member watches for mail from one or more gatekeepers regarding build nits or more serious omissions. We’ll have to work on collaboration tools so that this team experience can be shared across the network.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/scm" rel="tag nofollow" class="broken_link">scm</a> ]
</p>Daemon News 200602 : A Brief History of Apple's Open Source Effortshttps://blueslugs.com/2006/02/23/daemon-news-200602-a-brief-history-of-apples-open-source-efforts/Fri, 24 Feb 2006 06:36:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/23/daemon-news-200602-a-brief-history-of-apples-open-source-efforts/<p class="link">
<a href="http://ezine.daemonnews.org/200602/apple.html" >Daemon News 200602 : A Brief History of Apple’s Open Source Efforts</a>
</p>
<p class="extended">
A review of the progressive reductions in Apple’s commitment to open development around Darwin. Notes specific complexity of the internal build infrastructure and how that translated to external developer participation.
</p>unixzone dot dk » JES Directory Server SMF Manifesthttps://blueslugs.com/2006/02/23/unixzone-dot-dk-jes-directory-server-smf-manifest/Fri, 24 Feb 2006 06:28:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/23/unixzone-dot-dk-jes-directory-server-smf-manifest/<p class="link">
<a href="http://www.unixzone.dk/unix/20060211/jes-directory-server-smf-manifest/" class="broken_link" rel="nofollow">unixzone dot dk » JES Directory Server SMF Manifest</a>
</p>
<p class="extended">
Lasse Østerild has a conversion for the Java ES Directory Server.
</p>New pocket locationhttps://blueslugs.com/2006/02/23/new-pocket-location/Thu, 23 Feb 2006 18:37:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/23/new-pocket-location/<p>I’m not the most device-laden person around here—by far. But I occasionally like to carry a camera and my Visor, as well as the obligatory tether-phone. An extra pocket would be nice, as wearing a jacket (with its 2 – 6 pockets) is uncomfortable for much of the year in a California climate. I always thought that the Dockers was onto something with their Mobile Pants, but now <a href="http://www.reghardware.co.uk/2006/02/23/pink_ipod_tie/" >The Register reports</a> that Thomas Pink has upped the ante by placing a pocket on the back of a necktie.</p>
<p class="note">
Seems like a natural place for any digital music player or even a voice-driven phone, given a headset with one or two buttons.
</p>The National Security Archivehttps://blueslugs.com/2006/02/20/the-national-security-archive/Tue, 21 Feb 2006 06:11:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/20/the-national-security-archive/<p class="link">
<a href="http://www.gwu.edu/~nsarchiv/" >The National Security Archive</a>
</p>
<p class="extended">
Research archive at George Washington University.
</p>Library and Archives Canadahttps://blueslugs.com/2006/02/20/library-and-archives-canada/Tue, 21 Feb 2006 05:35:53 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/20/library-and-archives-canada/<p class="link">
<a href="http://www.collectionscanada.ca/index-e.html" class="broken_link" rel="nofollow">Library and Archives Canada</a>
</p>
<p class="extended">
National archives of Canada, English site, online.
</p>The National Archiveshttps://blueslugs.com/2006/02/20/the-national-archives/Tue, 21 Feb 2006 05:35:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/20/the-national-archives/<p class="link">
<a href="http://www.nationalarchives.gov.uk/" >The National Archives</a>
</p>
<p class="extended">
National archives of the UK, online.
</p>NARAhttps://blueslugs.com/2006/02/20/nara/Tue, 21 Feb 2006 05:34:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/20/nara/<p class="link">
<a href="http://www.archives.gov/" >NARA</a>
</p>
<p class="extended">
National archives of the USA, online.
</p>Yahoo! UI Libraryhttps://blueslugs.com/2006/02/14/yahoo-ui-library/Tue, 14 Feb 2006 17:37:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/14/yahoo-ui-library/<p class="link">
<a href="http://developer.yahoo.net/yui/" >Yahoo! UI Library</a>
</p>
<p class="extended">
Yahoo’s library and design patterns, available under a BSD license.
</p>BigAdmin Feature Article: GRUB and the Solaris 10 1/06 OS: The New Bootloader for x86 Platformshttps://blueslugs.com/2006/02/13/bigadmin-feature-article-grub-and-the-solaris-10-106-os-the-new-bootloader-for-x86-platforms/Mon, 13 Feb 2006 22:50:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/13/bigadmin-feature-article-grub-and-the-solaris-10-106-os-the-new-bootloader-for-x86-platforms/<p class="link">
<a href="http://www.sun.com/bigadmin/features/articles/grub_boot_solaris.html" >BigAdmin Feature Article: GRUB and the Solaris 10 1/06 OS: The New Bootloader for x86 Platforms</a>
</p>
<p class="extended">
Technical overview of Solaris/OpenSolaris booting via GRUB.
</p>Cryptically contenthttps://blueslugs.com/2006/02/10/cryptically-content/Sat, 11 Feb 2006 00:00:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/10/cryptically-content/<p>For me, on the whole, this week was a pretty good one. <a href="http://blogs.sun.com/dep" >Dave</a> and I wrapped up some interface work on Wednesday (and one of my favourite projects, <a href="http://opensolaris.org/os/project/vpanels/" >Visual Panels</a>, went public using the <a href="http://opensolaris.org/os/projects/" >project hosting</a> on <code>opensolaris.org</code>). And we’ve been making progress on many fronts for OpenSolaris: the <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=5823&tstart=0" class="broken_link" rel="nofollow">source code management evaluation</a> is starting to pick up, project proposal rates are increasing, and governance efforts are nearing their next milestone.</p>
<p>I may even have enough time to dust off some unfinished blog entries.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> vpanels ]
</p>Posix for Javahttps://blueslugs.com/2006/02/09/posix-for-java/Thu, 09 Feb 2006 23:12:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/09/posix-for-java/<p class="link">
<a href="http://www.bmsi.com/java/posix/package.html" class="broken_link" rel="nofollow">Posix for Java</a>
</p>
<p class="extended">
A different implementation. More objects, but less coverage.
</p>Jtux – Java-To-Unix Packagehttps://blueslugs.com/2006/02/09/jtux-java-to-unix-package/Thu, 09 Feb 2006 23:12:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/09/jtux-java-to-unix-package/<p class="link">
<a href="http://www.basepath.com/aup/jtux/" >Jtux – Java-To-Unix Package</a>
</p>
<p class="extended">
Classes and JNI to allow access to POSIX functionality from Unix. Appears to be self-consistent; known to work on BSD, Linux, MacOS X, and Solaris.
</p>TWiki . Linux . LinuxInternalsSystemcallsEtcFromJavahttps://blueslugs.com/2006/02/09/twiki-linux-linuxinternalssystemcallsetcfromjava/Thu, 09 Feb 2006 23:07:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/09/twiki-linux-linuxinternalssystemcallsetcfromjava/<p class="link">
<a href="http://wiki.java.net/bin/view/Linux/LinuxInternalsSystemcallsEtcFromJava" class="broken_link" rel="nofollow">TWiki . Linux . LinuxInternalsSystemcallsEtcFromJava</a>
</p>
<p class="extended">
A few links to various “access POSIX from Java” projects.
</p>SuperBowl ads wanted: must have science or stuntshttps://blueslugs.com/2006/02/07/superbowl-ads-wanted-must-have-science-or-stunts/Tue, 07 Feb 2006 08:48:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/07/superbowl-ads-wanted-must-have-science-or-stunts/<p>The <em>Wall Street Journal</em> has an article, <a href="http://online.wsj.com/article/SB113898059693064472.html" >“Clever Gags Score High On Super Bowl Ads”</a>, with best and worst polls to accompany the online edition. We, for a change, actually watched the SuperBowl this year—with appropriate TiVo gymnastics to cover the grossly underestimated duration given in the television listings—and so can comment on the advertisements. The popular FedEx cavemen-and-dinosaurs ad was a hit with Benjamin, as was the offspring-of-monster-and-robot bit from Hummer. My favorite? I think Stunt City [Degree] was underappreciated: the admonishment to the motorcycle deliveryman who has just crashed through the window (“no helmets”) was silent, low-key, and clever.</p>
<p>Oh, and we liked the meteoroid-geologically-becomes-PEBL [Motorola] ad, too.</p>PublicRadioFan.com – What's on now or soonhttps://blueslugs.com/2006/02/06/publicradiofancom-whats-on-now-or-soon/Tue, 07 Feb 2006 05:10:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/02/06/publicradiofancom-whats-on-now-or-soon/<p class="link">
<a href="http://www.publicradiofan.com/cgi-bin/whatson.pl?when=nowlookahead&lookahead=30&hour=&day=&hrsahead=2&statopt=&sty=rm&sty=mp3&sty=ogg&type=&format=list&order=p&gridorder=s" >PublicRadioFan.com – What’s on now or soon</a>
</p>
<p class="extended">
Upcoming programming on Internet public radio stations using MP3, Ogg, or Real.
</p>Dense election coveragehttps://blueslugs.com/2006/01/29/dense-election-coverage/Mon, 30 Jan 2006 06:46:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/01/29/dense-election-coverage/<p>A couple of people have asked me to comment on the Canadian election last week. Although I was up to date with the limited reporting in <em>The Economist</em>, the two to six weeks of latency in my <em>Maclean’s</em> subscription meant I never really connected with the current situation—I was already rather fed up with the random delays, and am switching to <em>The Walrus</em> as an experiment. In any case, I’ve been in the USA for over thirteen years now; my perceptions of Canada are, politely, distorted by nostalgia.</p>
<p>I did get to admire the CBC election night coverage. Check out the density of this snapshot of reporting from a British Columbia riding:</p>
<div>
<img src='http://blueslugs.com/wordpress/wp-content/pcbcelectionscreen.jpg' alt='CBC TV election layout (via CSPAN)' />
</div> That’s four distinct presentation areas: (1) riding result, (2) national seat summary, (3) provincial changes, and (4) a message area:
<div>
<img src='http://blueslugs.com/wordpress/wp-content/gcbclayout.png' alt='CBC screen breakout' />
</div> Although there isn’t one in the snapshot above, area (4)’s text messages would sweep in, and were mapped on to a curve parallel to the lower side of the elliptical ring.
<p>The screen is reporting 22 numbers—more when more parties or independent candidates were standing—which seems pretty high for a television graphic (plus the party associations, candidate and riding names, and the riding’s location in the country). The beige field is a good neutral background for the presentation of the range of colours needed to handle the multiple parties participating.</p>
<p>Unfortunately, I didn’t take a picture of the confusing artwork behind Peter Mansbridge and his panel, which lacked the elegance of the reporting screen. (The panel’s banter wasn’t that entertaining, but I get the impression Senator Segal is quite an operator.)</p>State of the domainhttps://blueslugs.com/2006/01/25/state-of-the-domain-2/Thu, 26 Jan 2006 07:28:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/01/25/state-of-the-domain-2/<p>As I did <a href="https://blueslugs.com/2005/01/07/state-of-the-domain/">last year</a>, I’m again reviewing the year from the perspective of <code>blueslugs.com</code>.</p>
<p><strong>Overview.</strong> 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 <code>blueslugs.com</code>, while the remaining 2.7 GB was from the new domain, <a href="http://highmaintenancemom.com" class="broken_link" rel="nofollow"><code>highmaintenancemom.com</code></a>, 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 ``As I did <a href="https://blueslugs.com/2005/01/07/state-of-the-domain/" >last year</a>, I’m again reviewing the year from the perspective of <code>blueslugs.com</code>.</p>
<p><strong>Overview.</strong> 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 <code>blueslugs.com</code>, while the remaining 2.7 GB was from the new domain, <a href="http://highmaintenancemom.com" class="broken_link" rel="nofollow"><code>highmaintenancemom.com</code></a>, 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``</p>
<p><strong>Content.</strong> The most popular page on the site this year was <a href="https://blueslugs.com/2005/07/12/tag1-delicious-style-file-tagging/" >the introduction of <code>tag</code>(1)</a>, 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 <code>tag</code>(1).) Pages from <a href="https://blueslugs.com/benjamin">Benjamin</a>‘s alphabet book are still regularly requested: the <a href="https://blueslugs.com/fixed/benjamin/alphabet.html" class="broken_link" rel="nofollow">alphabet page</a> trailed tagging by only a few hundred hits. (Each had over 16 000.) The <a href="https://blueslugs.com/alphabet/grammar.gif" class="broken_link" rel="nofollow">grammar page</a> is the top individual page, but the <a href="https://blueslugs.com/alphabet/ABCFlags.gif" class="broken_link" rel="nofollow">country flags</a> and <a href="https://blueslugs.com/alphabet/ABCMathematicians.gif" class="broken_link" rel="nofollow">mathematicians</a> images get pulled in via search terms. Search engine passes and syndication feed pulls are as or more regular than ever.</p>
<p>Beyond the <code>tag</code>(1) release, I ported <a href="https://blueslugs.com/2005/11/17/audacity-for-solaris-10-x86/" >Audacity to Solaris x86</a>, which helped a few people, based on downloads. The <a href="https://blueslugs.com/dockables/" class="broken_link" rel="nofollow">dockapps</a> I wrote a few years ago still get pulled regularly. Most of my Solaris posts are published at my <a href="http://blueslugs.com/" >work blog</a>, but I’m still exploring “personal (Unix) computing” posting as a topic to cover here.</p>
<p>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…</p>
<p><strong>System.</strong> As <a href="https://blueslugs.com/2005/07/05/unexpected-new-server/" >chronicled</a>, 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.</p>
<p>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.</p>
<p><strong>Future.</strong> 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.</p>SIP.edu Cookbook : Introductionhttps://blueslugs.com/2006/01/17/sipedu-cookbook-introduction/Wed, 18 Jan 2006 00:02:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/01/17/sipedu-cookbook-introduction/<p class="link">
<a href="http://mit.edu/sip/sip.edu/" >SIP.edu Cookbook : Introduction</a>
</p>
<p class="extended">
Internet2 educational SIP deployment practices.
</p>[cs/0601038] Constraint-based automatic verification of abstract models of multithreaded programshttps://blueslugs.com/2006/01/11/cs0601038-constraint-based-automatic-verification-of-abstract-models-of-multithreaded-programs/Thu, 12 Jan 2006 00:31:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/01/11/cs0601038-constraint-based-automatic-verification-of-abstract-models-of-multithreaded-programs/<p class="link">
<a href="http://arxiv.org/abs/cs/0601038" >[cs/0601038] Constraint-based automatic verification of abstract models of multithreaded programs</a>
</p>
<p class="extended">
</p>[cs/0503058] On the Stopping Distance and the Stopping Redundancy of Codeshttps://blueslugs.com/2006/01/03/cs0503058-on-the-stopping-distance-and-the-stopping-redundancy-of-codes/Tue, 03 Jan 2006 16:55:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/01/03/cs0503058-on-the-stopping-distance-and-the-stopping-redundancy-of-codes/<p class="link">
<a href="http://arxiv.org/abs/cs/0503058" >[cs/0503058] On the Stopping Distance and the Stopping Redundancy of Codes</a>
</p>
<p class="extended">
</p>[cs/0512065] Tradeoffs in Metaprogramminghttps://blueslugs.com/2006/01/03/cs0512065-tradeoffs-in-metaprogramming/Tue, 03 Jan 2006 16:53:47 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2006/01/03/cs0512065-tradeoffs-in-metaprogramming/<p class="link">
<a href="http://arxiv.org/abs/cs/0512065" >[cs/0512065] Tradeoffs in Metaprogramming</a>
</p>
<p class="extended">
Metaprogramming and safety analyzed via restricted language choices.
</p>CanvasGraph.js : Graphing in Javascript | liquidxhttps://blueslugs.com/2005/12/16/canvasgraphjs-graphing-in-javascript-liquidx/Fri, 16 Dec 2005 22:23:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/16/canvasgraphjs-graphing-in-javascript-liquidx/<p class="link">
<a href="http://www.liquidx.net/canvasgraphjs/#examples" >CanvasGraph.js : Graphing in Javascript | liquidx</a>
</p>
<p class="extended">
Graphing in the browser–needs Firefox 1.5, but very useful once canvas support widespread.
</p>Camera gets a workouthttps://blueslugs.com/2005/12/14/camera-gets-a-workout/Thu, 15 Dec 2005 06:46:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/14/camera-gets-a-workout/<p>A <a href="http://blueslugs.com/wordpress/index.php/archives/2005/06/21/prosumption-vs-consumption/" >while back</a>, I was speculating about getting a new camera. I finally gave up using the S30 with the broken screen and decided to act. Although I showed some recent system-administration-confererence-action shots, indoor snapshots are never as much fun.</p>
<p>So when we decided to go see the visiting reindeers—from central Oregon apparently—at the <a href="http://www.sfzoo.org" >San Francisco Zoo</a>, the camera went along for the ride. One of the guests of honour:</p>
<p><img src="http://blueslugs.com/2005/12/14/p2005decreindeer.jpg" alt="Reindeer at SFZoo"></p>
<p>Note the ground-scraping horn extending well over the left brow.</p>
<p>Nathaniel thought the reindeer were cool and kept trying to pass through the outer fence to get a closer look:</p>
<p><img src="http://blueslugs.com/2005/12/14/p2005decnathaniel.jpg" alt="Nathaniel espies the reindeer"></p>
<p>Next up was seeing the bears, but the playground is a mandatory stop on this route:</p>
<p><img src="http://blueslugs.com/2005/12/14/p2005decben.jpg" alt="Ben atop the concrete camel"></p>
<p>Since our trip to San Diego, Ben has been very interested in the state of the Alaskan Brown Bear at that zoo. If the bear’s blogging I don’t know about it, but I was able to convince Ben that seeing the young grizzlies get larger was just as interesting—and they are getting bigger:</p>
<p><img src="http://blueslugs.com/2005/12/14/p2005decgrizzly.jpg" alt="Grizzly at SFZoo"></p>
<p>Down the way, at the spectacled bear grotto, I noticed some writing on a railing:</p>
<p><img src="http://blueslugs.com/2005/12/14/p2005decoldrailing.jpg" alt="An old railing shows its parentage"></p>
<p>The bear dens were built by the <a href="http://en.wikipedia.org/wiki/Works_Progress_Administration" >WPA</a>, so this railing’s <a href="http://en.wikipedia.org/wiki/Bethlehem_Steel" >Bethlehem Steel</a> parentage is not surprising. (Apparently, these grottos and the other WPA-built exhibits are some of the earliest “barless” zoo exhibits in the world. I’ve noticed that children’s books often render cagebar zoo displays, even when written many years after such displays were common.)</p>
<p>On the way out, we noticed the otters were enjoying a light lunch:</p>
<p><img src="http://blueslugs.com/2005/12/14/p2005decotter.jpg" alt="Otter at the SFZoo"></p>
<p>One tip with electronic viewfinder cameras: turn off the review period to make the camera feel faster. (It is often set to about 2 seconds.) For outdoor shots, where the flash isn’t a factor, you’ll be much less likely to miss a good photo.</p>store.sun.com to Niagara/Solaris 10https://blueslugs.com/2005/12/14/store-sun-com-to-niagarasolaris-10/Thu, 15 Dec 2005 05:59:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/14/store-sun-com-to-niagarasolaris-10/<p><a href="http://uadmin.blogspot.com/2005/12/300u-to-8u.html" >James Dickens</a> spied a new <a href="http://www.sun.com/blueprints/1205/819-5148.pdf" >BluePrint on the planned redeployment of <code>store.sun.com</code> [PDF]</a> to SunFire T2000 systems running Solaris 10. Beyond the tremendous reduction in occupied space and the around 90 percent estimated reduction in input power and output heat, the document describes the use of Solaris Containers to consolidate the middle tier servers, complete with invocations of <code>zonecfg</code>(1M) (for the <a href="http://opensolaris.org/os/community/zones/" >zones</a> the applications run inside of) and <code>poolcfg</code>(1M) (for the resource pools the zones sit upon).</p>
<p class="note">
Business applications are complex—maybe some <code>smf</code>(5) service conversions will appear in the next version to make the dependency and failure handling more precise.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/zones" rel="tag nofollow" class="broken_link">zones</a> <a href="http://www.technorati.com/tag/pools" rel="tag nofollow" class="broken_link">pools</a> ]
</p>Reading at work: Sturgis, Standard code of parliamentary procedurehttps://blueslugs.com/2005/12/14/reading-at-work-sturgis-standard-code-of-parliamentary-procedure/Wed, 14 Dec 2005 22:51:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/14/reading-at-work-sturgis-standard-code-of-parliamentary-procedure/<p class="note">
[ Alice Sturgis, <a href="http://www.amazon.com/gp/product/0071365133/" ><i>The Standard Code of Parliamentary Procedure</i></a>, 4e., Mc Graw-Hill, 2000. ]
</p>
<p>As <a href="http://blogs.sun.com/roller/page/sch?entry=program_technical_status_7_november" >I mentioned</a>, I wanted to make sure the team gave some additional support to the governance work being done for OpenSolaris. When I thought about it for a little bit, I realized that, while we have recent and valuable experiences from the open source communities that have established organizational structures and codes, setting up societies and deliberative bodies and their rules is something that’s been going on for a while. So, on a late night dealing with a disk problem at home, I read most of the transcripts from the U. S. Senate’s Oral History Program’s <a href="http://www.senate.gov/artandhistory/history/oral_history/Floyd_M_Riddick.htm" >interviews of Floyd M. Riddick</a>, who was Senate Parliamentarian from 1964 – 1974. (There were a number of reasons I ended up here, but one was to determine what lessons bodies like the Senate might have for a fledgling organization.)</p>
<p>The fact that a word like “parliamentarian” exists means you have a solid angle for searching, as well as a hint that you might not need to reinvent everything. If you search, you’ll find there are two U. S. national organizations for parliamentarians, and that the two primary rulesets are <em>Robert’s Rules of Order, Newly Revised</em> and <em>The Standard Code of Parliamentary Procedure</em>. There’s a whole industry around <em>RONR</em> and much information online; the <em>SCPP</em> is a complete procedure, simplified to remove some of the more unusual parts of <em>RONR</em>, so I thought I would work through that. (So more <a href="http://blogs.sun.com/roller/page/sch?entry=reading_at_work_lencioni_s" >reading at work</a>.)</p>
<p>One of the first quotations in the book, in Chapter One, is in turn a quotation from <a href="http://bioguide.congress.gov/scripts/biodisplay.pl?index=C000117" >Clarence Cannon</a>, who was Parliamentarian of the U. S. House of Representatives (and subsequently a Representative), which reads:</p>
<blockquote>
<p>These rules of Parliament and Congress are designed for bicameral bodies, generally with paid memberships, meeting in continuous session, requiring a majority for a quorum, and delegating their duties largely to committees. Their special requirements . . . have produced highly complex and remarkably efficient systems of rules peculiar to their bodies, but which are, as a whole, unsuited to the needs of the ordinary assembly.</p>
<p align="right">
<i>— Clarence Cannon, “Rules of Order”, <emph>Encyclopædia Britannica</emph>, 1964.</i>
</p> I interpret this paragraph as “imitate us at your own risk”.
</blockquote>
<p>But <em>SCPP</em> does identify when reasonable alternatives to its formulation might be considered, and how they may or may not lead to distortion of the principles of majority-based decision making or the silencing of minority viewpoints. For instance, the idea of requiring a <em>unanimous result</em> for a particular vote means that a <em>minority of one</em> can block resolution of the motion being voted upon. Similarly, a supermajority voting requirement means that a smaller minority can block that action. (Perhaps I’m just pleased that the reference frame that’s being taken is similar to an engineering frame: “how do we construct an assembly so that it can make progress on difficult issues?”.)</p>
<p>I’m still reading <em>SCPP</em>, mostly with an eye to being ready to design <a href="http://opensolaris.org" ><code>opensolaris.org</code></a>‘s support for various kinds of voting, but feel free to recommend you have a look at it now.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> ]
</p>Seasonal OpenSolaris shirthttps://blueslugs.com/2005/12/13/seasonal-opensolaris-shirt/Tue, 13 Dec 2005 19:00:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/13/seasonal-opensolaris-shirt/<p>Sara’s <a href="http://blogs.sun.com/roller/page/sarad?entry=i_m_jewish_for_christ" >tree</a> [was once available] on a shirt.</p>
<p>[That was pretty] slick.</p>
<p><strong>Update, 2009-03-26:</strong> The swag store and the shirt are no longer available.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> ]
</p>LISA05 Fridayhttps://blueslugs.com/2005/12/12/lisa05-friday/Mon, 12 Dec 2005 18:08:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/12/lisa05-friday/<p>After commiserating with my room’s ceramic bunny—his feet are glued to the cabinet’s top and so he has limited opportunities for conversation—I finished packing and headed out for the last few hours of LISA05.</p>
<p><img src="https://blueslugs.com/mediacast/p-day4-bunny.jpg" alt="No way out bunny" title=""></p>
<p>First up was the last papers session, with <a href="http://blogs.sun.com/lianep/" >Liane</a> presenting on <a href="http://opensolaris.org/os/community/smf/" ><code>smf</code>(5)</a>, in addition to papers on a spreadsheet-based scripting environment and a whizzy DNS script for medium sized sites. There was setup before the session, with <a href="http://madstop.com/" >Luke Kanies</a> outlining the basics of how the sessions run:</p>
<p><img src="https://blueslugs.com/mediacast/p-day4-liane-before.jpg" alt="Liane pre-session" title=""></p>
<p>The talk was well delivered and Liane answered the audience questions adeptly so, after a group lunch, we headed off to watch Liane, Bryan, Dan, and Bill lead a “guru” session on Solaris 10.</p>
<p><img src="https://blueslugs.com/mediacast/p-day4-gurus.jpg" alt="Guru session" title=""></p>
<p>My flight time meant that I wasn’t able to stay for the entire session, so I can’t assess the total guru-osity displayed over the 90 minutes. But I certainly think that this year’s trip to LISA was worthwhile.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> LISA05 <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>LISA05 Thursday: Reception(s)https://blueslugs.com/2005/12/12/lisa05-thursday-receptions/Mon, 12 Dec 2005 16:07:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/12/lisa05-thursday-receptions/<p>Thursday evening was a series of sponsored events. The LISA reception was a combination of dinner, desserts, drinks, and a miniature casino floor:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-casino-floor.jpg" alt="Casino
floor" title=""></p>
<p>A fascinating part of the reception was the balloon assemblies produced by the man pictured; here he’s making a birthday cake hat:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-balloon-engineer.jpg" alt="Balloon
constructor" title=""></p>
<p>People lucky enough to receive wings, a palm tree hat (complete with balloon monkey), and the like were good enough to wear them around the ballroom so that we might all see what objects can be constructed from inflated rubber.</p>
<p>After the reception, <a href="http://blogs.sun.com/sarad/" >Sara</a> hosted an OpenSolaris hospitality suite, which came furnished with a very generously pouring bartender. The crowd was pretty good:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-hospitality.jpg" alt="" title=""></p>
<p>As the crowd thinned out, I noticed that a complimentary laptop servicing was being handled by a group of engineers:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-hospitality-laptop.jpg" alt="" title=""></p>
<p>Ultimately, the laptop was restored and the evening ended happily.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> LISA05 ]
</p>Warren Strange: SMF manifest for SlimServerhttps://blueslugs.com/2005/12/11/warren-strange-smf-manifest-for-slimserver/Mon, 12 Dec 2005 06:42:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/11/warren-strange-smf-manifest-for-slimserver/<p class="link">
<a href="http://blogs.sun.com/roller/page/warren?entry=slimserver_6_x_smf_manifest" >Warren Strange: SMF manifest for SlimServer</a>
</p>
<p class="extended">
A service conversion for SlimServer.
</p>LISA05 Thursday: Cost models and wiretapshttps://blueslugs.com/2005/12/11/lisa05-thursday-cost-models-and-wiretaps/Mon, 12 Dec 2005 05:55:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/11/lisa05-thursday-cost-models-and-wiretaps/<p>I went to the midday configuration management theory session as well as to Matt Blaze’s plenary. (I missed the invited talks as I lost track of time during a late lunch.)</p>
<p>The talk I enjoyed out of the theory session was by <a href="http://www.eecs.tufts.edu/~couch/" >Alva Couch</a> and colleagues from Tufts, who presented steps towards a cost model for system management. They worked through over a year’s worth of RT logs from their site, working out the background effects of holidays and weekends, and then being able to model alternate staffing choices and their impact on response time. Alva also made some provcative statements about best practices; with respect to a time-sharing/interactive user dominated site, these statements likely hold. (Less applicable to server farms, though.) It was pleasant to see some math; I plan to work through this paper carefully to see what might be extracted.</p>
<p><a href="http://www.crypto.com" >Matt Blaze</a> gave an energetic talk about his team’s recent work on wiretap technology and how the various implementations can be evaded or confused. There were complimentary copies of the issue of <em>IEEE Privacy and Security</em> that contained the full article, which was a nice touch.</p>
<p class="tag">
[ <i>T</i>: LISA05 ]
</p>LISA05 Thursday: Booth and panelshttps://blueslugs.com/2005/12/09/lisa05-thursday-booth-and-panels/Fri, 09 Dec 2005 21:27:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/09/lisa05-thursday-booth-and-panels/<p>While I’ve been listening to various talks, other folks have been answering questions about Solaris, the new systems, and other Sun products in our booth on the vendor floor. We have a double wide, and it was busy whenever I passed by during session breaks:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-booth.jpg" alt="Busy booth" title=""></p>
<p>In addition to the engineers I’ve mentioned were here, Cindy Swearingen, who is one of the lead technical writers for the Solaris System Administration Guide, handled many inquiries. She’s manning the center table here:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-booth-2.jpg" alt="Cindy has the conn" title=""></p>
<p>There were new Opteron and UltraSPARC T1 systems in the booth; <a href="http://blogs.sun.com/jwadams" >Jonathan</a> has a conversation, with the T2000 (“Niagara”) system in the foreground:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-booth-niagara-converse.jpg" alt="Near Niagara" title=""></p>
<p>Let’s look closely at the Niagara box:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-booth-niagara-close-up.jpg" alt="Inside Niagara" title=""></p>
<p>I do like the aluminum cases, although I’ll always have fond memories of entering datacentres with racks upon racks of wine-coloured systems.</p>
<p>Finally, if you poked around, you might have got a demonstration from <a href="http://blogs.sun.com/dep/" >Dave</a> or David of some ideas in <code>smf</code>(5) visual administration:</p>
<p><img src="https://blueslugs.com/mediacast/p-day3-vp.jpg" alt="smf visualization demo" title=""></p>
<p>That’s real code and a live graph, by the way.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> LISA05 <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> <a href="http://www.technorati.com/tag/Niagara" rel="tag nofollow" class="broken_link">Niagara</a> ]
</p>LISA05 Wednesday BoFhttps://blueslugs.com/2005/12/08/lisa05-wednesday-bof/Thu, 08 Dec 2005 19:37:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/08/lisa05-wednesday-bof/<p>After a rapidly served and consumed dinner at <a href="http://www.tasteofthaisd.com" >Taste of Thai</a>, the Solaris BoF squad headed back for the Wednesday session at 9 pm. The room filled up fast, with some folks ultimately having to stand in the back:</p>
<p><img src="https://blueslugs.com/mediacast/p-day2-room-filling.jpg" alt="Room fills for Wednesday BoF" title=""></p>
<p>I decided to spell <a href="http://blogs.sun.com/jwadams" >Jonathan</a> as T-shirt gerbil, and was happy to give out <a href="http://blogs.sun.com/sarad/" >Sara</a>‘s OpenSolaris ringer Ts and the new Inside Jack shirts in exchange for good questions or smart remarks.</p>
<p class="note">
Next time we’ll be sure to order XXL sized shirts.
</p>
<p><a href="http://blogs.sun.com/dp/" >Dan</a> mentioned that his laptop was spallating, or emitting shrapnel, or something like that, but he and Bill managed to get both their presentations to share what little functionality remained.</p>
<p><img src="https://blueslugs.com/mediacast/p-day2-laptop-appeasement.jpg" alt="Laptop appeasement" title=""></p>
<p>After Dan did a great job covering the coming work in the near future of Solaris, <a href="http://blogs.sun.com/bill" >Bill</a> took the stage for a two hour thorough overview of <a href="http://opensolaris.org/os/community/zfs" >ZFS</a>.</p>
<p><img src="https://blueslugs.com/mediacast/p-day2-bill-zfs.jpg" alt="Bill on zfs" title=""></p>
<p>Even after two hours and many answers dispensed, Bill fielded midnight questions with enthusiasm.</p>
<p><img src="https://blueslugs.com/mediacast/p-day2-bill-questions.jpg" alt="Persistent questioners" title=""></p>
<p class="note">
Nice camera awareness on Bill’s part.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> LISA05 <a href="http://www.technorati.com/tag/ZFS" rel="tag nofollow" class="broken_link">ZFS</a> ]
</p>LISA05 Wednesday: Autopod and PKIhttps://blueslugs.com/2005/12/08/lisa05-wednesday-autopod-and-pki/Thu, 08 Dec 2005 18:23:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/08/lisa05-wednesday-autopod-and-pki/<p>While the vendor exhibition opened and inquiries were handled at the Sun booth, I went to the technical session on Configuration Managment Theory and to <a href="http://research.sun.com/people/mybio.php?uid=28941" class="broken_link" rel="nofollow">Radia Perlman</a>‘s invited talk.</p>
<p>The most interesting talk to a kernel developer in the technical session was <a href="http://yucs.org/~spotter/" >Shaya Potter</a> presenting on the <a href="http://www.ncl.cs.columbia.edu/publications/lisa2005_fordist.pdf" class="broken_link" rel="nofollow">Autopod</a> work he and <a href="http://www.cs.columbia.edu/~nieh/" >Jason Nieh</a> have been pursuing at Columbia. It’s a nice combination of an isolated application environment with process checkpointing, with a number of nice advantages—foremost among them being migration of a running pod (application environment) between systems running different operating system versions.</p>
<p>Shaya mentioned about the port from 2.4 Linux kernel to 2.6, and the loss of simple system call interpositioning in the newer implementation. One interesting area for investigation of similar work on OpenSolaris would be to assess the suitability of the BrandZ technology for creating a checkpointable zone—the preexisting application environment on which to build. There’s a wide variety of potential kernel state to capture, but the appropriateness of the <code>brand</code> architecture may simplify aspects of a prototype.</p>
<p>If you’re interested in thinking about such things, the BrandZ community should open up on <a href="http://opensolaris.org/os/communities/" >OpenSolaris</a> soon; you can already subscribe to the <code>brandz-discuss</code> alias on the <a href="http://opensolaris.org/os/discussions/" >Discussions page</a>.</p>
<p>Despite being at Sun for a while, I’ve never heard Radia Perlman speak before, and I can now highly recommend it: she’s engaging and funny, as well as a very clear technical presenter. Radia gave an overview of the ideas and implementation issues around Public Key Infrastructure (PKI). Apparently, she and her co-authors have released a new edition of their text, <em>Network Security: Private Communication in a Public World</em> <a href="http://www.amazon.com/gp/product/0130460192/" >[Amazon]</a>, which I’ll put on my wish list.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> LISA05 BrandZ <a href="http://www.technorati.com/tag/PKI" rel="tag nofollow" class="broken_link">PKI</a> ]
</p>LISA05 Tuesday: device errors, iostat, and logginghttps://blueslugs.com/2005/12/07/lisa05-tuesday-device-errors-iostat-and-logging/Wed, 07 Dec 2005 19:44:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/07/lisa05-tuesday-device-errors-iostat-and-logging/<p>One of the questions raised at <a href="http://blogs.sun.com/roller/page/sch?entry=lisa05_tuesday" >Tuesday night’s BoF</a> was “why are some of the statistics that <code>iostat -E</code> displays result in a console message and some do not?” I was sitting in the back with a copy of <a href="http://blogs.sun.com/roller/page/kupfer?entry=on_the_road_to_nightly" >Mike Kupfer’s split ON source tree</a>, and decided to have a look. <code>iostat</code>(1M) is a <code>kstat</code> reader, with some simple processing and formatted output. The output function is <a href="http://cvs.opensolaris.org/source/xref/on/usr/src/cmd/stat/iostat/iostat.c#915" ><code>show_disk_errors()</code></a> but requires understanding how <code>iostat</code> groups the disks and statistics in its implementation; the code that acquires the device statistics is located in <code>cmd/stat/common/acquire_iodevs.c</code>. Searching for error show that the critical function is <a href="http://cvs.opensolaris.org/source/xref/on/usr/src/cmd/stat/common/acquire_iodevs.c#370" ><code>acquire_iodev_errors()</code></a>, and that two classes of kstats contribute to the error output: <code>device_error</code> and <code>iopath_error</code>.</p>
<p>The most direct way to see these statistics is to invoke <code>kstat</code>(1M) with these classes. On my laptop, the result for <code>device_error</code> is</p>
<pre>$ kstat -p -c device_error
sderr:0:sd0,err:Device Not Ready 0
sderr:0:sd0,err:Hard Errors 0
sderr:0:sd0,err:Illegal Request 1
sderr:0:sd0,err:Media Error 0
sderr:0:sd0,err:No Device 0
sderr:0:sd0,err:Predictive Failure Analysis 0
sderr:0:sd0,err:Product UJ-832D Revision
sderr:0:sd0,err:Recoverable 0
sderr:0:sd0,err:Revision 1.50
sderr:0:sd0,err:Serial No
sderr:0:sd0,err:Size 0
sderr:0:sd0,err:Soft Errors 1
sderr:0:sd0,err:Transport Errors 0
sderr:0:sd0,err:Vendor MATSHITA
sderr:0:sd0,err:class device_error
sderr:0:sd0,err:crtime 76.139658104
sderr:0:sd0,err:snaptime 1857.960128997
</pre>
<p>(The laptop has no kstats of class <code>iopath_error</code>.)</p>
<p>We then look for the creation of the named kstat for each of these strings—invocations of <code>kstat_create()</code> to identify the structure member names associated with each. And then we can look for statements that involve those member names; this leads us to the various SD_UPDATE_ERRSTATS() invocations throughout <a href="http://cvs.opensolaris.org/source/xref/on/usr/src/uts/common/io/scsi/targets/sd.c" ><code>uts/common/io/scsi/targets/sd.c</code></a>.</p>
<p>The discrepancy between updates and logging arises because the macro, <a href="http://cvs.opensolaris.org/source/search?q=&defs=&refs=SD_UPDATE_ERRSTATS&path=&hist=" ><code>SD_UPDATE_ERRSTATS()</code></a>, which bumps the counters and the function which displays the error, <a href="http://cvs.opensolaris.org/source/xref/on/usr/src/uts/common/io/scsi/targets/sd.c#17075" ><code>sd_print_sense_msg()</code></a>, are sometimes both invoked, and sometimes are not. I don’t know the details of the SCSI error categories, but the decision to make some of these errors silent and some not appears arbitrary. So, unfortunately, the only answer today to determine “why is this messaged” is to look at the code. (Perhaps an ‘sd’ expert can offer an enlightening comment.)</p>
<p>If you’re trying to anticipate and avoid potential failures, having random messages emitted arbitrarily isn’t very helpful: that’s why <a href="http://blogs.sun.com/mws" >Mike</a> and <a href="https://blueslugs.com/mediacast/p-award-fma.jpg" >the FMA team</a> developed the fault management architecture to have a framework in which errors are processed in a predictable fashion, resulting in the proper diagnosis of faults. <a href="http://blogs.sun.com/eschrock" >Eric</a> described <a href="http://blogs.sun.com/roller/page/eschrock?entry=zfs_and_fma" >one possible scenario involving disk errors, FMA, and ZFS</a> a couple of weeks ago, but there’s a smaller step that seems useful involving only <code>sd</code> and FMA: the error increments could be converted to error events, and the decision to issue a notice deferred until a series of errors is diagnosed into a fault except, I suppose, if the error can be immediately diagnosed as a critical fault. Taking this step would result in consistent reporting for all disk consumers, including less sophisticated consumers than ZFS, like older filesystems and raw disk accessors.</p>
<p>In a software engineering sense, the FMA approach, where error issuance and diagnosis are separated, is much more sound: at the initial driver software composition, the field experience with the hardware device is typically limited. Over time, the actual impact of errors on system practice becomes better known, and the diagnosis and the actions associated with it can be refined. <code>fmd</code>(1M) can handle on-the-fly module updates gracefully, and also deal with overlapping event flows so that both primitive and ZFS-specific fault handling policies can be implemented, depending on the use of a particular device.</p>
<p>Now, the community that’s discussing technical issues and directions for fault management is aptly called the <a href="http://opensolaris.org/os/community/fm/" >Fault Management</a> community; if you are interested in how this work is going to proceed, and ways to contribute, I suggest joining it.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> LISA05 <a href="http://www.technorati.com/tag/FMA" rel="tag nofollow" class="broken_link">FMA</a> <a href="http://www.technorati.com/tag/zfs" rel="tag nofollow" class="broken_link">zfs</a> iostat kstat ]
</p>LISA05 Tuesdayhttps://blueslugs.com/2005/12/07/lisa05-tuesday/Wed, 07 Dec 2005 19:07:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/07/lisa05-tuesday/<p>After the N1 Grid BoF session led by Eric Nielsen, <a href="http://blogs.sun.com/lianep" >Liane</a> took the lead on a well attended BoF about Solaris 10 and OpenSolaris. (I missed the N1 BoF, enjoying a nice conversation with <a href="http://berndhaug.net" >Bernd Haug</a>, who has been architecting solutions using Solaris in various scenarios in Austria.)</p>
<p>As with any presentation, it takes some cable jujitsu to achive laptop/projector union:</p>
<!-- getting laptop/projector harmony -->
<p><img src="https://blueslugs.com/mediacast/p-day1-laptop-harmony.jpg" alt="Laptop harmony" title=""></p>
<p>The audience was definitely interested in Zones, and <a href="http://blogs.sun.com/dp/" >Dan</a> fielded some of the more involved questions with gusto:</p>
<!-- dp making an emphatic point about zones -->
<p><img src="https://blueslugs.com/mediacast/p-day1-dp-makes-point.jpg" alt="Dan on Zones" title=""></p>
<p>A particularly passionate point about the general performance issues around patching systems with zones was raised; one audience member noted that placing one’s zones explicitly in single user mode would speed zones patching.</p>
<p>Dan and <a href="http://blogs.sun.com/setje/" >Jan</a> watch the questions come in:</p>
<!-- dp and jan look on -->
<p><img src="https://blueslugs.com/mediacast/p-day1-dp-jan-observe.jpg" alt="Dan and Jan observe" title=""></p>
<p>Jan answered some questions regarding PXE and the new boot architecture on x86/x64 systems.</p>
<p>Frank Liborio came down to explain some of the finer points of the patching and update changes and their association with the Solaris support plans:</p>
<!-- frank liborio explains coming changes to patching -->
<p><img src="https://blueslugs.com/mediacast/p-day1-frank-liborio.jpg" alt="Frank Liborio on patching" title=""></p>
<p>There were some good questions about the new pricing for software in general; the main point, I thought, was to emphasize that the components are not crippled free variants, but the same enterprise version, just with no support.</p>
<p>At the end of the BoF, people moved purposefully to the room’s front, either to ask questions of the various experts, or perhaps to snag a free Solaris DVD kit:</p>
<!-- people moving to the front to get DVD kits and ask questions -->
<p><img src="https://blueslugs.com/mediacast/p-day1-get-dvds.jpg" alt="Get those DVDs" title=""></p>
<p><a href="http://www.cse.psu.edu/~groenvel/" >John Groenveld</a> stopped to say hello as David and I were milling near the doors; it’s nice to talk with other Solaris advocates (other than the bunch I lunch with every day, I mean).</p>
<p>Today, the vendor exhibits open, so there should be some technical discussions and demos at the Sun booth, and Dan will host a BoF of Solaris futures tonight. My plan is to listen to some of the interesting looking talks, and then get to the BoF.</p>
<p class="note">
I’m getting used to the behaviour of the camera, particularly at full telephoto. Being polite, I didn’t use the flash much—and I’m doubt it would matter at 60’—so these photos vary in quality. I was fiddling with adjusting for indoors, incandescent lighting, and longer exposures at different times.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> LISA05 ]
</p>Recovering from a failed (TiVo) upgradehttps://blueslugs.com/2005/12/04/recovering-from-a-failed-tivo-upgrade/Mon, 05 Dec 2005 06:12:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/04/recovering-from-a-failed-tivo-upgrade/<p>I ordered an additional drive for our long running Series 1 Tivo last week from one of the firms that specializes in such things. The drive “marriage” didn’t go well, and the unit was stuck at the Green Screen of Death—and, since these upgrades are supposed to just work, I didn’t have a backup. Scrambling through various forums searching made it clear that finding a software image was unlikely, but also pointed to a solution: PTVupgrade’s <a href="http://www.ptvupgrade.com/products/instantcake/" class="broken_link" rel="nofollow">InstantCake</a>.</p>
<p>InstantCake is a CD-based program that, if you reconfigure a PC such that the CD-ROM boots as the primary IDE and the drive or drives for your TiVo are on the secondary IDE, will format the drives and install the necessary software to operate your TiVo. For most PCs now, this procedure is at matter of swapping cables around and waiting for a little bit. You’ll lose all your programs and settings, but it means that you can pick any pair of drives as replacements. (Remember that the Series 1 can’t use more than 137GB of its drives, so going past 160GB is pointless.) And you can restore regardless of whether you have a drive or not; you have a read-only image on stable media.</p>
<p>Highly recommended.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/TiVo" rel="tag nofollow" class="broken_link">TiVo</a> ]
</p>Conferring againhttps://blueslugs.com/2005/12/04/conferring-again/Sun, 04 Dec 2005 22:51:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/04/conferring-again/<p>It’s been a few years and a couple of kids since my last conference, but I’m happy to be packing to be ready to attend <a href="http://www.usenix.org/events/lisa05/" >LISA 2005</a>, which is happening in San Diego, CA this week. My plane lands mid-afternoon Tuesday, and I’ll be there until Friday. <a href="http://blogs.sun.com/lianep" >Liane</a>‘s giving a paper on <a href="http://opensolaris.org/os/community/smf/" ><code>smf</code>(5)</a>, and Liane and <a href="http://blogs.sun.com/dp" >Dan</a> are each hosting BoF sessions on aspects of Solaris and <a href="http://opensolaris.org/" >OpenSolaris</a>. <a href="http://dtrace.org/blogs/bmc" >Bryan</a> is coming for a technical session, and <a href="http://blogs.sun.com/jwadams/" >Jonathan</a>, <a href="http://blogs.sun.com/dep/" >Dave</a>, and David from the <code>smf</code>(5) team will be there, too. (Ask Dave and David for a demo.) Plus, there’s a booth in the Vendor Exhibition and a sponsored reception, and events I don’t know about and am probably not invited to…</p>
<p>A particular attraction for administrators: I wanted to point out that <a href="http://blogs.sun.com/bill/" >Bill Moore</a> of the <a href="http://opensolaris.org/os/community/zfs/" >ZFS</a> team will be available at the booth to demonstrate and answer your initial, subsequent, and follow-up questions about ZFS. If you’re curious about ZFS or have been working on your best volume management/file system stumpers, come interrogate Bill.</p>
<p>I’ll be at LISA with two hats on: I’m still trying to think about service management and system <a href="http://opensolaris.org/os/community/approachability/" >approachability</a> (and administrators see a lot of common and worst cases for each of these efforts), but I’ll also be there to hear about issues and concerns you might have about OpenSolaris. The schedule for the conference is busy, but I’d be happy to meet up with folks during the day, as well as at either BoF session; do feel free to send me email. If you’re looking for me physically, I’ll be the one wearing the tie.</p>
<p class="note">
UPS willing, I’ll also be trying out a new camera—I hope to get some photos up during the week.
</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> <a href="http://www.technorati.com/tag/zfs" rel="tag nofollow" class="broken_link">zfs</a> LISA05 ]
</p>Fairbanks weather payoffhttps://blueslugs.com/2005/12/01/fairbanks-weather-payoff/Fri, 02 Dec 2005 06:24:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/01/fairbanks-weather-payoff/<p>By the way, Dina went to Fairbanks a few weeks ago, enjoyed the chilly contrast with Bay Area weather, and had a productive and fun visit. And, to keep karmic scales in balance, I caught a nasty cold for reminding her of the low low temperatures she could expect.</p>Falco columbarius in pole positionhttps://blueslugs.com/2005/12/01/falco-columbarius-in-pole-position/Fri, 02 Dec 2005 06:14:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/12/01/falco-columbarius-in-pole-position/<p>Nathaniel has keen vision; we often see mourning doves on the power and telephone lines that pass by the front of our house and he is happy to point them out. And occasionally, a raucous crow will perch in one of the nearby trees or atop a pole shouldering the local lines. But a couple of weekends ago, he was quite insistent about the novelty of the bird upon the pole’s top:</p>
<p><img src="https://blueslugs.com/2005/12/01/pmerlin.png" alt="Merlin upon pole"></p>
<p>A good catch: this was the first Merlin I had seen in any of the neighbourhoods we’ve lived in. (I once watched a red-tailed hawk eat a dead pigeon on a corner ledge of MPK17 a few years back, while I waited for a printout one Saturday.)</p>
<p>The little raptor was good enough to stay in place long enough for us to take pictures from a couple of points with a couple of cameras. The above, the best of the lot, was taken with our camcorder (Canon Optura 200) in photo mode—the 10 × optical zoom was essential, and it’s still not a great shot.</p>Audacity for Solaris 10 x86https://blueslugs.com/2005/11/17/audacity-for-solaris-10-x86/Fri, 18 Nov 2005 04:18:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/11/17/audacity-for-solaris-10-x86/<p>So both Dan Price and Ben Rockwood have asked <a href="http://blogs.sun.com/roller/page/dp?entry=a_screencasting_toolchain" >again</a> and <a href="http://blogs.sun.com/roller/page/dp?entry=ideas_for_the_solaris_challenge" >again</a> and <a href="http://www.cuddletech.com/blog/pivot/entry.php?id=367" >again</a> for <a href="http://audacity.sf.net/" >Audacity</a>, 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.</p>
<p>This build does not have input support for MP3 or Ogg. You will have to use tools like <code>sox</code> or <code>oggdec</code> to convert those formats to WAV. Outputs to those formats should work, but I’ve mostly been testing with Ogg.</p>
<p>I thought I had notes on the port, but I can’t find them. So, from memory, here’s the rough idea:</p>
<ul>
<li>Use <a href="http://blastwave.org" class="broken_link" rel="nofollow">blastwave.org</a> for pre-packaged libaries where possible.</li>
<li>Use <code>g++</code> because Audacity seems to use specific features of this C++ implementation.</li>
<li>Build your own Motif wxwidgets library using <code>g++</code>, because there isn’t a common C++ ABI on Solaris.</li>
<li>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.</li>
<li>Get the run paths right. Sorry for the implicit lameness; depending on feedback, maybe I can retrace my steps more precisely.</li>
</ul>
<h2 id="download">Download</h2>
<ul>
<li><a href="http://blueslugs.com.nyud.net:8090/~sch/audacity/SLUGaudacity.pkg.gz" class="broken_link" rel="nofollow">Audacity-1.2.3 [5.10 i86pc, 10M]</a></li>
</ul>
<p><em>Please don’t decoralize the link, or I’ll have to take the binary down.</em></p>
<h2 id="installation">Installation</h2>
<p>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 <code>pkg-get</code>.</p>
<ol>
<li>Get required libraries.
<pre># pkg-get -i libvorbis libogg libmad libid3tag gcc3corert gcc3g++rt
</pre> You may also want</li>
</ol>
<pre><code>`lame`, `sox`, and `vorbistools` for audio transcoding.
</code></pre>
<ol start="2">
<li>Download package.</li>
<li>Uncompress and install.
<pre># gunzip SLUGaudacity.pkg.gz</li>
</ol>
<h1 id="pkgadd--d-slugaudacitypkg">pkgadd -d SLUGaudacity.pkg</h1>
<p>[Interactive questions. The dependencies against the Blastwave packages will be checked.]
</pre></p>
<ol start="4">
<li>Audacity is now installed as <code>/opt/SLUGaudacity/bin/audacity</code>. You will probably want to make a symbolic link from a more usual place in your path.</li>
</ol>
<p>Have fun!</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/Audacity" rel="tag nofollow" class="broken_link">Audacity</a> <a href="http://www.technorati.com/tag/Blastwave" rel="tag nofollow" class="broken_link">Blastwave</a> ]
</p>And pack warm sockshttps://blueslugs.com/2005/11/10/and-pack-warm-socks/Fri, 11 Nov 2005 07:50:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/11/10/and-pack-warm-socks/<p>It’s a balmy 9°F (-13°C) tonight in Fairbanks, although with windchill it feels like -6°F (-21°C). Why one would be naked and outdoors to verify that measurement is beyond me.</p>Better wear a hathttps://blueslugs.com/2005/11/07/better-wear-a-hat/Tue, 08 Nov 2005 05:06:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/11/07/better-wear-a-hat/<p>The current temperature in Fairbanks, Alaska is again -6°F, or -21°C.</p>Program technical status, 7 Novemberhttps://blueslugs.com/2005/11/07/program-technical-status-7-november/Mon, 07 Nov 2005 23:24:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/11/07/program-technical-status-7-november/<p>[Repost from <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=3357&tstart=0" class="broken_link" rel="nofollow">forum thread</a>.]</p>
<p>It’s been two months since my initial status message, which is probably a bit too long. Most of the efforts I mentioned in that update have made progress, so it’s worth mentioning their current status:</p>
<ol>
<li>Elementary project hosting support.</li>
</ol>
<p>The web site development for simple project hosting is underway. At present, those enhancements are expected for delivery sometime in December. (You may have noticed that a number of issues with the site were recently fixed.) In parallel, we are attempting to eliminate some of the manual steps in community and project creation.</p>
<ol start="2">
<li>Source code management (SCM), first phase.</li>
</ol>
<p>The first phase of source code management involves adding Subversion hosting for individual projects and for the ON consolidation to publish ongoing changes in a read-only Subversion repository. Prototyping for the former has begun, but is dependent on the elementary project hosting work.</p>
<p>The first phase of source code management involves adding For ON, <a href="http://whacked.net/" >Stephen Lau</a> has been experimenting with publishing a “squelched” SCCS history; you can see the result of <a href="http://blogs.sun.com/chandan/" >Chandan</a> integrating this work in the latest release of the source browser. For instance, here’s a file with some recent revisions and also the squelched history:</p>
<p><a href="http://cvs.opensolaris.org/source/history/on/usr/src/cmd/svc/configd/configd.h" ><a href="http://cvs.opensolaris.org/source/history/on/usr/src/cmd/svc/configd/configd.h">http://cvs.opensolaris.org/source/history/on/usr/src/cmd/svc/configd/configd.h</a></a></p>
<p>This work, along with some SCCS and TeamWare insights gleaned by <a href="http://blogs.sun.com/alanbur/" >Alan Burlison</a>, is expected to be the basis of any SCM migration we pursue, as well as for the short term read-only Subversion publication.</p>
<ol start="3">
<li>Partitioned ON source tree.</li>
</ol>
<p>The partitioned ON source tree is undergoing internal code review–internal only due to the encumbered code involved. <a href="http://blogs.sun.com/kupfer/" >Mike Kupfer</a> gave much more detail in a recent blog entry</p>
<p><a href="http://blogs.sun.com/roller/page/kupfer?entry=on_the_road_to_nightly" ><a href="http://blogs.sun.com/roller/page/kupfer?entry=on_the_road_to_nightly">http://blogs.sun.com/roller/page/kupfer?entry=on_the_road_to_nightly</a></a></p>
<p>As noted in my previous update, a partitioned tree means that projects can issue public source drops of their development code, and get proper community development going.</p>
<ol start="4">
<li>ON GCC readiness.</li>
</ol>
<p>Bug fixes that eliminate GCC warnings have continued to integrate into the Nevada gate. As a result, we’re now able to finish drafting a cleanliness policy for integrations and making the tools changes to support them. This policy will be discussed in the Tools community, once the draft is complete.</p>
<p>Because we’ve been making progress on those initial items, new aspects of the program will receive more attention. The two new areas of focus are discussed below.</p>
<ol start="5">
<li>Governance development.</li>
</ol>
<p>The development of the governance for the OpenSolaris community is being led by the CAB. One effort in support of that has been creating a document articulating the engineering values that go into OpenSolaris software, as well as a process that contributors can follow that results in the production of such software. The most recent draft of the development process is available as HTML</p>
<p><a href="http://www.opensolaris.org/os/community/onnv/os_dev_process/" class="broken_link" rel="nofollow"><a href="http://www.opensolaris.org/os/community/onnv/os_dev_process/">http://www.opensolaris.org/os/community/onnv/os_dev_process/</a></a></p>
<p>or as PDF</p>
<p><a href="http://www.opensolaris.org/os/community/onnv/os_dev_process/d-devproc-alpha.pdf" class="broken_link" rel="nofollow"><a href="http://www.opensolaris.org/os/community/onnv/os_dev_process/d-devproc-alpha.pdf">http://www.opensolaris.org/os/community/onnv/os_dev_process/d-devproc-alpha.pdf</a></a></p>
<p>If you’re subscribed to cab-discuss, you know that drafts of the charter, which transfers responsibilities for OpenSolaris to the community from Sun, are being vigorously discussed in that forum. We’re attempting to keep the various stakeholders engaged so that the charter document can be completed and ratified promptly.</p>
<ol start="6">
<li>SCM, second phase.</li>
</ol>
<p>The evaluation of a distributed SCM solution will be pursued directly now. I’ll be issuing draft requirements and an initial candidate list very shortly; this discussion will take place in the Tools community, although I’ll send a notice to opensolaris-discuss.</p>
<p>In terms of source releases, I thought I should also mention that libm, the C math library, was released in binary form in the past month. Cleaning up the source code for release is in progress. And, as I mentioned in another thread, team members have reviewed the packaging tools source and are working out whether a two step release is needed there as well. The Java Desktop System consolidation successfully published their code last week; other consolidations are getting close to releasing their trees as well.</p>
<p>As always, please share your concerns; I am happy to receive them privately or on the list.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> ]
</p>Pretty cold up therehttps://blueslugs.com/2005/11/04/pretty-cold-up-there/Sat, 05 Nov 2005 05:22:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/11/04/pretty-cold-up-there/<p>The current temperature in Fairbanks, Alaska is -6°F, or -21°C.</p>Old schoolhttps://blueslugs.com/2005/11/03/old-school/Fri, 04 Nov 2005 07:09:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/11/03/old-school/<p>I’m still a bit woozy from a late night disk recovery at home which kept me up until about 4am Wednesday morning, but I thought I would point out two items in an old area of interest of mine: theoretical physics.</p>
<p>First, <a href="http://physicstoday.org" ><i>Physics Today</i></a> has devoted a special issue to Hans Bethe. Bethe’s range and impact on physics is astounding to me: his <a href="http://nobelprize.org/physics/laureates/1967/bethe-bio.html" >1967 Nobel prize</a> for determining the nuclear reactions that result in the burning of stars came after many contributions to atomic and nuclear physics, roles at both the MIT Radiation Lab and Los Alamos during the Second World War, and important calculations for statistical physics. Oh, and he performed the first theoretical calculation of the Lamb shift, which validated the idea of quantum electrodynamics. The series of articles by friends and colleagues is excellent and, if you can grab a copy, definitely worth a read. (The site doesn’t have it, on first glance.)</p>
<p>Reading the practical scenarios where Bethe connected theory to a problem at hand, and then kept going, I wonder if Bethe might have been a better role model than my graduate school choice of <a href="http://nobelprize.org/physics/laureates/1962/landau-bio.html" >Lev Landau</a>, the 1962 Nobel winner in Physics (for the theory of superfluid helium, among other contributions). Of course, Landau’s preferred working style involved reclining upon his couch, which is a fundamental contribution I still hope to emulate.</p>
<p>The other item is that an old graduate school friend of mine, <a href="http://www.physics.upenn.edu/people/m.trodden.html" >Mark Trodden</a>, is, with a group of other—I’ll say young—theoretical physicists, writing a focussed-on-science-but-still-popular blog entitled <a href="http://cosmicvariance.com" >Cosmic Variance</a>. These are smart folks and, since we all can’t be research scientists, it’s a treat to get a chance to see some distinct intellectual viewpoints. Check it out.</p>
<p>(Maybe if I end up with another involuntary late night of repairs and resyncing, I’ll have a look around and see who else from school is blogging actively. Or just melancholily ruminate on lapsing and relapsing between engineering and science (which is why, when <a href="http://blogs.sun.com/roller/page/sch?entry=smf_5_sun_com_new" >I confessed to dilettantism</a>, I was being quite honest).)</p>
<p><em>Updated 2010-09-05:</em> Fixed link to reflect Mark being at UPenn.</p>opensolaris.org: Java Desktop source release, and scfdot, toohttps://blueslugs.com/2005/10/28/opensolaris-org-java-desktop-source-release-and-scfdot-too/Sat, 29 Oct 2005 01:16:13 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/10/28/opensolaris-org-java-desktop-source-release-and-scfdot-too/<p>As <a href="http://www.gnome.org/~gman/blog/29102005" class="broken_link" rel="nofollow">Glynn just blogged about it</a>, I’d like to congratulate the JDS team (and the Desktop Community) on releasing the source to the Java Desktop System on opensolaris.org. In particular, I want to mention the <a href="http://www.opensolaris.org/os/community/desktop/communities/jds/building/" class="broken_link" rel="nofollow">build instructions</a>, which provide a very clear starting point for those interested in exploring the source and how to build it.</p>
<p>I also wanted to point out that not only is a newer graph of the <code>smf</code>(5) services available:</p>
<div>
<img src="http://www.opensolaris.org/os/community/smf/scfdot/snv_24_x86.png" title="" alt="" />
</div> but that, courtesy of
<p><a href="http://www.opensolaris.org/viewProfile.jspa?id=99" class="broken_link" rel="nofollow">David</a> and <a href="http://blogs.sun.com/dp" >Dan</a>, you can now generate your own, using <a href="http://www.opensolaris.org/os/community/smf/scfdot/" class="broken_link" rel="nofollow"><code>scfdot</code></a>. Visit the <code>smf</code>(5) community if you’re interested.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> <a href="http://www.technorati.com/tag/JDS" rel="tag nofollow" class="broken_link">JDS</a> ]
</p>Utility of a notched spoonhttps://blueslugs.com/2005/10/18/a-notched-spoon/Wed, 19 Oct 2005 07:50:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/10/18/a-notched-spoon/<p>I went to a nice dinner a couple of weeks ago, to celebrate a couple friends’ visit to the Bay Area. The <a href="http://www.ritzcarlton.com/en/Properties/SanFrancisco/Dining/TheDiningRoom/Default.htm" >restaurant</a> offered some tasting menus, so the more adventurous indulged in the six course offering, with a variety of tastes and textures. In line with current trends, flavoured foams accented between a quarter and a third of the different dishes served. It turns out some people really aren’t interested in eating foam.</p>
<p>At one point in the meal, a waiter positioned a peculiar spoon at my side, which looked something like this:</p>
<div>
<img src='http://blueslugs.com/2005/10/18/pnotchedspoon.png'
alt='A notched spoon' />
</div> Peculiar because of the pronounced notch, clearly indicated by the red arrow above. Since the next course had “lobster” as a named ingredient, I speculated that the spoon might be tuned in some way for shellfish, as the utensil engineers have never really nailed down the best toolset for eating crab, lobster, and relatives. (Clawed lobsters have been around for 140 million years or so, and the fork for over a thousand.) Perhaps the notch was for trapping an errant leg.
<p>The lobster turned out to be in the form of a purée or a bisque (but not a foam), so the bowl of the spoon was needed and the notch only useful for artful dribbling. Notched spoons were also provided for the dessert course, but no other mysterious utensils were manifested that night.</p>
<p><strong>Update.</strong> Dan’s link to the L. A. Times has broken with time, so I’ll link to <a href="http://answers.yahoo.com/question/index?qid=20081215125531AABOW0f" >a reasonable Yahoo! answer</a>. Since that may also someday fail, the answer is the term “sauce spoon”.</p>Forecast for coming late nightshttps://blueslugs.com/2005/10/17/forecast-for-coming-late-nights/Tue, 18 Oct 2005 04:57:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/10/17/forecast-for-coming-late-nights/<p>I can see late nights ahead: there’s a lot of writing to do for <a href="http://www.opensolaris.org/" class="broken_link" rel="nofollow">work</a>, and enough daytime interruptions and meetings to stop me from proceeding swiftly. Happily for those idle enough to read this blog, this new phase of sleep deprivation means the completion of assorted partial entries—and the release of the various pieces of code I’ve written/salvaged/jury-rigged over the summer. (For instance, I’ve got an unfinished book review of an overview of professional poker started over two years ago: since then, poker became hot, went mainstream, and then sold out (or maybe that was <a href="http://www.bravotv.com/Celebrity_Poker_Showdown/" class="broken_link" rel="nofollow">Bravo</a>). Better to finish, or to have a running joke about the “poker book review”?)</p>smf(5): Stepping through an rc.d conversionhttps://blueslugs.com/2005/10/10/smf5-stepping-through-an-rc-d-conversion/Mon, 10 Oct 2005 19:45:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/10/10/smf5-stepping-through-an-rc-d-conversion/<p>Over on <a href="http://mediacast.sun.com/" >mediacast.sun.com</a>, I see <a href="http://blogs.sun.com/bobn" >Bob Netherton</a> has posted a nice tutorial from Solaris Boot Camp, entitled <a href="http://mediacast.sun.com/share/bobn/SMF-migrate.pdf" >“Migrating a legacy RC service”</a>. The presentation covers the hiccoughs you might run into during your first conversion, and its step-by-step approach is very soothing.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>Arrogance and approachabilityhttps://blueslugs.com/2005/09/28/arrogance-and-approachability/Thu, 29 Sep 2005 07:30:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/28/arrogance-and-approachability/<p class="note">
Although I have been writing a lot lately—slides, draft policies and processes, and slews of email—none of it has managed to reach my blog.
</p>
<p>I’ve been a <em>Wall Street Journal</em> subscriber since graduate school—skimming the paper in the morning is a habit I’ve maintained despite the hazard of having milk-sodden cereal hurled in my face by an unconciously ignored child. Last week, Walter Mossberg, in his Personal Technology column entitled <a href="http://online.wsj.com/article/0,,SB112734575481847994,00.html?mod=Personal+Technology" >“Yahoo Email Delivers That Desktop Feel Most Users Expect” [$$]</a>, reviewed Yahoo’s forthcoming web mail implementation, which is currently in beta test. The review is positive, but at the end Mr Mossberg shares what, for him, are some key constraints on software improvements. These constraints—which I think are overly severe—are very relevant to our work in Approachability, in which we’re reexamining some of the steps required to configure and operate a Solaris system.</p>
<p>The major aspect of the Yahoo Mail Beta appears to be the use of an increased amount of “AJAX” technologies in the implementation, such that the application pushes more logic local to an advanced client (like Mozilla Firefox or any of the “big” browsers) and thus appears to be more responsive. However, the final paragraphs in the column instead concern how Google Mail differs from Mossberg’s assessment of typical mail interactions:</p>
<blockquote>
<p>…. On several key issues, Google’s engineers have decreed that familiar email practices are no longer useful, and have substituted approaches they prefer, arrogantly denying users any choice.</p>
<p>Gmail doesn’t allow folders, only color-coded labels, as an organizing technique. It forces you to view all of your email in groups of related messages called “conversations,” instead of viewing them individually as they arrive. Other email programs also allow such grouped views, but they permit users to choose. Not Gmail, where “option” is a term too rarely employed, except in reference to employee compensation.</p>
</blockquote>
<p>This language is strong (and the closing sentence of the passage veers off into an <em>ad hominem</em> cornfield, since there was surely an internal user interface discussion behind this particular choice). The underlying request I believe is being expressed here is “justify your differences from convention”. Now, technically speaking, the labelling mechanism (or “tagging”) is a legitimate categorization offering that some users find superior to the implicit single category provided by the folder mechanism. If you’ve ever wanted to file an message in two folders, you know what I mean. (It’s also pretty reasonable to say we’re living in the Golden Age of Tagging and perhaps should try to enjoy it…) And, if you use one label per mail, you’ve reproduced the folder model via convention. So, while different, there’s no doubt that this interface offers a capability that some users will prefer.</p>
<p>The second objection, to the absence of an individual message view, I can’t get excited about, but I suspect that the UI discussion about this aspect concerned the deliberate elimination of various views. That discussion might have involved consistency of presentation (frame and window counts constant) or increased responsiveness (document model-based inbox with dynamic population). Software engineering rationale, like the maintenance costs of additional features may also have entered the discussion.</p>
<p>Mr Mossberg concludes by emphasizing his concern that Google will fail to meet certain users’ needs for cultural reasons:</p>
<blockquote>
<p>I’m sure Gmail will get better and better, and will eventually adopt the new programming techniques that allow desktop-like ease of use. But I’m not sure Google’s arrogance will ever make room for user preferences on things like folders or ads, or how emails are grouped.</p>
<p>Yahoo’s new email program would blow Gmail away if it were widely released today. That’s partly due to its features, but also to its respect for user choice.</p>
</blockquote>
<p>Again, strong words.</p>
<p>In Solaris Approachability, we’re wrestling with similar issues: should we offer all envisionable configuration choices for each feature? Where’s the sweet spot between too few choices and too many? We’ve been operating with a philosophy that the system should adjust itself dynamically, eliminating former tunables (or refusing to introduce new ones) in the interest of reduced management costs. The tradeoff is potentially a tax on performance or a loss in some notion of absolute flexibility.</p>
<p>The concern I have when I read a review like Mr Mossberg’s is that he presents a critique of a software artifact without even a cursory mention of his applicable criteria, and sweeps all failures to meet those criteria to Google’s engineering approach. What are those criteria? Under what circumstances would those criteria be invalid?</p>
<p>We’re planning to make changes to Solaris: typically, we will solicit feedback on the proposal itself, as well as through the development cycle. (Feedback is much easier to solicit with the growing OpenSolaris community.) If those changes risk violating your implicit criteria, let us know; if we make questioned changes even after that notice, it’s due to our drawing different conclusions from the available data, and not the result of doctrinal arrogance.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/approachability" rel="tag nofollow" class="broken_link">approachability</a> ]
</p>Introducing JSONhttps://blueslugs.com/2005/09/28/introducing-json/Wed, 28 Sep 2005 17:53:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/28/introducing-json/<p class="link">
<a href="http://www.crockford.com/JSON/index.html" class="broken_link" rel="nofollow">Introducing JSON</a>
</p>
<p class="extended">
JavaScript Object Notation site.
</p>The Grove – SMF Description for Sun Java System Application Serverhttps://blueslugs.com/2005/09/27/the-grove-smf-description-for-sun-java-system-application-server/Tue, 27 Sep 2005 16:53:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/27/the-grove-smf-description-for-sun-java-system-application-server/<p class="link">
<a href="http://blogs.sun.com/roller/page/bounds?entry=div_style_font_size_10px" >The Grove – SMF Description for Sun Java System Application Server</a>
</p>
<p class="extended">
Jeff Bounds provides a service conversion for the Java ES App Server.
</p>Cornell Notetaking Method Custom PDF Generatorhttps://blueslugs.com/2005/09/14/cornell-notetaking-method-custom-pdf-generator/Thu, 15 Sep 2005 04:53:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/14/cornell-notetaking-method-custom-pdf-generator/<p class="link">
<a href="http://www.eleven21.com/notetaker/" >Cornell Notetaking Method Custom PDF Generator</a>
</p>
<p class="extended">
Make your own note paper.
</p>Are you preparedhttps://blueslugs.com/2005/09/13/are-you-prepared/Wed, 14 Sep 2005 06:40:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/13/are-you-prepared/<p class="link">
<a href="http://www.72hours.org/" >Are you prepared</a>
</p>
<p class="extended">
San Francisco’s emergency prep site.
</p>DTrace Troubleshootinghttps://blueslugs.com/2005/09/13/dtrace-troubleshooting/Wed, 14 Sep 2005 03:53:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/13/dtrace-troubleshooting/<p class="link">
<a href="http://users.tpg.com.au/adsln4yb/DTrace/dtracevstruss.html" class="broken_link" rel="nofollow">DTrace Troubleshooting</a>
</p>
<p class="extended">
Brendan Gregg compares DTrace with other Solaris system monitoring tools.
</p>High Hat, another Flash gamehttps://blueslugs.com/2005/09/11/high-hat-another-flash-game/Mon, 12 Sep 2005 00:06:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/11/high-hat-another-flash-game/<p>Like <a href="http://blueslugs.com/wordpress/index.php/archives/2003/11/21/irsvpi-a-flash-game/" ><i>RSVP</i></a>, the <a href="http://www.cbc.ca" >CBC</a>‘s <a href="http://www.cbc.ca/kids/games/highhat/" ><i>High Hat</i></a> is another well-executed card game implemented in Flash. What’s interesting about <em>High Hat</em> is that it looks like a good candidate for playing with a physical deck as well. Maybe a good alternative to hours of <a href="http://en.wikipedia.org/wiki/War_%28card_game%29" ><i>War</i></a> with Ben during the coming rainy winter here.</p>
<p>Recommended.</p>Pens At JOON New York – All The Best Pens In The Worldhttps://blueslugs.com/2005/09/11/pens-at-joon-new-york-all-the-best-pens-in-the-world/Sun, 11 Sep 2005 17:33:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/11/pens-at-joon-new-york-all-the-best-pens-in-the-world/<p class="link">
<a href="http://www.joon.com/" >Pens At JOON New York – All The Best Pens In The World</a>
</p>
<p class="extended">
A fountain pen retailer.
</p>Program technical status, 9 Septemberhttps://blueslugs.com/2005/09/09/program-technical-status-9-september/Fri, 09 Sep 2005 20:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/09/program-technical-status-9-september/<p>[Reposted from <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=2174&tstart=0" class="broken_link" rel="nofollow">forum thread</a>.]</p>
<p>I’ve had a few weeks to get oriented and thought I would bring folks up to date on the work we intend to pursue in the short term. My primary concern after an initial survey is creating additional infrastructure to get currently internal-to-Sun projects and conversations out in the open, on the opensolaris.org site, before the development phase of Nevada closes, and we move into a more limited Beta phase, where project work starts to focus exclusively on integration readiness.</p>
<p>That is, even though we are working to define and transition to a community development process and governance model, I don’t want the absence of the documents describing such things to be an excuse for not moving conversations outside. Accordingly, we are working on a number of items that eliminate that excuse. I’ll start with the general items, and then some specific to the ON consolidation.</p>
<ol>
<li>Elementary project hosting support.</li>
</ol>
<p>Typically, in terms of communication, projects inside Sun are very similar to projects we see in open source efforts: they have web pages, mailing lists, and download areas. (Some may also have IRC channels, Wikis, and blogs.) Much useful conversation and experimentation can take place using only these media, and so I want to get basic project hosting functionality up on opensolaris.org.</p>
<p>Projects that prefer to host elsewhere can use this facility as a pointer to their primary site, so that they appear in lists of OpenSolaris-related work.</p>
<ol start="2">
<li>Source code management, first phase.</li>
</ol>
<p>The Code Manager (“TeamWare”) distributed source code manager (SCM) has been in use at Sun for over twelve years; its predecessors were also distributed SCM solutions. It is difficult to envision how we might move the current practices of the consolidations using TeamWare to an SCM that doesn’t match up well with the features and extensions that have been in use for so long. However, TeamWare itself has deficits when we consider its use on the open Internet (and even within Sun’s wide area network).</p>
<p>In order to make progress, and in order to support new and current projects and consolidations that are not tied to TeamWare, I believe that we must offer a centralized SCM facility while the current set of open source distributed SCM solutions are evaluated against criteria based on TeamWare’s use within Sun and on suitability for use on an Internet-hosted site. Luckily, recent developments in the SCM space suggest that one or more SCMs may meet many of these criteria already. A draft set of criteria will be published shortly, after which candidate SCMs will be evaluated against them.</p>
<p>The proposed centralized SCM solution is Subversion, based on features, ease of integration, and community vigor. Information on Subversion may be found at</p>
<p><a href="http://subversion.tigris.org/" ><a href="http://subversion.tigris.org/">http://subversion.tigris.org/</a></a></p>
<p>Tools to make the source drops of TeamWare-based consolidations available via a read-only repository will also be found/refined/developed. We will publish a representation of ON via a read-only repository during this phase.</p>
<ol start="3">
<li>Partitioned ON source tree.</li>
</ol>
<p>A number of ON-based projects are ready to share their development versions, in code form, on the site. However, the current source publication process for ON is too arduous to expect individual projects to use team member time to handle their own publication. We are thus partitioning the source tree into open (“usr/src”) and encumbered (“usr/closed”) subtrees, so that projects can easily publish and independently buildable open tree containing their changes. This work is already underway.</p>
<ol start="4">
<li>ON GCC compiler readiness.</li>
</ol>
<p>Steady progress is being made to make ON builds GCC warnings free. As we are now closing in on a warnings-free build, we will be examining the current build tools to make GCC clean (or, if you prefer, alternate compilation clean) an ongoing requirement for integration, without being an undue burden on contributors. There are numerous possibilities that are opened up by a GCC build, but the primary justification for the present work is that it finds bugs prior to integration.</p>
<p>There are, of course, many other activities going on: Karyn’s list of consolidation priorities hints at what additional code is nearing openness, creation of additional website content, the already mentioned development process and governance and charter work, and the publication of ON source drops. (Plus work in community building and support, marketing efforts, …) I thought I should call out that we have added additional sponsors for ON and that John Beck has been working to close some gaps in sponsor technical coverage, so that code fixes submitted during this interim phase don’t get chilled waiting for a sponsor.</p>
<p>Feedback welcome. I’ll read it all, but I can’t promise replies to all.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> ]
</p>memcached: a distributed memory object caching systemhttps://blueslugs.com/2005/09/08/memcached-a-distributed-memory-object-caching-system/Thu, 08 Sep 2005 17:20:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/08/memcached-a-distributed-memory-object-caching-system/<p class="link">
<a href="http://www.danga.com/memcached/" >memcached: a distributed memory object caching system</a>
</p>
<p class="extended">
Use to speed up your dynamic Web applications.
</p>Mystery Bulge in Oregon Still Growinghttps://blueslugs.com/2005/09/07/mystery-bulge-in-oregon-still-growing/Thu, 08 Sep 2005 03:26:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/07/mystery-bulge-in-oregon-still-growing/<p class="link">
<a href="http://livescience.com/forcesofnature/ap_050906_sisters_bulge.html" >Mystery Bulge in Oregon Still Growing</a>
</p>
<p class="extended">
Swelling near southernmost of the Three Sisters.
</p>Reexamining OpenSolaris technical concernshttps://blueslugs.com/2005/09/06/reexamining-opensolaris-technical-concerns/Wed, 07 Sep 2005 00:23:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/06/reexamining-opensolaris-technical-concerns/<p>I’ve <a href="http://www.opensolaris.org/jive/thread.jspa?messageID=8015" class="broken_link" rel="nofollow">recently rejoined</a> the team working directly on the <a href="http://opensolaris.org" >OpenSolaris</a> effort. The past few weeks I’ve been getting caught up on where Open is with respect to a number of areas, both technical and process. During my survey, I’ve been pleased to see how good the current technical team (“I-team”, or implementation team, in local software development framework-speak) is—they’ve got a handle on the complexities of delivering the nearly 36 000 files in the ON consolidation in a partitioned, cleansed form, and are spending a good chunk of time so that the other major source trees that make up Solaris (“consolidations”) don’t have to reinvent these procedures themselves.</p>
<p>There are a number of technical topics—involving how we develop software—that I want to visit over the next few weeks in this blog, because it seems like a reasonable way to describe some of the key aspects to what we’re doing now and lay out the set of issues that need to balanced in any effort to make a principles-driven community development process. For instance, a short list of topics would include at least</p>
<ul>
<li>multiple compiler support implications,</li>
<li>“shrink to fit” architectural processes,</li>
<li>source code management requirements and options,</li>
<li>programmatic facilities at opensolaris.org (“web services versus web pages”), and</li>
<li>workflow tools and support, on and off the site. And probably some other things that are worrying me (like how to keep up with a few hundred additional email messages per day, above the few hundred I was already receiving).</li>
</ul>
<p>That said, I am happy to hear your concerns, hopes, fears, and speculations about OpenSolaris, and email is, of course, fine.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> ]
</p>Citizen Corpshttps://blueslugs.com/2005/09/02/citizen-corps/Fri, 02 Sep 2005 22:26:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/02/citizen-corps/<p class="link">
<a href="http://www.citizencorps.gov/" >Citizen Corps</a>
</p>
<p class="extended">
Another citizen-oriented effort from Homeland Security.
</p>Jakarta Slidehttps://blueslugs.com/2005/09/02/jakarta-slide/Fri, 02 Sep 2005 16:53:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/02/jakarta-slide/<p class="link">
<a href="http://jakarta.apache.org/slide/" >Jakarta Slide</a>
</p>
<p class="extended">
Apache project for a Java-based WebDAV server.
</p>darcshttps://blueslugs.com/2005/09/01/darcs/Fri, 02 Sep 2005 05:46:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/01/darcs/<p class="link">
<a href="http://www.darcs.net/" >darcs</a>
</p>
<p class="extended">
A distributed revision control system, written in Haskell.
</p>monotone: distributed version controlhttps://blueslugs.com/2005/09/01/monotone-distributed-version-control/Fri, 02 Sep 2005 05:46:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/01/monotone-distributed-version-control/<p class="link">
<a href="http://monotone.ca" >monotone: distributed version control</a>
</p>
<p class="extended">
A distributed version control system with no external dependencies.
</p>California State Parkshttps://blueslugs.com/2005/09/01/california-state-parks/Fri, 02 Sep 2005 03:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/01/california-state-parks/<p class="link">
<a href="http://www.parks.ca.gov/" >California State Parks</a>
</p>
<p class="extended">
Listings, access to reservations for California state recreation areas, reserves, and parks.
</p>Mercurial Distributed SCMhttps://blueslugs.com/2005/09/01/mercurial-distributed-scm/Fri, 02 Sep 2005 00:13:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/09/01/mercurial-distributed-scm/<p class="link">
<a href="http://www.selenic.com/mercurial/" class="broken_link" rel="nofollow">Mercurial Distributed SCM</a>
</p>
<p class="extended">
Python-based source code management, used by Xen.
</p>Advanced Building Technologieshttps://blueslugs.com/2005/08/28/advanced-building-technologies/Mon, 29 Aug 2005 07:20:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/28/advanced-building-technologies/<p class="link">
<a href="http://www.advancedbuildings.org/index.htm" >Advanced Building Technologies</a>
</p>
<p class="extended">
Varous energy/resource efficiency techniques for buildings.
</p>Rainwater Harvestinghttps://blueslugs.com/2005/08/28/rainwater-harvesting/Mon, 29 Aug 2005 04:33:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/28/rainwater-harvesting/<p class="link">
<a href="http://www.kidsfromkanata.org/~KFK/files/rainbarrels.html" class="broken_link" rel="nofollow">Rainwater Harvesting</a>
</p>
<p class="extended">
Barrel-based system; nice parallel storage plumbing example.
</p>MBA Toolbox : Hello worldhttps://blueslugs.com/2005/08/27/mba-toolbox-hello-world/Sun, 28 Aug 2005 03:33:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/27/mba-toolbox-hello-world/<p class="link">
<a href="http://www.mbatoolbox.org/" >MBA Toolbox : Hello world</a>
</p>
<p class="extended">
Some chapters from an business professor’s courses.
</p>Smatch the Source Matcherhttps://blueslugs.com/2005/08/27/smatch-the-source-matcher/Sat, 27 Aug 2005 16:26:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/27/smatch-the-source-matcher/<p class="link">
<a href="http://smatch.sourceforge.net/" >Smatch the Source Matcher</a>
</p>
<p class="extended">
Open source metacompilation, applied to Linux kernel.
</p>OpenOffice.org: Homehttps://blueslugs.com/2005/08/24/openofficeorg-home/Thu, 25 Aug 2005 06:06:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/24/openofficeorg-home/<p class="link">
<a href="http://www.openoffice.org/" >OpenOffice.org: Home</a>
</p>
<p class="extended">
Open source office suite; basis for Sun’s StarOffice
</p>Version Control with Subversionhttps://blueslugs.com/2005/08/23/version-control-with-subversion/Tue, 23 Aug 2005 20:46:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/23/version-control-with-subversion/<p class="link">
<a href="http://svnbook.red-bean.com/" >Version Control with Subversion</a>
</p>
<p class="extended">
The O’Reilly text, available online.
</p>Doug McIlroyhttps://blueslugs.com/2005/08/16/doug-mcilroy/Wed, 17 Aug 2005 06:26:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/16/doug-mcilroy/<p class="link">
<a href="http://www.cs.dartmouth.edu/~doug/" >Doug McIlroy</a>
</p>
<p class="extended">
M. Douglas McIlroy’s home page
</p>DesktopBSD 1.0-RC1 screenshotshttps://blueslugs.com/2005/08/12/desktopbsd-10-rc1-screenshots/Fri, 12 Aug 2005 18:06:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/12/desktopbsd-10-rc1-screenshots/<p class="link">
<a href="slide=1" class="broken_link" rel="nofollow">DesktopBSD 1.0-RC1 screenshots</a>
</p>
<p class="extended">
Installation and first boot configuration for Desktop BSD
</p>smf(5) Sybase conversionhttps://blueslugs.com/2005/08/12/smf5-sybase-conversion/Fri, 12 Aug 2005 18:06:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/12/smf5-sybase-conversion/<p class="link">
<a href="http://www.xs4all.nl/~slx86/scripts/sybase-smf.html" class="broken_link" rel="nofollow">smf(5) Sybase conversion</a>
</p>
<p class="extended">
Sjaak Westdijk has an smf(5) manifest and method for Sybase.
</p>The Opening of Solarishttps://blueslugs.com/2005/08/11/the-opening-of-solaris/Fri, 12 Aug 2005 04:13:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/11/the-opening-of-solaris/<p class="link">
<a href="http://www.samag.com/documents/s=9841/sam0509h/0509h.htm" class="broken_link" rel="nofollow"> The Opening of Solaris</a>
</p>
<p class="extended">
Peter Baer Galvin gives an overview of the OpenSolaris program.
</p>thttpd on Solaris 10https://blueslugs.com/2005/08/11/thttpd-on-solaris-10/Thu, 11 Aug 2005 17:06:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/11/thttpd-on-solaris-10/<p class="link">
<a href="http://www.pitt.edu/~toc1/thttpd.html" class="broken_link" rel="nofollow">thttpd on Solaris 10</a>
</p>
<p class="extended">
Todd Carson offers patches and an smf(5) conversion for thttpd.
</p>BigAdmin Feature Article: Configuring Sun Java System Identity Manager as a Service for the Solaris 10 OShttps://blueslugs.com/2005/08/10/bigadmin-feature-article-configuring-sun-java-system-identity-manager-as-a-service-for-the-solaris-10-os/Thu, 11 Aug 2005 06:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/10/bigadmin-feature-article-configuring-sun-java-system-identity-manager-as-a-service-for-the-solaris-10-os/<p class="link">
<a href="http://www.sun.com/bigadmin/features/articles/id_manager_service.html" >BigAdmin Feature Article: Configuring Sun Java System Identity Manager as a Service for the Solaris 10 OS</a>
</p>
<p class="extended">
An smf(5) conversion of a Java ES component.
</p>Concrete Abstractionshttps://blueslugs.com/2005/08/10/concrete-abstractions/Thu, 11 Aug 2005 06:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/10/concrete-abstractions/<p class="link">
<a href="http://www.gustavus.edu/+max/concrete-abstractions.html" >Concrete Abstractions</a>
</p>
<p class="extended">
“An introduction to computer science using Scheme.”
</p>smf(5): Identity Manager conversionhttps://blueslugs.com/2005/08/10/smf5-identity-manager-conversion/Wed, 10 Aug 2005 21:39:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/10/smf5-identity-manager-conversion/<p><a href="http://blogs.sun.com/sfehrman/" >Scott Fehrman</a>‘s written a detailed conversion of the Sun Java System Identity Manager to use <code>smf</code>(5). In Scott’s scenario, the Identity Manager runs inside Apache/Tomcat and uses MySQL as the backing database; Scott discusses both service and their dependencies as he constructs the manifests.</p>
<p>See <a href="http://sun.com/bigadmin/" >BigAdmin</a> for <a href="http://www.sun.com/bigadmin/features/articles/id_manager_service.html" >Scott’s article</a>.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>Caltrain Schedule for PalmOShttps://blueslugs.com/2005/08/09/caltrain-schedule-for-palmos/Tue, 09 Aug 2005 17:53:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/09/caltrain-schedule-for-palmos/<p class="link">
<a href="http://www.wrafra.net/software/Caltrain/" class="broken_link" rel="nofollow">Caltrain Schedule for PalmOS</a>
</p>
<p class="extended">
My most useful Palm application, without exceptions.
</p>Transom: A Showcase for New Public Radiohttps://blueslugs.com/2005/08/06/transom-a-showcase-for-new-public-radio/Sun, 07 Aug 2005 02:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/06/transom-a-showcase-for-new-public-radio/<p class="link">
<a href="http://www.transom.org/index.php" >Transom: A Showcase for New Public Radio</a>
</p>
<p class="extended">
Programming, instruction, and perspective.
</p>Transom Tools: Recording/Interviewing: What Microphone Do I Gethttps://blueslugs.com/2005/08/06/transom-tools-recordinginterviewing-what-microphone-do-i-get/Sat, 06 Aug 2005 17:40:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/06/transom-tools-recordinginterviewing-what-microphone-do-i-get/<p class="link">
<a href="http://www.transom.org/tools/recording_interviewing/200106.microphones.jtowne.html" class="broken_link" rel="nofollow">Transom Tools: Recording/Interviewing: What Microphone Do I Get</a>
</p>
<p class="extended">
A summary of microphones for interviewing.
</p>Yet another quiet weekhttps://blueslugs.com/2005/08/03/yet-another-quiet-week/Wed, 03 Aug 2005 19:26:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/08/03/yet-another-quiet-week/<p><a href="http://blogs.sun.com/roller/page/sch?entry=another_quiet_week" >Once again</a>, we’ve sent a delegation of engineers to Portland for OSCON. The absence of that group—<a href="http://dtrace.org/blogs/bmc/" >Bryan</a>, <a href="http://blogs.sun.com/wesolows/" >Keith</a>, and <a href="http://blogs.sun.com/lianep/" >Liane</a> are there —and of the many other folks involved with OpenSolaris, plus the usual August vacations, is leaving the halls here in Menlo Park rather quiet.</p>
<p>Of course, while I may be enjoying an audible quiet, the <a href="http://opensolaris.org/" >OpenSolaris</a> lists are hopping: the vigorous discussions on compatibility as a community value, packaging systems, new communities, as well as technical questions, are showing how much energy there is across the larger (Open)Solaris community. If only I could sleep less…</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> ]
</p>smf(5): Manifest destiny, Round Onehttps://blueslugs.com/2005/07/15/smf5-manifest-destiny-round-one/Fri, 15 Jul 2005 19:56:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/15/smf5-manifest-destiny-round-one/<p>I received polite mail this morning reminding me that I have mugs to ship. I got <a href="http://blueslugs.com/wordpress/index.php/archives/2005/07/12/tag1-delicious-style-file-tagging/" >distracted during break</a>, but we’ll be boxing up the mugs and getting them to the authors. So, for Round One, here is the set of submitted service manifests submitted to date:</p>
<table>
<tr>
<td>
<code>application/informix</code>
</td>
<pre><code><td>
Informix Dynamic database server
</td>
<td>
Prasad Jampala
</td>
<td>
USA
</td>
</code></pre>
</tr>
<tr>
<td>
<code>application/mysql</code>
</td>
<pre><code><td>
MySQL database server
</td>
<td>
Keith Lawson
</td>
<td>
Canada
</td>
</code></pre>
</tr>
<tr>
<td>
<code>application/oracle/[database]</code>
</td>
<pre><code><td>
Oracle database control
</td>
<td>
Joost Mulders
</td>
<td>
Netherlands [Sun]
</td>
</code></pre>
</tr>
<tr>
<td>
<code>application/oracle/[listener]</code>
</td>
<pre><code><td>
Oracle listener
</td>
<td>
Joost Mulders
</td>
<td>
Netherlands [Sun]
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[application]/popfile</code>
</td>
<pre><code><td>
[<a href="http://popfile.sf.net/" >POPFile</a> mail classifier]
</td>
<td>
Iouri Goussev
</td>
<td>
Canada
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[application/print]/cups</code>
</td>
<pre><code><td>
Common Unix Printing system
</td>
<td>
Boyd Adamson
</td>
<td>
Australia
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[application/print]/xprint</code>
</td>
<pre><code><td>
X Window System Print server
</td>
<td>
Peter Eriksson
</td>
<td>
Sweden
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[network/ident:pident]</code>
</td>
<pre><code><td>
pident IDENT daemon
</td></td>
<td>
Gary Mills
</td>
<td>
Canada
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[network/nntp:inn]</code>
</td>
<pre><code><td>
INN NNTP server
</td></td>
<td>
Gary Mills
</td>
<td>
Canada
</td>
</code></pre>
</tr>
<tr>
<td>
<code>network/ntp:openntp</code>
</td>
<pre><code><td>
OpenNTPD daemon
</td>
<td>
Todd Carson
</td>
<td>
USA
</td>
</code></pre>
</tr>
<tr>
<td>
<code>network/[smtp:postfix]</code>
</td>
<pre><code><td>
postfix SMTP MTA*
</td>
<td>
Ben Rockwood
</td>
<td>
USA
</td>
</code></pre>
</tr>
<tr>
<td>
<code>network/[smtp:qmail]</code>
</td>
<pre><code><td>
qmail SMTP MTA
</td>
<td>
Iouri Goussev
</td>
<td>
Canada
</td>
</code></pre>
</tr>
<tr>
<td>
<code>network/txpi:tcp]</code>
</td>
<pre><code><td>
TXPI TCP
</td>
<td>
Hans van Maaren
</td>
<td>
The Netherlands
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[network/xcom:default]</code>
</td>
<pre><code><td>
CA-XCOM data transport
</td>
<td>
Hans van Maaren
</td>
<td>
The Netherlands
</td>
</code></pre>
</tr>
</table>
<p class="note">
* Ben’s Postfix conversion is very simple, and works if postfix is in <code>root</code>‘s default path; in contrast, Peter Tribble <a href="http://www.rfcgr.mrc.ac.uk/~ptribble/Solaris/smf.html" class="broken_link" rel="nofollow">built a full stack of mail processing</a> atop Postfix in <code>smf</code>(5) a few months back. Plus they both have mugs already.
</p>
<p>We’re now in the process of assembling <a href="http://www.opensolaris.org/os/community/smf/manifests/" class="broken_link" rel="nofollow">all of the manifests</a> we know about at the OpenSolaris <a href="http://www.opensolaris.org/os/community/smf/" class="broken_link" rel="nofollow"><code>smf</code>(5) community</a>. <strong>If you sent in a manifest without a URL, it would be preferable to give us a link to it, and to give it a copyright and (OSI-approved) licence.</strong> (Send me mail if this appears confusing or is difficult.)</p>
<p>Suggestions for Round Two (beyond PostgreSQL and the other database management systems) are welcomed!</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>What I did during my summer vacation: hack hack hackhttps://blueslugs.com/2005/07/12/what-i-did-during-my-summer-vacation-hack-hack-hack/Tue, 12 Jul 2005 19:10:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/12/what-i-did-during-my-summer-vacation-hack-hack-hack/<p>The rest of the family didn’t have vacation time, beyond the Fourth of July weekend, so I got a chance to do <a href="http://blueslugs.com/wordpress/index.php/archives/2005/07/06/manufacturing-week-reading/" title="Business books">some reading</a> and to <a href="http://blueslugs.com/wordpress/index.php/archives/2005/07/12/tag1-delicious-style-file-tagging/" title="tag(1)">write some code</a>.</p>
<p>I am particularly excited to use <code>tag</code>(1) at work: my home directory is hosted on the main <code>zfs</code>(7FS) server, which means practically unlimited metadata. Tagging—I hope—will let me coalesce my <code>projects/</code>, <code>projects/old-projects</code>, and <code>play/</code> into a single <code>projects</code> directory with <code>current</code> and <code>obsolete</code> tags. I’m also toying with ideas around HTML files involving redirects as a private link collection and tagging file fragments via their offsets.</p>
<p>[ <em>T</em>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/zfs" rel="tag nofollow" class="broken_link">zfs</a> ]</p>Making secureimage.php stricthttps://blueslugs.com/2005/07/12/making-secureimagephp-strict/Tue, 12 Jul 2005 15:20:51 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/12/making-secureimagephp-strict/<p>One of the aspects that kept me up late writing <a href="http://blueslugs.com/wordpress/index.php/archives/2005/07/12/tag1-delicious-style-file-tagging/" >the <code>tag</code>(1) entry</a> was getting MathML to work. Getting <code>itex2MLL</code> to compile was easy, but correcting the various WordPress templates took longer.</p>
<p>This morning I found that the <a href="http://uberdork.supertwist.net/2005/03/13/plug-it-in-plug-it-in/" >SecureImage</a> plugin needs a very small change to make its output strict XHTML:</p>
<p>``One of the aspects that kept me up late writing <a href="http://blueslugs.com/wordpress/index.php/archives/2005/07/12/tag1-delicious-style-file-tagging/" >the <code>tag</code>(1) entry</a> was getting MathML to work. Getting <code>itex2MLL</code> to compile was easy, but correcting the various WordPress templates took longer.</p>
<p>This morning I found that the <a href="http://uberdork.supertwist.net/2005/03/13/plug-it-in-plug-it-in/" >SecureImage</a> plugin needs a very small change to make its output strict XHTML:</p>
<p>``</p>
<p>And now the permalinked page works. If you wanted to comment on <code>tag</code>(1), please try again.</p>tag(1): del.icio.us-style file tagginghttps://blueslugs.com/2005/07/12/tag1-delicious-style-file-tagging/Tue, 12 Jul 2005 09:50:15 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/12/tag1-delicious-style-file-tagging/<p>I’ve been using the social bookmarking service, <a href="http://del.icio.us" >del.icio.us</a>, 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.</p>
<h2 id="tagging">Tagging</h2>
<p>If you’ve not used <a href="http://del.icio.us" >del.icio.us</a>, Technorati’s <a href="http://technorati.com/tags" >tag system</a>, 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.</p>
<p>By <em>tagging</em>, we mean the association of one or more keywords, called <em>tags</em>, with an entity. The <em>tag set</em> is the set of tags associated with the entity, which for the purposes of this post, is always a file.</p>
<p>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 <em>query</em>. The <em>link set</em> 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.</p>
<h2 id="querying-tags">Querying tags</h2>
<p><a href="http://del.icio.us" >del.icio.us</a> 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, <code>tag</code>(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.</p>
<p>By default, the link set is constructed in <code>$HOME/tag</code>:</p>
<pre><code>$ ls ~/tag/
code/ doc/ linux/ rm/ thread/ utility/
conference/ greenline/ note/ solaris/ umem/
</code></pre>
<p>If we look in <code>~/tag/code</code>, we see</p>
<pre><code>$ ls ~/tag/code/
gumemd.pl@ pause.c@ tag.pl@ tagging/ umem/ utility/
</code></pre>
<p>symbolic links to files with that tag, and <em>directories representing additional tags</em>. This directory hierarchy is the link set: all possible queries are precalculated:</p>
<pre><code>$ ls ~/tag/code/umem/
gumemd.pl@
</code></pre>
<p>If we go to the original file, <code>tag</code>(1) will tell us the tags on the file:</p>
<pre><code>$ tag gumemd.pl
code umem
</code></pre>
<p>We can also query using the <code>tag</code> command, but it is merely walking the directory structure we constructed.</p>
<pre><code>$ tag -q code
/home/sch/old-home/gumemd.pl
/home/sch/old-home/pause.c
/home/sch/play/tag/tag.pl
</code></pre>
<p>(This operation is relatively fast, as we would expect:</p>
<pre><code>$ 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
</code></pre>
<p>Timing run performed on a 1.8 GHz Athlon64 running Solaris 10 and Perl 5.8.4.)</p>
<p>Adding tags is simple:</p>
<pre><code>$ tag -a perl gumemd.pl
$ tag gumemd.pl
code umem perl
$ ls ~/tag/perl
code/ gumemd.pl@ umem/
</code></pre>
<p>As is deleting them:</p>
<pre><code>$ tag -d perl gumemd.pl
$ ls ~/tag/perl
/home/sch/tag/perl: No such file or directory
</code></pre>
<p>So we have a design for basic tagging of files.</p>
<h2 id="tags-and-file-system-metadata-consumption">Tags and file system metadata consumption</h2>
<p>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 <em>M</em> symbolic links for the <em>n</em> distinct tags on a single file, with <em>M</em> given by</p>
<p>$$ M(n) = \sum_{r = 1}^{n} \frac{n!}{(n – r)!} $$</p>
<p>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.</p>
<h2 id="tagging-and-file-system-operations">Tagging and file system operations</h2>
<p>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 <em>tag-add</em> operations on a previously untagged file.</p>
<p>If we just use <code>mv</code>(1), and have the link set and tag set stored externally to the file, then we end up with a depressing result:</p>
<p><img src="https://blueslugs.com/2005/07/12/ptagmodelnonnoattr.png" alt="File tagging, without attributes"></p>
<p>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 <em>tagspace</em>.</p>
<p>On some Unix-like OSes, certain filesystems support <em>file attributes</em>, such as Solaris’s UFS and Linux’s <code>ext3fs</code>. 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:</p>
<p><img src="https://blueslugs.com/2005/07/12/ptagmodelnonattr.png" alt="File tagging, with attributes"></p>
<p>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.</p>
<p>It is clear that what we want to occur is simultaneous updating of the link and tag sets with each operation: we want <em>transactional</em> operations.</p>
<p><img src="https://blueslugs.com/2005/07/12/ptagmodeltrans.png" alt="Transactional file tagging"></p>
<p>One way to achieve a transactional operation is to get beneath the <code>rename</code>(2) system call, and to update both the link set and the tag set within an underlying <em>tagging file system</em>. 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.</p>
<p>We implement encapsulated operations in the prototype version by wrapping the standard Unix-like commands: <code>cp</code>(1), <code>mv</code>(1), and <code>rm</code>(1). The syntax is</p>
<pre><code>$ tag --mv srcfile dstfile
</code></pre>
<p>and similarly for the other commands.</p>
<h2 id="implementation">Implementation</h2>
<p>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.)</p>
<ul>
<li><a href="https://blueslugs.com/~sch/tag/tag-latest.pl" >tag-latest.pl</a></li>
<li><a href="https://blueslugs.com/~sch/tag/tag-0.5.pl" >tag-0.5.pl</a></li>
</ul>
<p>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 <code>ExtUtils::MakeMaker</code> or <code>Module::Installer</code>.</p>
<p>As always, I’m interested in your comments, suggestions, and references to similar work.</p>
<p>[<em>T</em>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> ]</p>Manufacturing week readinghttps://blueslugs.com/2005/07/06/manufacturing-week-reading/Wed, 06 Jul 2005 17:00:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/06/manufacturing-week-reading/<p>It’s Sun’s U.S. manufacturing shutdown, so I’m getting caught up on reading and household repairs. In addition to last week’s <a href="http://blogs.sun.com/roller/page/sch?entry=reading_at_work_lencioni_s" >work reading</a>, I read two other business/investing books:</p>
<ul>
<li>Jeffrey Zygmont’s <em><a href="http://www.amazon.com/exec/obidos/tg/detail/-/0738205923/ref=lpr_g_1/102-7032425-9686516?v=glance&s=books&n=507846" >The VC Way</a></em>, which was interesting (but didn’t live up to its subtitle). Mostly structured stories about venture capital, and its role in the startup process. Ok.</li>
<li>Jeremy J. Siegel’s <em><a href="http://www.amazon.com/exec/obidos/tg/detail/-/140008198X/qid=1120669093/sr=8-1/ref=pd_bbs_ur_1/102-7032425-9686516?v=glance&s=books&n=507846" >The Future for Investors</a></em>, which was simply an excellent book for investors. (Particularly those with a 30 – 50 year window ahead.) Recommended.</li>
</ul>
<p>Since I also installed all the new doorknobs, perhaps I’ll spend today writing some code for fun.</p>Unexpected new serverhttps://blueslugs.com/2005/07/05/unexpected-new-server/Wed, 06 Jul 2005 06:41:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/05/unexpected-new-server/<p>Now that the Shuttle system appears unsalvagable—no activity, even with
a nice fresh BIOS chip—I suppose I should record the emergency server
rebuild from a few weeks ago. On Saturday, Dina noticed she wasn’t
getting any email. We had houseguests, so I didn’t slip out to Central
Computer until Sunday, with a plan to wrap a new system around the old disks.
I ultimately ended up with</p>
<ul>
<li>Asus A8V Deluxe</li>
<li>AMD Athlon 64 3000+</li>
<li>1 GB</li>
<li>Intel PRO/1000 GT [32-bit drivers from Intel for now]</li>
<li>ATI PCI graphics card</li>
<li>2 × Western Digital 120GB drives</li>
</ul>
<p>all in a <a href="http://www.coolermaster.com" >CoolerMaster</a> <a
href=“<a href="http://www.coolermaster.com/index.php?LT=english&#038;Language_s=2&#038;url_place=product&#038;p_serial=CAC-T05&#038;other_title=0%22">http://www.coolermaster.com/index.php?LT=english&#038;Language_s=2&#038;url_place=product&#038;p_serial=CAC-T05&#038;other_title=0"</a></p>
<blockquote>
<p>Centurion 5 case</a>, and which is now running Solaris 10. The motherboard
works well, although I’m only using the IDE controllers and none of the
SATA or RAID functionality. (I also couldn’t match a driver to the
onboard Gigabit Marvell Ethernet.)</p>
</blockquote>
<p>Like any project at our place now, willing helpers materialize, tools in hand,
even for a no-tools case:
<img src="http://blueslugs.com/2005/07/05/coolerassemblyteam.JPG" alt="Putting the system together"></p>
<p>I’ve built enough systems now that we shortly were ready for action, and <a href="http://blueslugs.com/" ><code>blueslugs.com</code></a> and <a href="http://highmaintenancemom.com" class="broken_link" rel="nofollow"><code>highmaintenancemom.com</code> </a> were back:
<img src="http://blueslugs.com/2005/07/05/coolerupclose.jpg" alt="Server ready for action."></p>
<p><code>cooler</code> lives in the office closet, which it shares with the UPS which selflessly filters PG&E’s rot gut, leaving only nicely distilled power:
<img src="http://blueslugs.com/2005/07/05/coolerinplace.jpg" alt="Server in its operating location."></p>
<p>(Without the Shuttle as a new desktop, I’m deciding between building another A8V-based system in a CoolerMaster <a href="http://www.coolermaster.com/index.php?LT=english&Language_s=2&url_place=product&p_serial=CAV-T04&other_title=0" >Cavalier 4</a>, or buying an <a href="http://www.sun.com/desktop/workstation/ultra20/" >Ultra 20</a>.)</p>
<p>[<em>T</em>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a>]</p>First bike commutehttps://blueslugs.com/2005/07/02/first-bike-commute/Sat, 02 Jul 2005 18:22:14 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/02/first-bike-commute/<p>Ben and I biked to GeoKids and then I carried on to the Menlo Park campus yesterday, perhaps in honour of Canada Day. Ben was pretty happy for the first few miles, but I suspect was bored by the time we made it to downtown Menlo. (Google Maps has the distance at about 5 1/2 miles, although our route was longer—but on bike-friendlier streets.)</p>
<p>Dina took a photo of us setting forth from the driveway:</p>
<p><img src="https://blueslugs.com/2005/07/02/pfirstcommute.jpg" alt="Ben and Stephen bike to school/work."></p>
<p>(For Peninsula readers, the main roads we used were Virginia-to-Woodside-to-Alameda de las Pulgas-to-Avy-to Santa Cruz. There appear to be some neighbourhood roads that we can use to skip Woodside—California Highway 84—and make the route safer still.)</p>Reading at work: Lencioni's Death by Meetinghttps://blueslugs.com/2005/07/01/reading-at-work-lencionis-death-by-meeting/Sat, 02 Jul 2005 00:32:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/07/01/reading-at-work-lencionis-death-by-meeting/<p>One of the nice aspects of working at Sun is that the company subscribes to a number of online libraries. Usually I consult these for overviews and introductions to technologies I use rarely or need to put into context. But occassionally, I’ll read a business book.</p>
<p>This past week, I took two chunks of time out—an evening at home, and a half hour this afternoon—to read Patrick M. Lencioni’s <em>Death by Meeting : A Leadership Fable… About Solving the Most Painful Problem in Business</em>. The title is melodramatic from every possible angle, and the main argument is targeted much more to executives and general management teams, but I can see a few aspects that will help in our own technical meetings. The point about the hidden cost of “sneaker networking” as opposed to having an effective meeting hits close to home.</p>
<p class="note">
This text is in Sun’s available collection at NetLibrary.
</p>OpenSolaris BoF at JavaOnehttps://blueslugs.com/2005/06/24/opensolaris-bof-at-javaone/Fri, 24 Jun 2005 19:09:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/24/opensolaris-bof-at-javaone/<p>On Monday evening, a few of us—<a href="http://dtrace.org/blogs/bmc/" >Bryan</a>, <a href="http://blogs.sun.com/mws/" >Mike</a>, <a href="http://blogs.sun.com/ahl/" >Adam</a>, and myself (plus others, I hope)—will be hosting an OpenSolaris birds-of-a-feather session during <a href="http://java.sun.com/javaone/" >JavaOne</a>. The BoF, Java Technology on the OpenSolaris Platform”, will be from 1930 – 2020 in Golden Gate B1 at the <a href="http://www.sfmarriott.com/" >Marriott Hotel</a>.</p>
<p>With Team DTrace there, the BoF should be an additional opportunity to ask questions about some of the preliminary Java–DTrace instrumentation techniques and how that might apply to your programming problems. (Of course, you should go to <a href="http://blogs.sun.com/roller/page/ahl?entry=crazy_dtrace_java_challenge" >Adam’s session</a> for the full story first.) I’m there for a different reason. As <a href="http://blogs.sun.com/roller/page/dep?entry=is_this_on" >Dave mentioned</a>, we’re planning a set of classes to make the <code>smf</code>(5) functionality available from the Java platform. It turns out that these might be the first public Solaris-specific Java interfaces we publish, which means we’ve reached a small unexplored architectural area. To start surveying this terrain, I need to ask the community a couple of questions:</p>
<ul>
<li>What else can we do to make Java a first class systems programming language for Solaris?</li>
<li>For instance, what other classes, defaults, or conventions should we offer or modify to make Solaris-based Java development easier/more capable/more fabulous?</li>
</ul>
<p>Of course, you don’t have to go to JavaOne to make suggestions—feel free to make them here. But if you’re at the conference, please drop by and make your points in person. The BoF details once more:</p>
<pre>Java™ Technology on the OpenSolaris™ Platform
Monday 6/27
7:30-8:20pm
Golden Gate B1
Marriott Hotel
</pre>
<p>Hope to see you there.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> JavaOne2005 ]
</p>Prosumption vs. consumptionhttps://blueslugs.com/2005/06/21/prosumption-vs-consumption/Tue, 21 Jun 2005 18:33:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/21/prosumption-vs-consumption/<p>The <a href="http://dpreview.com/" >Digital Photography Review</a> just posted its review of <a href="http://consumer.usa.canon.com/ir/controller?act=ModelDetailAct&fcategoryid=144&modelid=11368" >Canon’s PowerShot S2 IS</a>, a 5 megapixel camera with 12 × zoom and image stabilization.</p>
<p>Hard to resist; I’m leery of going the full prosumer (or even professional) SLR route, and this camera has almost everything I would want.</p>Manifests so farhttps://blueslugs.com/2005/06/20/manifests-so-far/Tue, 21 Jun 2005 05:48:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/20/manifests-so-far/<p>To ward off unintentional duplication of effort, I thought I would list the service manifests submitted to date:</p>
<table>
<tr>
<td>
<code>application/mysql</code>
</td>
<pre><code><td>
MySQL database server
</td>
<td>
Keith Lawson
</td>
<td>
Canada
</td>
</code></pre>
</tr>
<tr>
<td>
<code>application/oracle/[database]</code>
</td>
<pre><code><td>
Oracle database control
</td>
<td>
Joost Mulders
</td>
<td>
Netherlands [Sun]
</td>
</code></pre>
</tr>
<tr>
<td>
<code>application/oracle/[listener]</code>
</td>
<pre><code><td>
Oracle listener
</td>
<td>
Joost Mulders
</td>
<td>
Netherlands [Sun]
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[application]/popfile</code>
</td>
<pre><code><td>
[<a href="http://popfile.sf.net" >POPFile</a> mail classifier]
</td>
<td>
Iouri Goussev
</td>
<td>
Canada
</td>
</code></pre>
</tr>
<tr>
<td>
<code>[application]/xprint</code>
</td>
<pre><code><td>
X Window System Print server
</td>
<td>
Peter Eriksson
</td>
<td>
Sweden
</td>
</code></pre>
</tr>
<tr>
<td>
<code>network/ntp:openntpd</code>
</td>
<pre><code><td>
OpenNTPD daemon
</td>
<td>
Todd Carson
</td>
<td>
USA
</td>
</code></pre>
</tr>
<tr>
<td>
<code>network/[smtp:qmail]</code>
</td>
<pre><code><td>
qmail SMTP MTA
</td>
<td>
Iouri Goussev
</td>
<td>
Canada
</td>
</code></pre>
</tr>
</table>
<p class="note">
I hadn’t heard of POPFile before, but a multiple bucket mail classifier might be the only way for me to keep up with <code>opensolaris-discuss@opensolaris.org</code>.
</p>
<p>I’ve read each of the above manifests quickly, so I’m confident we’ll be sending out mugs to each author—yes, even to you, Joost. We’ll do a detailed read, send some suggestions (like my first thoughts on service names), and publish links at the contest end. Keep the manifests coming.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> <a href="http://www.technorati.com/tag/nationalism" rel="tag nofollow" class="broken_link">nationalism</a> ]
</p>Contest progress; smf(5) discussionhttps://blueslugs.com/2005/06/15/contest-progress-smf5-discussion/Wed, 15 Jun 2005 22:20:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/15/contest-progress-smf5-discussion/<p>I’ve been happily receiving submissions of manifests for various services over the past few days. With all the traffic around <a href="http://www.opensolaris.org/" class="broken_link" rel="nofollow">other news</a>, I believe it only fair to extend the “Manifests sans frontierès” contest to Canada Day (1 July), so that we can all monitor new mailing lists, more vigorous IRC discussion, track countless tags and feeds, and generally commune, and still write some useful code.</p>
<p class="note">
<a href="http://www.cuddletech.com/blog/" >benr</a>: I have an Oracle submission in hand.
</p>
<p>One of those new forums is <code>smf-discuss@opensolaris.org</code>, where we’ll be having development discussions about <code>smf</code>(5). There’s big stuff and little stuff to do, so if you’re not certain where to start or are looking for ways to contribute, come talk with us—our learning curve is relatively gentle.</p>
<p class="note">
To subscribe, send a blank message to <code>smf-discuss-subscribe@opensolaris.org</code>.
</p>
<p class="tags">
[ <i>T</i>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a> <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>Sharing a little bandwidthhttps://blueslugs.com/2005/06/14/sharing-a-little-bandwidth/Wed, 15 Jun 2005 04:53:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/14/sharing-a-little-bandwidth/<p>I left a BitTorrent session open all day, to make a little contribution to sharing some of the code from <a href="http://www.opensolaris.org" class="broken_link" rel="nofollow">OpenSolaris</a>. 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 <a href="http://www.monkey.org/~marius/trickle/" >trickle</a> if I’m going to do that again.</p>
<p>[<em>T</em>: <a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a>]</p>libuutil and designing for debuggabilityhttps://blueslugs.com/2005/06/14/libuutil-and-designing-for-debuggability/Tue, 14 Jun 2005 17:51:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/14/libuutil-and-designing-for-debuggability/<!--
ident "@(#)libuutil 1.4 05/06/13 SMI"
vim:set filetype=html:
-->
<p>Going into Solaris 10, I knew we were planning to develop a troupe of new daemons; we ultimately ended up with <code>svc.startd</code>(1M), <code>svc.configd</code>(1M), and a new implementation of <code>inetd</code>(1M). I wanted to make sure we made some progress on daemon implementation practice, and bounced some ideas around with <a href="http://blogs.sun.com/jwadams/" title="Jonathan
Adams">the</a> <a href="http://blogs.sun.com/dep/" title="Dave
Powell">afternoon</a> <a href="http://blogs.sun.com/lianep/" title="Liane Praza">coffee</a> <a href="http://blogs.sun.com/dp/" title="Dan Price">group</a> and also with <a href="http://blogs.sun.com/mws/" title="Mike
Shapiro">Mike</a>, and probably some others—I wander around a bit.</p>
<p>We anticipated that most of the daemons would be multithreaded, and it became apparent that they would all present large, complicated images for postmortem debugging<sup><a name="footref1" href="#foot1" title="Why it
matters">1</a></sup>. To reduce the time to acquire familiarity with each of these daemons, we worked out three common requirements:</p>
<ul>
<li>include Compact C Type Format (CTF) information with each daemon,</li>
<li>use <code>libumem</code>(3LIB) for memory allocation, and</li>
<li>use standard, debuggable, MT-safe implementations of data structures.</li>
</ul>
<p>The problem was, of course, that there wasn’t a library with such data structures in Solaris at the time.<sup><a name="footref2"
href="#foot2" title="Excuses for new code">2</a>, <a name="footref3"
href="#foot3" title="Kernel has this and more and for
longer">3</a></sup>. So we began to design <code>libuutil</code>, which combines a number of established utility functions used in authoring Solaris commands with these new “good” implementations of useful data structures.</p>
<p>The library in question was named in sympathy with <code>libumem</code>(3LIB)—<code>libuutil</code> for “userland utility functions”. <code>libuutil</code> provides both a doubly linked list implementation and an AVL tree implementation. The list implementation is mostly located in <a href="http://cvs.opensolaris.org/source/xref/usr/src/lib/libuutil/common/uu_list.c" >lib/libuutil/common/uu_list.c</a>; we’ll use that to explore the debugging assistance we designed in.</p>
<p>The model used is that each program is likely to have multiple lists of common structures, and that there would be multiple such structures. This led us to create an interface that is expressed in terms of pools of list. So, for each structure, you create a <emph>list pool</emph> using <code>uu_list_pool_create()</code>. Then, for each list of that structure, you create a list in the respective pool using <code>uu_list_create()</code>.</p>
<p>That sounds complicated, but it’s for a good reason: at each call to <code>uu_list_pool_create()</code>, we register the newly created pool on a global list, headed by the “null pool”, <code>uu_null_lpool</code>:</p>
<pre>uu_list_pool_t *
uu_list_pool_create(const char <em>name, size_t objsize,
size_t nodeoffset, uu_compare_fn_t *compare_func, uint32_t flags)
{
uu_list_pool_t *pp, *next, *prev;
/</em> validate name, allocate storage, initialize members */
(void) pthread_mutex_init(&pp->ulp_lock, NULL);
pp->ulp_null_list.ul_next = &pp->ulp_null_list;
pp->ulp_null_list.ul_prev = &pp->ulp_null_list;
(void) pthread_mutex_lock(&uu_lpool_list_lock);
pp->ulp_next = next = &uu_null_lpool;
pp->ulp_prev = prev = next->ulp_prev;
next->ulp_prev = pp;
prev->ulp_next = pp;
(void) pthread_mutex_unlock(&uu_lpool_list_lock);
return (pp);
}
</pre>
<p>with similar code being used to connect each list to its pool on calls to <code>uu_list_create()</code>.</p>
<p>So now we have an address space where each list pool is linked in a list, and each list in a pool is linked to a list headed at that pool. This leads us to the second part, which is to use the encoded information in a debugger. The typical debugger for kernel work in Solaris is <code>mdb</code>(1), the modular debugger. It’s been shipping with Solaris since 5.8, and has a rich set of extensions for kernel debugging. For userland, the modules are rarer: <code>libumem</code> is probably the best known.<sup><a name="footref4"
href="#foot4" title="More on userland modules">4</a></sup></p>
<p>The source code for the <code>libuutil</code> module (or “dmod”) is located at <a href="http://cvs.opensolaris.org/source/xref/usr/src/cmd/mdb/common/modules/libuutil/libuutil.c" >cmd/mdb/common/modules/libuutil/libuutil.c</a>; the function that provides the dcmd itself, <code>uutil_listpool</code>, is just a wrapper around the walker for <code>uu_list_pool_t</code> structures. The pertinent portion is the initialization function, <code>uutil_listpool_walk_init()</code>:<sup><a name="footref5" href="foot5" title="Read more on walkers,
etc." class="broken_link" rel="nofollow">5</a></sup></p>
<pre>int
uutil_listpool_walk_init(mdb_walk_state_t *wsp)
{
uu_list_pool_t null_lpool;
uutil_listpool_walk_t *ulpw;
GElf_Sym sym;
bzero(&null_lpool, sizeof (uu_list_pool_t));
if (mdb_lookup_by_obj("libuutil.so.1", "uu_null_lpool", &sym) ==
-1) {
mdb_warn("failed to find 'uu_null_lpool'\n");
return (WALK_ERR);
}
if (mdb_vread(&null_lpool, sym.st_size, (uintptr_t)sym.st_value) ==
-1) {
mdb_warn("failed to read data from 'uu_null_lpool' address\n");
return (WALK_ERR);
}
ulpw = mdb_alloc(sizeof (uutil_listpool_walk_t), UM_SLEEP);
ulpw->ulpw_final = (uintptr_t)null_lpool.ulp_prev;
ulpw->ulpw_current = (uintptr_t)null_lpool.ulp_next;
wsp->walk_data = ulpw;
return (WALK_NEXT);
}
</pre>
<p>which safely pulls out the value of the <code>uu_null_pool</code> head element, and the relevant pieces we’ll need to walk the list.</p>
</p>
<p>This means that, for any program linked with <code>libuutil</code>, we can attach with <code>mdb</code>(1M) and display its list pools:</p>
<pre></p>
<h1>
mdb -p <code>pgrep -z global startd</code>
</h1>
<p>
Loading modules: [ svc.startd ld.so.1 libumem.so.1 libnvpair.so.1 libsysevent.so.1 libuutil.so.1 libc.so.1 ]
</p>
<blockquote>
<p>
::uu_list_pool
ADDR NAME COMPARE FLAGS
080dcf08 wait_info 00000000 D
080dce08 SUNW,libscf_datael 00000000 D
080dcd08 SUNW,libscf_iter 00000000 D
080dcc08 SUNW,libscf_transaction_entity c2b0476c D
080dc808 dict 0805749c D
080dc908 timeouts 0806ffab D
080dca08 restarter_protocol_events 00000000 D
080dcb08 restarter_instances 0806ccd7 D
080dc708 restarter_instance_queue 00000000 D
080dc608 contract_list 00000000 D
080dc508 graph_protocol_events 00000000 D
080dc408 graph_edges 00000000 D
080dc308 graph_vertices 08059844 D
</p>
<p>
</pre>
</p>
</blockquote>
<p>
and then drill down into constituent lists of interest.
</p>
<p>
Additional walkers are also provided, such that the lists and list nodes
can be visited from the command line or programmatically. As an example,
the <code>::vertex</code> dcmd from the <code>svc.startd</code> module
uses the walkers to display the various service graph nodes in a
quasi-readable format.<sup><a name="footref5" href="#foot5"
title="::vertex output">5</a></sup>
</p>
<p>
So, by providing extra structured information in the library and support
to consume that information in the debugger, we end up with a set of
data structures that, if used, leads to more debuggable programs. More
work up front for less later: welcome to <a href="http://www.opensolaris.org" class="broken_link" rel="nofollow">OpenSolaris</a>.
</p>
<h2>
Footnotes
</h2>
<p>
<a name="foot1" href="#footref1">1.</a> By <i>postmortem debugging</i>,
I’m referring to the operation of debugging a failed application after
its failure, from a core file or other memory image captured as soon
after that failure as possible. Suitability for postmortem debugging is
a standard expectation for software design in Solaris, as it reduces the
time to diagnose and fix software failures. In particular, multiple
engineers can debug a core file in parallel; this can be contrasted with
the cost of setting up a duplicate installation and trying to reproduce
the failure, let alone expecting the customer to risk further downtime
experimenting with “try this” scenarios.
</p>
<p>
<a name="foot2" href="#footref2">2.</a> Please remember that we were
making these decisions three years ago, and that this choice had to fit
the then-applicable constraints on the product.
</p>
<p>
<a name="foot3" href="#footref3">3.</a> In contrast, the kernel has had
a generic, modular hash table since 5.8/2000 (<a href="http://cvs.opensolaris.org/source/xref/usr/src/uts/common/os/modhash.c" >uts/common/os/modhash.c</a>),
a
generic AVL tree since 5.9/2002 (<a href="http://cvs.opensolaris.org/source/xref/usr/src/common/avl/avl.c" >common/avl/avl.c</a>), and a
generic list implementation early in 5.10/2005 (<a href="http://cvs.opensolaris.org/source/xref/usr/src/uts/common/os/list.c" >uts/common/os/list.c</a>). Of
course, the kernel
has used the slab allocator (<a href="http://cvs.opensolaris.org/source/xref/usr/src/uts/common/os/kmem.c" >uts/common/os/kmem.c</a>) since 5.4/1994.
</p>
<p>
<a name="foot4" href="#footref4">4.</a> A quick listing in
<code>/usr/lib/mdb/proc/</code> will display the other modules valid in the
process target: beyond <code>libumem</code> and <code>libuutil</code>,
there’s support for the linker, <code>libc</code>, name-value pairs,
system event, and the two main <code>smf</code>(5)
daemons.
</p>
<p>
<a name="foot5" href="#footref5">5.</a> As an example, here’s the output
of “<code>::vertex</code> on my current system, for those services
related to my VNC server (and the service itself):
</p>
<p>
<pre></p>
<blockquote>
<p>
::vertex ! grep vnc
0x85d3380 212 I 1 svc:/application/vncserver:sch
0x85d3320 213 s - svc:/application/vncserver
0x85d3200 214 R - svc:/application/vncserver:sch>milestone
0x85d3260 215 R - svc:/application/vncserver:sch>autofs
0x85d32c0 216 R - svc:/application/vncserver:sch>nis
</p>
<p>
</pre>
</p>
</blockquote>
<p class="tag">
[ <i>T</i>:
<a href="http://www.technorati.com/tag/OpenSolaris" rel="tag nofollow" class="broken_link">OpenSolaris</a>
<a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a>
<a href="http://www.technorati.com/tag/mdb" rel="tag nofollow" class="broken_link">mdb</a>
]
</p>Grocery changes in Redwood Cityhttps://blueslugs.com/2005/06/07/grocery-changes-in-redwood-city/Wed, 08 Jun 2005 07:05:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/07/grocery-changes-in-redwood-city/<p>When we’re not looking at the <a href="http://blueslugs.com/wordpress/index.php/archives/2005/05/04/i-dont-mind-the-red-light-by-the-ferrari-maserati-dealership/" >fast cars</a>, we notice other changes on our drive between Redwood City and Menlo Park. Based on <a href="http://www.smdailyjournal.org/article.cfm?issue=04-06-05&storyID=41560" class="broken_link" rel="nofollow">coverage in the <i>San Mateo Daily Journal</i></a>, it looks like one of the independent groceries in Redwood City closed in April—confirmed by the empty parking lot just off the intersection of Fifth and El Camino Real.</p>
<p>The closing was at least partially due to the arrival of Whole Foods a mile and a half north, although it appears that the location itself was an issue, as that intersection is an informal spot for day workers to wait for possible job pickups. But this kind of change is the flip side of <a href="http://blueslugs.com/wordpress/index.php/archives/2004/06/28/coffee-and-other-scents-in-the-air/" >new arrivals</a> to Redwood City—some independent businesses will need to make difficult adjustments.</p>Shuffling serviceshttps://blueslugs.com/2005/06/05/shuffling-services/Mon, 06 Jun 2005 03:43:55 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/05/shuffling-services/<p>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 <code>dhcpmgr</code>(1M), a graphical utility for managing Solaris’s bundled DHCP server.</p>
<p>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 <code>smf</code>(5):</p>
<pre>$ svcs '*dhcp*'
STATE STIME FMRI
online 12:54:07 svc:/network/dhcp-server:default
</pre> which is a pleasant bonus.)
<p>Next up is drawing some pictures of new cable runs in the back office, and deciding on appropriate numbers of ports.</p>
<p>[<em>T</em>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a>]</p>Bespoke services: application/vncserverhttps://blueslugs.com/2005/06/01/bespoke-services-applicationvncserver/Wed, 01 Jun 2005 20:00:57 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/06/01/bespoke-services-applicationvncserver/<!--
vim:set filetype=html:
-->
<p>In honour of the <a href="http://blogs.sun.com/roller/page/sch/20050527#smf_5_not_quite_free" >“Mugs for Manifests” contest</a>, I thought I would spin out another custom service description I wrote some months ago.</p>
<p>My setup for working from home—key during the last six months of Solaris 10—is to tunnel into Sun’s network via one implementation or another of a virtual private network (VPN). In all cases, the VPN solution runs on Solaris. Although the VPN lets your system participate more or less like a regular host, I find it’s easier to use VNC to remotely present an X11 display from my main workstation, <em>muskoka</em>. But, of course, machine running pre-production bits can fail or be rebooted or be reinstalled regularly, so I wanted the VNC server on my system to always be up: I wanted a VNC service.</p>
<p>What’s distinct about running the VNC server is that it should run as me, with my environment, and not as root with <code>init</code>(1M)’s. <code>svc.startd</code>(1M), while it can run methods according to <code>smf_method</code>(5), doesn’t populate the environment fully in the sense of <code>login</code>(1). So we will need to extract some data from the name service, which is cumbersome to perform in a shell script. We’ll write our method in Perl, which implies</p>
<p align="center">
<blockquote>
Tip 1: Methods need not be shell scripts.
</blockquote>
</p>
<p>In fact, the start method and the stop method can be totally separate commands: you could write one in Python, and one can be an executable Java .jar archive, or some even more bizarre combination.</p>
<p>The other trick is that, if VNC fails for some reason, I want to be aggressive about cleaning up its various leftover temporary files. For this purpose, I run the stop method with a different credential—the default of <code>root</code>—than the start method, which is done in our brief manifest by locating the <code><method_context></code> element on only the start method.</p>
<p align="center">
<blockquote>
Tip 2: Methods need not be run with identical method contexts. Credentials, privileges, and the like may all differ from method to method.
</blockquote>
</p>
<p>Our manifest then looks like:</p>
<pre><?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='manifest' name='export'>
<service name='application/vncserver' type='service' version='0'>
<single_instance/>
<instance name='sch' enabled='true'>
<dependency name='milestone' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/milestone/multi-user:default'/>
</dependency>
<dependency name='autofs' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/autofs:default'/>
</dependency>
<dependency name='nis' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/network/nis/client:default'/>
</dependency>
<exec_method name='stop' type='method' exec='/home/sch/bin/vncserver_method stop' timeout_seconds='60'/>
<exec_method name='start' type='method' exec='/home/sch/bin/vncserver_method start' timeout_seconds='300'>
<method_context>
<method_credential user='sch' group='staff' />
</method_context>
</exec_method>
</instance>
</service>
</service_bundle>
</pre>
<p>The dependencies above are needed if you use NFS for home directories and NIS for name services; they could be reduced for less networked setups.</p>
<p>And, for the method, we have a short Perl program. The complete list of environment variables in <code>login</code>(1) would include <code>LOGNAME</code>, <code>PATH</code>, <code>MAIL</code>, and <code>TZ</code> (timezone), and exclude my silly setting of <code>LANG</code>, but most of these will be set up by the shell that the VNC startup script (its analgue to <code>.xinitrc</code>. The various <code>print</code> calls are just to let the service log show a little activity, and could be removed.</p>
<pre></p>
<h1>
!/usr/perl5/bin/perl
</h1>
<p>
require 5.8.3;
use strict;
use warnings;
use locale;
my ($name, $passwd, $uid, $gid, $quota, $comment, $gcos, $dir, $shell,
$expire) = getpwuid "$<";
$ENV{USER} = $name;
$ENV{HOME} = $dir;
$ENV{SHELL} = $shell;
$ENV{LANG} = "en_CA"; # Just to create havoc (i.e. expose bugs).
#
</p>
<h1>
The stop method is run as root so that it can cleanup.
</h1>
<p>
#
if (defined($ARGV[0]) && $ARGV[0] eq "stop") {
</p>
<h1>
ksh and sh specific
</h1>
<p>
print "stop method\n";
system("$ENV{SHELL}", "-c", "/opt/csw/bin/vncserver -kill :1");
if (-S "/tmp/.X11-unix/X1") {
unlink("/tmp/.X11-unix/X1");
unlink("/tmp/.X1-lock");
}
exit 0;
}
#
</p>
<h1>
The start method is run with the user's identity.
</h1>
<p>
#
print "start method\n";
if (-f "/tmp/.X1-lock") {
unlink("/tmp/.X1-lock");
}
if (-S "/tmp/.X11-unix/X1") {
system("logger -p 1 application/vncserver requires " .
"/tmp/.X11-unix/X1 be removed");
exit 0;
}
</p>
<h1>
ksh and sh specific
</h1>
<p>
{ exec "$ENV{SHELL}", "-c",
"/opt/csw/bin/vncserver -pn -geometry 1600x1200 -depth 24 :1" };
system("logger -p 1 application/vncserver can't exec /opt/csw/bin/vncserver");
exit 1;
</pre>
</p>
<p>
And now we have always-on VNC service for the regular telecommuter:
</p>
<p>
<pre>
$ svcs -p vncserver
STATE STIME FMRI
online 13:01:01 svc:/application/vncserver:sch
13:01:00 100577 Xvnc
13:01:17 100625 xwrits
13:01:17 100626 ctrun
13:01:17 100632 xautolock
13:11:18 102348 xlock
$ uptime
12:00pm up 23 hr(s), 4 users, load average: 0.04, 0.07, 0.07
</pre>
</p>
<h2>
Exercises
</h2>
<ol>
<li>
Remove the hard coded display numbering (“:1”, “X1”, etc.).
</li>
<li>
Make the resolution, display depth, RGB encoding, and other standard options into
properties.
</li>
</ol>
<p class="tag">
[ <i>T</i>:
<a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a>
<a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a>
]
</p>smf(5) not-quite-free stuffhttps://blueslugs.com/2005/05/27/smf5-not-quite-free-stuff/Sat, 28 May 2005 00:02:08 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/05/27/smf5-not-quite-free-stuff/<p class="note">
I’m in the middle of some longish, and one rather preachy, blog posts. These will need editing, so to pep things up…
</p>
<p>Like one of these?</p>
<p><img src="https://blueslugs.com/mediacast/p-mugs-small.png" alt="" title=""></p>
<p>We had a bunch of custom mugs made up, to commemorate the completion of <code>smf</code>(5)’s integration into Solaris 10. If you’ve been at a customer or community presentation on S10 or <code>smf</code>(5), you might have received one: for asking a good question, for answering one from me, or for physical attendance. But these mugs—fine, solid, large capacity, high quality mugs for coffee, tea, or even pens—are heavy: too heavy for us to lug a box to all the conferences we might attend.</p>
<p>So instead we’re going to run a little contest.</p>
<p>Liane <a href="http://blogs.sun.com/roller/page/lianep/20050210" >summarized</a> our understanding of other service conversions circulating a few months ago. I’d like to get another batch done, and there’s no incentive like a ceramic container incentive, so I’m going to suggest a few categories:</p>
<ol>
<li><strong>Historical:</strong> Convert one (or more) of the unconverted services in <code>/etc/rc*.d</code> in Solaris 10.</li>
<li><strong>Free/Open:</strong> Convert a F/OSS daemon to be an <code>smf</code>(5) service.</li>
<li><strong>Commercial:</strong> Convert a commercial software package to be one or more <code>smf</code>(5) services.</li>
<li><strong>Artistic/Offbeat:</strong> Convert something unexpected into a particularly elegant service.</li>
</ol>
<p>The conditions are pretty simple: there are 36 mugs in the box, so the first round can have 36 winners. One mug for each converted service; the winning entry for a specific service will be judged by completeness (dependencies in particular), correctness (methods), utility (will anyone else use this?), and date received. I’ll give some no-prize honorable mentions in each category as well. <strong>This round will be quick: entries must be received by June 15th.</strong></p>
<p>An entry should disclose:</p>
<ul>
<li>Your name,</li>
<li>preferred email,</li>
<li>blog URL (optional),</li>
<li>mailing address,</li>
<li>description of the software (plus details if obscure) and</li>
<li>the service manifest and method(s) (if any), or</li>
<li>an accessible URL to same. Send it to</li>
</ul>
<p><strong>sch</strong> AT <strong>sun.com</strong>. I’ll assemble a few <code>smf</code>(5) keeners to help me evaluate the submissions.</p>
<p>Services on the list Liane gave are not eligible, unless you think your conversion is <em>substantially better</em> by the criteria above.</p>
<p>If your conversion wins, I’ll send you your mug via an amazing cooperative, potentially international, mechanism composed of government-granted-monopoly package delivery agencies. Winners, and their entries (or pointers) will be posted here.</p>
<p class="tag">
[ <i>T</i>: <a href="http://www.technorati.com/tag/Solaris" rel="tag nofollow" class="broken_link">Solaris</a> <a href="http://www.technorati.com/tag/smf" rel="tag nofollow" class="broken_link">smf</a> ]
</p>Busy few weekshttps://blueslugs.com/2005/05/27/busy-few-weeks/Fri, 27 May 2005 18:05:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/05/27/busy-few-weeks/<p>Nathaniel and Benjamin have been trading an ear infection back and forth for the past few weeks, and Nathaniel also looks like he caught the stomach bug that had been prowling through his class at daycare. (But Ben never developed chicken pox, so that’s one positive.)</p>
<p>I finally decided that the colds and allergies were systematic, rather than uncorrelated, and went under a part of the house to cover an open-to-ground crawlspace with 6 mil polyethelene sheeting. Air quality in the house is already better—I haven’t taken Claritin in a couple of days, and Dina mentioned her nose has been clear in the mornings. It took a little net research to figure out how to do this and, since I can write the Home Depot-based recipe, I’ll go under again and take some pictures for a longer “how to” posting.</p>
<p>I also did the second “clean out the hot tub when the baby turns one” chore. Icky: dead slugs (and live ones). It’s actually turning out to be a useful water experience for the boys, although Ben doesn’t like the bubbles and waves from the “air” mode. There’s a leak somewhere near the top—likely by one of the filter inlets—so I’m going to try a dynamic leak sealing system, but that will be another posting as well.</p>
<p>Homes are fun.</p>Pop-up papercastinghttps://blueslugs.com/2005/05/11/pop-up-papercasting/Wed, 11 May 2005 08:36:30 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/05/11/pop-up-papercasting/<p>I think <a href="http://homepage.mac.com/packetrat/plog.html" class="broken_link" rel="nofollow">papercasting</a> is amusing. A lot of my work at Sun is critical in nature, meaning I feel much of my added value comes during the review phase of various documents (whether that document is text or code). A week ago, I spent a morning working on paper while my car was being serviced; as a typical engineering interval, I thought my working notes might be of interest to someone.</p>
<p>Reading them over, I realized that the notes rely too much on my context, which papercasting wouldn’t fix. Hence, a little browser scripting and <strong>pop-up papercasting</strong> becomes a way to fill in the background on what some of the tasks mean.</p>
<div name="img_container" style="position: relative; height: 849px;">
<img src="https://blueslugs.com/mediacast/p-pcast-20050505.jpg" width="640" border="0" style="position: absolute; top: 0px; left: 0px;" title="" alt="" />
<div class="popup" id="pc_20050505_javacity" style=" position:
absolute; left:180px; top:150px; width:120px; height:35px;
onmouseover='pcast_over()' onmouseout='pcast_out()' caption='caption_20050505'>
</div>
<div class="popup" id="pc_20050505_lamy" style=" position:
absolute; left:220px; top:200px; width:290px; height:35px;
onmouseover='pcast_over()' onmouseout='pcast_out()' caption='caption_20050505'>
</div>
<div class="popup" id="pc_20050505_arc_contract" style="
position: absolute; left:175px; top:305px; width:120px;
onmouseover='pcast_over()' onmouseout='pcast_out()' caption='caption_20050505'>
</div>
<div class="popup" id="pc_20050505_manifest_hash" style="
position: absolute; left:330px; top:360px; width:210px;
onmouseover='pcast_over()' onmouseout='pcast_out()' caption='caption_20050505'>
</div>
<div class="popup" id="pc_20050505_jwadams_review_0" style="
position: absolute; left:292px; top:412px; width:212px;
onmouseover='pcast_over()' onmouseout='pcast_out()' caption='caption_20050505'>
</div>
<div class="popup" id="pc_20050505_jwadams_review_1" style="
position: absolute; left:228; top:465px; width:142px;
onmouseover='pcast_over()' onmouseout='pcast_out()' caption='caption_20050505'>
</div>
<div class="popup" id="pc_20050505_pizza_lunch" style="
position: absolute; left:440px; top:595px; width:130px;
onmouseover='pcast_over()' onmouseout='pcast_out()' caption='caption_20050505'>
</div>
</div>
<div name="caption_container" style="position: relative; width:640px; height: 120px;
background-color: #ddeedd; display: block;">
<p id="caption_20050505" style="visibility: visible; position: absolute;
top: 0px;">
<emph>Move your cursor into each target to see additional information about that term.</emph>
</p>
<p id="pc_20050505_javacity_cap" style="visibility: hidden; position: absolute;
top: 0px;">
<a href="http://javacity.com/" >JavaCity</a> is a nice coffee shop near my car dealership in Santa Clara. They have a large awning that wraps their corner of the building, so one can working pleasantly outside (with a large <i>café au lait</i>).
</p>
<p id="pc_20050505_lamy_cap" style="visibility: hidden; position: absolute; top:
0px;">
<a href="http://www.lamy.com/" >Lamy</a> makes the Safari pen, which I’ve been using for a few years now. But, like the car, my fountain pens suffered some neglect while we were constructing <code>smf</code>(5).
</p>
<p id="pc_20050505_arc_contract_cap" style="visibility: hidden; position: absolute; top: 0px;">
One of the aspects of interface stability within and on top of Solaris is that private interfaces can be used by other projects and products by following a specific process. This process is based around the construction of a document called an <emph>interface contract</emph> and is managed by the various architecture review committees (ARCs).
</p>
<p id="pc_20050505_manifest_hash_cap" style="visibility: hidden; position: absolute; top: 0px;">
<code>smf</code>(5) detects changes to manifests using a hash of various filesystem metadata; it turns out that this hash is more strict than it needs to be, which makes repository portability prohibitively expensive. The hash can be simplified, while compatibility for old hash values is preserved.
</p>
<p id="pc_20050505_jwadams_review_0_cap" style="visibility: hidden; position:
absolute; top: 0px;">
<a href="http://blogs.sun.com/jwadams/" >Jonathan</a> has been working over the past couple of years on improving <code>cstyle</code>, which checks a C source file for compliance with Sun’s C style. It’s implemented in Perl, and has some medium-complexity regular expressions, so I’m going over it carefully.
</p>
<p id="pc_20050505_jwadams_review_1_cap" style="visibility: hidden; position:
absolute; top: 0px;">
<a href="http://blogs.sun.com/jwadams/" >Jonathan</a> has been working over the past couple of years on improving <code>cstyle</code>, which checks a C source file for compliance with Sun’s C style. It’s implemented in Perl, and has some medium-complexity regular expressions, so I’m going over it carefully.
</p>
<p id="pc_20050505_pizza_lunch_cap" style="visibility: hidden; position: absolute; top: 0px;">
When I’m taking in one of the cars for service, I usually have time for lunch at Pizza Chicago, which has very good deep dish pizza.
</p>
</div>
<p class="tag">
[ <i>T</i>: papercast ]
</p>
<script src="https://blueslugs.com/mediacast/pcast.js"></script>… Or, perhaps nothttps://blueslugs.com/2005/05/10/or-perhaps-not/Tue, 10 May 2005 16:15:29 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/05/10/or-perhaps-not/<p>Well, the rash hasn’t progressed, and none of the constituent bumps have become vesicles, so Ben can’t have chicken pox. I suppose it’s just a viral rash—it already looks like it might be fully subsided by tomorrow.</p>
<p>So, another quiet day at home reading (and watching Thomas) together.</p>smf(5) in Hungarianhttps://blueslugs.com/2005/05/09/smf5-in-hungarian/Mon, 09 May 2005 18:24:28 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/05/09/smf5-in-hungarian/<p>Introducing people to <code>smf</code>(5) can’t be limited to English-speaking audiences—everybody needs to know how the system works. On <code>blogs.sun.com</code>‘s lesser-known sibling site, <a href="http://mediacast.sun.com/" ><code>mediacast.sun.com</code></a>, <a href="http://blogs.sun.com/csj/" >Cserép János</a> has posted his <a href="http://mediacast.sun.com/share/csj/SMF.pdf" >Hungarian introduction to <code>smf</code>(5)</a>.</p>
<p class="note">
In case you couldn’t guess, <i>szolgáltatások</i> means <i>service</i>.
</p>Varicellahttps://blueslugs.com/2005/05/09/varicella/Mon, 09 May 2005 17:31:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/05/09/varicella/<p>Benjamin has <a href="http://en.wikipedia.org/wiki/Chickenpox" >chicken pox</a>. The pox just started to show up this morning, so I expect we’ll be at home for most of the week.</p>I don’t mind the red light by the Ferrari Maserati dealershiphttps://blueslugs.com/2005/05/04/i-dont-mind-the-red-light-by-the-ferrari-maserati-dealership/Thu, 05 May 2005 04:18:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/05/04/i-dont-mind-the-red-light-by-the-ferrari-maserati-dealership/<p><a href="https://blueslugs.com/2005/05/04/ferrari_big.jpg" ><img src="https://blueslugs.com/2005/05/04/ferrari.jpg" alt="Ferrari Maserati dealership" /></a></p>
<p>I’ve noticed that my driving habits have changed since I found out that the ugly building on El Camino in Redwood City was going to be a Ferrari Maserati dealership. Even during the construction phase, I found myself driving in the slow lane and hoping for a long red light. It turns out that the beautiful new dealership is the <a href="http://www.autoblog.com/entry/1234000900041929" >largest in the world</a> with a waitlist for new cars. Once you own one, you can participate in <a href="http://www.ferrarichallenge.com/content.asp?content=204&series=Challenge" >Ferrari’s own racing series</a>. The next <a href="http://www.ferrarichallenge.com/calendar.asp?series=Historic" >event</a> is May 13-15, 2005 at the Las Vegas Motor Speedway, Nevada. There’s also the <a href="http://www.ferrarichallenge.com/content.asp?event=87&content=210&series=Rally&year=2005" >Rally of Wine Country</a> in August. I’d have to say that with our new Starbucks, Whole Foods, and now Ferrari Maserati dealership, Redwood City is becoming more interesting.</p>Banging on multiple headshttps://blueslugs.com/2005/04/27/banging-on-multiple-heads/Wed, 27 Apr 2005 23:06:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/27/banging-on-multiple-heads/<p>I spent a bit of time each of the past few weeks trying out different graphics cards to drive two displays—a multihead configuration. Presently, I’m using an older ATI Radeon 7000-based card to run two displays at 1600 × 1200 each. The <code>radeon</code> driver included with the X.org X server can knit these together into a single display with an effective resolution of 3200 × 1200.</p>
<p class="note">
Other folks are using nVidia drivers to get similar configurations.
</p>
<p>Once I had this setup running, I started to see familiar applications fail with a pleasant message:</p>
<pre>$ gvim
The program 'gvim' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 13 error_code 3 request_code 128 minor_code 2)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
</pre>
<p class="note">
Dave Powell helped me to use <code>xscope</code> to watch the X11 protocol requests. This, and a little code browsing allows us a diagnosis.
</p>
<p>It turns out that Xsun and Xorg use different implementations of the Xinerama extension (but with similar names). As far as I can tell, the standard behaviour changed after Sun developed support for a draft proposal. Now, a few years later, the applications know how to deal with both versions. With Xorg though, you now have a Sun system which doesn’t speak Sun’s Xinerama variant–hence our error message. <a href="http://blogs.sun.com/alanc/" >Alan</a> knows how to fix this for real but, after looking at <code>libgdk</code> startup, it’s pretty easy to work around this with a preloaded shared object.</p>
<p>All we do is pretend that our display can’t do Sun’s Xinerama. That means we need a function like</p>
<pre>$ cat > xin_shim.c
int
XineramaGetState()
{
return (0);
}
^D
</pre> We then compile it into a shared object
<pre>$ cc -o xin_shim.so -G -Kpic xin_shim.c
</pre> or we could freely compile it into a shared object
<pre>$ which gcc
/usr/sfw/bin/gcc
$ gcc -o xin_shim.so -G -fpic xin_shim.c
</pre>
<p>Then, to use your shim, you use <code>LD_PRELOAD</code> (with an absolute path)</p>
<pre>$ LD_PRELOAD=`pwd`/xin_shim.so gvim
[happy editing...]
</pre>
<p class="note">
Because <code>xin_shim.so</code> isn’t in <code>/usr/lib/secure</code>, you may see messages from <code>setuid</code> processes as the linker refuses to preload your potentially unsafe object. The message looks something like
<pre>
ld.so.1: /usr/lib/utmp_update: warning:
/home/sch/src/preloads/xin_shim.so: open failed: illegal insecure pathname
</pre>
</p>smf(5): Chairman's Awardhttps://blueslugs.com/2005/04/26/smf5-chairmans-award/Wed, 27 Apr 2005 07:21:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/26/smf5-chairmans-award/<p>The <code>smf</code>(5) project team was honoured with the Chairman’s Award for Innovation today, along with 14 other teams or individuals at Sun. I had a camera with me, and snapped a few pictures but, since the award ceremony was televised, don’t have any from that part of the day. Afterwards, we gathered in the Menlo Park campus’s amphitheater [<a href="http://terraserver.microsoft.com/image.aspx?T=4&S=8&Z=10&X=11507&Y=82980&W=2" >TerraServer</a>] <!--
TerraServer because Google's satellite AJAX mojo leads to runaway
JavaScript on Firefox (plus we're big on the USGS hereabouts).
--> for some photos. I managed to capture</p>
<p><img src="https://blueslugs.com/mediacast/p-award-smf.jpg" alt="" title=""><br>
the <code>smf</code>(5) team;<br>
<img src="https://blueslugs.com/mediacast/p-award-fma.jpg" alt="" title=""><br>
our sister team in Predictive Self-Healing, the Fault Management Architecture team; and<br>
<img src="https://blueslugs.com/mediacast/p-award-cddl.jpg" alt="" title=""><br>
the CDDL team (but after they started to move towards one end of the amphitheatre).</p>
<p>We had a short lunch afterwards, but longer conversations with the other award winners, the nominating committee members and other executives:</p>
<p><img src="https://blueslugs.com/mediacast/p-award-luncheon.jpg" alt="mws brandishes cup"></p>
<p class="note">
I borrowed our newer Canon PowerShot SD300 for the day, because it’s so much smaller than the S30. I had a little trouble with <code>gphoto2</code>, but I put the SD card directly in the slot on my Acer Ferrari running S10—which mounted directly and seamlessly.
</p>
<p><code>smf</code>(5) was the product of many people’s contributions. There are team members who could only participate for a limited period or who are no longer at Sun, and many forms of contribution from all parts of the company—the end result couldn’t have been reached without all the shared and distributed lifting. My thanks.</p>
<p class="note">
A small and quiet thanks to <a href="http://blogs.sun.com/jonathan/" >Jonathan</a> for gesturing me into the studio camera’s field of view.
</p>Neck kerchiefs (or neckerchiefs)https://blueslugs.com/2005/04/26/neck-kerchiefs-or-neckerchiefs/Tue, 26 Apr 2005 09:06:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/26/neck-kerchiefs-or-neckerchiefs/<p>So, while <a href="http://blogs.sun.com/roller/page/sch/20050405" >I wore the final symmetric/named knot at the OpenSolaris CAB dinner</a>, I haven’t stopped wearing ties to work. I’m tying a variety of knots for four-in-hand ties—Nickys and half-Windsors for the most part—plus the occasional bow-tie. As far as I can determine, it hasn’t affected my work.</p>
<p class="note">
This is, of course, my wrap-up post on neckties.
</p>Tweaked back, with an inverted portent?https://blueslugs.com/2005/04/26/tweaked-inverted-portents/Tue, 26 Apr 2005 08:02:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/26/tweaked-inverted-portents/<p>I strained my back last Thursday which showed that, while <a href="http://blogs.sun.com/roller/page/sch/20050317" >my basketball reflexes return, they do so to an older body</a>. On the drive home, I watched a grey squirrel fall out of a tree—perhaps a twenty foot drop—and kept the car still as it limped to the grassy sward nearby. My weekend was spent chasing children of suddenly superhuman speed, and realizing that I, too, am an aging squirrel.</p>Loss of T-Mobile service?https://blueslugs.com/2005/04/25/loss-of-t-mobile-service/Tue, 26 Apr 2005 04:11:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/25/loss-of-t-mobile-service/<p>As I drove to work in Menlo Park this morning, I was unable to operate my cell phone. I tried several numbers from my phone list and typed others. I turned the phone on and off and even tried to call T-Mobile. Each attempt was met with a message about the number being unregistered. It was a very strange feeling to be unable to talk on my drive and my car seemed particularly quiet. I have not been able to find information about the disruption on the T-Mobile website. Does anyone know anything about it?</p>Adrian explores libexaccthttps://blueslugs.com/2005/04/22/adrian-explores-libexacct/Fri, 22 Apr 2005 23:30:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/22/adrian-explores-libexacct/<p><a href="http://perfcap.blogspot.com/" >Adrian Cockroft</a> has been exploring the <a href="http://docs.sun.com/app/docs/doc/817-1592/" >extended accounting</a> streams available in Solaris. By blogging about his exploration, Adrian is sharing his cognitive process—highly valuable to, say, the designer looking to improve a software subsystem for developers. I was amused by the following frustration-induced comment</p>
<blockquote>
<p>The design is so abstract that it seems that reading meaningful data out of the log file is some obscure side effect of the code. You can read the data, but there is no guarantee that any specific item of data will be present. The accounting system has various options to send more or less data to the file, so it needs to be flexible, but the important thing is the meaning of the data being logged. I care about the semantic and informational content of the data source. What I get from exacct is “there are some tagged typed objects in this file”. I can’t consume the data without making assumptions about it, and the API doesn’t embody those assumptions. because some of these drawbacks were design goals: exacct is a general purpose, variable-length, grouped binary record format affording traversal in either direction through the file. I think Adrian’s criticism is valid (except that it was always meant for reading and writing data) if I read it as <strong>you haven’t written the accounting data handling layer yet</strong>.</p>
</blockquote>
<p>While I wait for some time to think about how we might do that, I’ve filed</p>
<pre>6260320 *wracct* should have some form of "for all objects" support
</pre> so we can fix at least one annoyance.High Maintenance Mom – Trying to create a site with Scoophttps://blueslugs.com/2005/04/21/high-maintenance-mom-trying-to-create-a-site-with-scoop/Thu, 21 Apr 2005 22:18:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/21/high-maintenance-mom-trying-to-create-a-site-with-scoop/<p>I’ve been working on a site for mom’s (and parents or future parents) to share information. <a href="http://www.highmaintenancemom.com" class="broken_link" rel="nofollow">High Maintenance Mom</a> is now in beta and I welcome all feedback. We, I needed Stephen’s help, created High Maintenance Mom using <a href="http://scoop.kuro5hin.org/" class="broken_link" rel="nofollow">Scoop</a> from <a href="http://www.kuro5hin.org" >kuro5hin</a>. It was more difficult to create than I anticipated (mod_perl, etc.). Stephen can write more on the difficulties of getting it running. Since then, I’ve been trying to figure out how everything works. We chose Scoop for the polls and potential for people to vote on stories. Right now it’s set up so anyone who registers can post stories. The images I’ve started to create are not visible with IE and there are lots of other issues to fix. More once I’ve figured something else out. Please let me know what you think.</p>
<p>Thanks! dina</p>Cameras on Solarishttps://blueslugs.com/2005/04/06/cameras-on-solaris/Wed, 06 Apr 2005 19:12:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/06/cameras-on-solaris/<p><a href="http://blogs.sun.com/dp" >Dan</a> <a href="http://blogs.sun.com/roller/page/dp/20041223" >noted a while ago</a> the <code>libusb</code>/<code>libgphoto2</code> stack works well on Solaris 10 (and newer Express releases, of course). I’ve been using the <code>gphoto2</code> CLI to manipulate my beaten-up Canon over USB, and then <code>gthumb</code> as my image browser/cataloguer. There are a few bugs here and there and some obvious enhancements needed, but the trajectory in this space is impessive. Since I’ve now got a “for-work-only-toy-camera”, I’ll keep experimenting with related applications on Solaris, and make any observations here.</p>
<p>You can get all of the mentioned software prebuilt for Solaris at <a hre="http://blastwave.org">Blastwave</a>. A working <code>libusb</code> is available in <code>/usr/sfw/lib</code>.</p>
<p class="note">
<strong>Tie knot:</strong> Knot 7 (Half-Windsor) [reprise].
</p>Dinner with the boardhttps://blueslugs.com/2005/04/05/dinner-with-the-board/Tue, 05 Apr 2005 22:03:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/05/dinner-with-the-board/<p>I was lucky enough to be invited to the OpenSolaris community advisory board dinner last night in San Francisco. The very gracious Al Hopper and the versatile Casper Dik represented the newly formed board at our table, which enjoyed a witty and wide-ranging conversation (at least as I remember it). I also managed to meet physically Rich Teer, who I had only exchanged email with previously.</p>
<p>Since I’ve been handed down the old family digicam—a Canon PowerShot S30 with a broken LCD—and am now carrying it around for snaps, I took a few shots of the event:</p>
<p><img src="https://blueslugs.com/mediacast/p-cab-dinner-2005-1.png" alt="" title=""></p>
<p> <!-- Ick. --></p>
<p><img src="https://blueslugs.com/mediacast/p-cab-dinner-2005-2.png" alt="" title=""></p>
<p>In honour of the occasion, I wore <a href="http://blogs.sun.com/roller/page/sch/20050404" >the largest and last symmetric tie knot</a> in <a href="http://blogs.sun.com/roller/page/sch/20050315" >Fink and Mao</a>, and a new spread collar shirt that could contain it.</p>
<p class="note">
<strong>Tie knot:</strong> Bow.
</p>For the record, 10https://blueslugs.com/2005/04/04/for-the-record-10/Mon, 04 Apr 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/04/04/for-the-record-10/<p class="note">
<strong>Tie knot:</strong> Knot 78 (Balthus).
</p>For the record, 9https://blueslugs.com/2005/03/31/for-the-record-9/Thu, 31 Mar 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/31/for-the-record-9/<p class="note">
<strong>Tie knot:</strong> Bow.
</p>Ballistics between sessionshttps://blueslugs.com/2005/03/30/ballistics-between-sessions/Thu, 31 Mar 2005 07:20:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/30/ballistics-between-sessions/<p>Dropped in to a series of technical sessions being held in the Santa Clara Auditorium today. There was a longish lunch period and <a href="http://blogs.sun.com/ahl/" >Adam</a>, <a href="http://blogs.sun.com/eschrock/" >Eric</a>, and <a href="http://blogs.sun.com/andrei/" >Andrei</a> passed the time launching water bottle lids between ever higher goal posts. Here’s a cameraphone shot from an early phase</p>
<p><img src="https://blueslugs.com/mediacast/03-30-05_1214.jpg" alt="" title=""></p>
<p>although the posts ended up a little over a foot high, once an additional steel water flask was repurposed from a nearby table.</p>
<p class="note">
<strong>Tie knot:</strong> Bow (with a bow tie).
</p>Bespoke services: application/catmanhttps://blueslugs.com/2005/03/29/bespoke-services-applicationcatman/Tue, 29 Mar 2005 21:31:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/29/bespoke-services-applicationcatman/<p>For various reasons—some reasonable, some suspect—Solaris doesn’t ship with a compiled set of <code>windex</code> databases for its manual pages. The unfortunate result is that helpful commands like <code>apropos</code>(1) or <code>man -k</code> are unhelpful:</p>
<pre><code>$ apropos sort
/usr/man/windex: No such file or directory
</code></pre>
<p><code>smf</code>(5) provides one way to address this shortcoming, via a transient service to be run during startup. Our service description would be roughly equivalent to the following:</p>
<pre><code><?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type='manifest' name='sch:catman'>
<service
name='application/catman'
type='service'
version='1'>
<create_default_instance enabled='false' />
<single_instance />
<!--
By default, application/catman will run in the background
during boot. If you want to run it periodically, execute</p>
/usr/sbin/svcadm restart catman
If you wish to augment the default MANPATH, use the setenv
subcommand to svccfg(1M). For instance, to add the Java
manual pages to the build:
/usr/sbin/svccfg -s application/catman
> setenv MANPATH /usr/share/man:/usr/java/man
> exit
/usr/sbin/svcadm refresh catman
If MANPATH is not defined, the default manual path is
/usr/share/man, as per catman(1M).
-->
<dependency
name='local-filesystems'
type='service'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/system/filesystem/local' />
</dependency>
<dependency
name='remote-filesystems'
type='service'
grouping='optional_all'
restart_on='none'>
<service_fmri value='svc:/network/nfs/client' />
<service_fmri value='svc:/system/filesystem/autofs' />
</dependency>
<exec_method
type='method'
name='start'
exec='/usr/bin/catman -w'
timeout_seconds='0' />
<exec_method
type='method'
name='stop'
exec=':true'
timeout_seconds='0' />
<property_group name='startd' type='framework'>
<propval name='duration' type='astring' value='transient' />
</property_group>
<stability value='Unstable' />
<template>
<common_name>
<loctext xml:lang='C'>
manual page index generation
</loctext>
</common_name>
<documentation>
<manpage
title='catman'
section='1M'
manpath='/usr/share/man' />
</documentation>
</template>
</service>
</service_bundle>
</code></pre>
<p>Following my own instructions in the comment block, I defined a value for <code>MANPATH</code> and refreshed the service.
My setting can be double-checked with <code>svcprop</code>(1) like so:</p>
<pre>
$ svcprop -p start application/catman
start/exec astring /usr/bin/catman\ -w
start/timeout_seconds count 0
start/type astring method
start/environment astring MANPATH=/usr/share/man:/usr/openwin/man:/usr/sfw/man:/usr/dt/man:/usr/perl5/man:/usr/java/man:/usr/apache/man:/usr/X11/man:/opt/sfw/man:/opt/csw/man
</pre>
</p>
<p>
Issuing “<code>svcadm enable catman</code>” will cause the service to be executed immediately, and upon each subsequent boot. Our earlier query
becomes fecund:
<pre>
$ apropos sort
FcFontSort FcFontSort (3fontconfig) - Return list of matching fonts
aclsort aclsort (3sec) - sort an ACL
alphasort scandir (3c) - scan a directory
alphasort scandir (3ucb) - scan a directory
bsearch bsearch (3c) - binary search a sorted table
bunzip2 bzip2 (1) - a block-sorting file compressor and associated utilities
bzcat bzip2 (1) - a block-sorting file compressor and associated utilities
bzip2 bzip2 (1) - a block-sorting file compressor and associated utilities
bzip2recover bzip2 (1) - a block-sorting file compressor and associated utilities
disksort disksort (9f) - single direction elevator seek sort for buffers
ldap_sort ldap_sort (3ldap) - LDAP entry sorting functions
ldap_sort_entries ldap_sort (3ldap) - LDAP entry sorting functions
ldap_sort_strcasecmp ldap_sort (3ldap) - LDAP entry sorting functions
ldap_sort_values ldap_sort (3ldap) - LDAP entry sorting functions
libbz2 libbz2 (3) - library for block-sorting data compression
look look (1) - find words in the system dictionary or lines in a sorted list
qsort qsort (3c) - quick sort
sort sort (1) - sort, merge, or sequence check text files
sortbib sortbib (1) - sort a bibliographic database
tsort tsort (1) - topological sort
...
</pre>
</p>
<p><strong>Exercises</strong></p>
<ol>
<li>Add a configuration property that makes the service also rebuild the nroffed versions of the manual pages, if set to true.
<li> Make the service regenerate only in the case that components in the path have changed.
</ol>
<p>p class=“note”> <strong>Tie knot:</strong> Knot 54 (Hanover). </p></p>From Orthography To Pedagogyhttps://blueslugs.com/2005/03/28/from-orthography-to-pedagogy/Tue, 29 Mar 2005 01:07:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/28/from-orthography-to-pedagogy/<p>The book from my father’s Festschrift, <a href="https://www.erlbaum.com/shop/tek9.asp?pg=products&specific=0-8058-5089-9" class="broken_link" rel="nofollow"><i>From Orthography to Pedagogy, Essays in honor of Richard L. Venezky</i></a> has been published and the essays are wonderful. Prepaid copies can be ordered from the above link for $39.95.</p>For the record, 8https://blueslugs.com/2005/03/28/for-the-record-8/Mon, 28 Mar 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/28/for-the-record-8/<p class="note">
<strong>Tie knot:</strong> No time, no knot, alas.
</p>For the record, 7https://blueslugs.com/2005/03/25/for-the-record-7/Fri, 25 Mar 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/25/for-the-record-7/<p class="note">
<strong>Tie knot:</strong> Knot 5 (Pratt or Shelby).
</p>For the record, 6https://blueslugs.com/2005/03/24/for-the-record-6/Thu, 24 Mar 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/24/for-the-record-6/<p class="note">
<strong>Tie knot:</strong> Knot 25 (Christiansen).
</p>For the record, 5https://blueslugs.com/2005/03/23/for-the-record-5/Wed, 23 Mar 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/23/for-the-record-5/<p class="note">
<strong>Tie knot:</strong> Knot 6 (Prince Albert variation).
</p>Rained outhttps://blueslugs.com/2005/03/22/rained-out/Wed, 23 Mar 2005 06:49:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/22/rained-out/<p>A rainy stretch here in Northern California is keeping me off the court while my body repairs itself. But I’ll need to go practise in the wet if I’m ever to get my jump shot back…</p>
<p class="note">
<strong>Tie knot:</strong> Knot 44 (Grantchester).
</p>For the record, 4https://blueslugs.com/2005/03/21/for-the-record-4/Tue, 22 Mar 2005 06:48:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/21/for-the-record-4/<p class="note">
<strong>Tie knot:</strong> Knot 31 (Windsor).
</p>For the record, 3https://blueslugs.com/2005/03/18/for-the-record-3/Sat, 19 Mar 2005 06:47:02 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/18/for-the-record-3/<p class="note">
<strong>Tie knot:</strong> Knot 18 (Plattsburgh).
</p>On the court againhttps://blueslugs.com/2005/03/17/on-the-court-again/Fri, 18 Mar 2005 07:18:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/17/on-the-court-again/<p>I’m a little sore and a bit bruised: I’ve started playing pick-up basketball on the outdoor court here at the Menlo Park campus. I pretty much stopped when we started (a) work on <code>smf</code>(5), and (b) parenting—three years. (Finishing my dissertation also required a break, but not nearly as long as this one.)</p>
<p>I feel slower, and my skills are very rusty. Regular practice will fix at least one of those.</p>
<p class="note">
<strong>Tie knot:</strong> Knot 23 (Cavendish).
</p>Yellowstone supervolcano and locating coordinates for image mapshttps://blueslugs.com/2005/03/17/yellowstone-supervolcano-and-locating-coordinates-for-image-maps/Thu, 17 Mar 2005 21:22:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/17/yellowstone-supervolcano-and-locating-coordinates-for-image-maps/<p>I’ve been working on the <a href="http://volcanoes.usgs.gov/yvo" >Yellowstone Volcano Observatory (YVO) website</a> 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 <a href="http://www.yoksoftware.com/products/" >YokMap</a>. An easy-to-use program that ran on my Mac. Their “most stupid solitaire game ever” was an added bonus.</p>
<p>Supervolcano, a docudrama about a mega-eruption at Yellowstone, was shown in the UK this past weekend on <a href="http://www.bbc.co.uk/sn/tvradio/programmes/supervolcano/index.shtml" >BBC</a> and will be shown here in April on the <a href="http://dsc.discovery.com/convergence/supervolcano/index.html" class="broken_link" rel="nofollow">Discovery Channel</a>.</p>String theory splithttps://blueslugs.com/2005/03/16/string-theory-split/Thu, 17 Mar 2005 06:43:52 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/16/string-theory-split/<p>A few people mentioned <a href="http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2005/03/14/MNGRMBOURE1.DTL" >an article in the San Francisco Chronicle</a> describing the current support and skepticism around string theory in the physics community to me. It’s worth a read. I would have liked to see some comments about aspects of theory—signs of the Higgs particle or supersymmetric structure—that should become testable at <a href="http://www.cern.ch" >CERN</a>‘s Large Hadron Collider in 2007. It’s worth noting that, since some of its opponents are quoted in the article, we would already be exploring this energy regime at the Superconducting Super-Collider, if it had been ready by its revised completion date of 2003. (You didn’t think this was a new argument, did you?)</p>
<p class="note">
<strong>Tie knot:</strong> Knot 12 (St Andrew).
</p>Knotty engineerhttps://blueslugs.com/2005/03/15/knotty-engineer/Tue, 15 Mar 2005 19:50:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/15/knotty-engineer/<p>As a California-residing, code-writing Sun engineer, I don’t have a lot of sartorial restrictions beyond the standard requirements for coverage. It’s been a bit of a shock, therefore, to co-workers and long time customers to catch me wearing a necktie. The most common question is “Are you interviewing?” Which, given that whole writing-code-in-California bit, isn’t very appropriate—this isn’t standard engineering costume out here.</p>
<p>I think the easiest way to understand it is as an eccentricity: I’m working my way through <a href="http://www.tcm.phy.cam.ac.uk/~tmf20/" >Fink</a> and <a href="http://www.tcm.phy.cam.ac.uk/~ym101/welcome.html" >Mao</a>‘s <em><a href="http://www.amazon.com/exec/obidos/tg/detail/-/0767906438/qid=1110916160/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/103-8161492-6827817?v=glance&s=books&n=507846" >The 85 ways to tie a tie</a></em>. They identify thirteen suitably aesthetic knots, nine of which are in some sense novelties, not being the standard three or four. Each day, I’ve been working my way through another one of the aesthetic or historically interesting knots, by tying it on and wearing it through the work day. My head hasn’t popped off yet.</p>
<p class="note">
<strong>Tie knot:</strong> Knot 7 (Half-Windsor).
</p>smf(5): manifest editing assistancehttps://blueslugs.com/2005/03/14/smf5-manifest-editing-assistance/Tue, 15 Mar 2005 02:39:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/14/smf5-manifest-editing-assistance/<p>We had a productive wrap up meeting for Solaris 10 Platinum Beta last week, with lots of good feedback on <code>smf</code>(5). One point raised is that few people like to hand-edit XML—or, maybe, many people hate to—so tools for composing service manifests are needed. We’ll need to percolate on how best to improve or extend the current set of tools, but there are a few tricks out there already.</p>
<p><strong>A bad manifest.</strong> Let’s take a well-formed and valid manifest file and add the nonsensical line</p>
<pre><french_fry>I,m a bad element.</french_fries>
</pre> to simulate a developer making a composition error during service development. How do we determine that our manifest is now broken?
<p><strong><code>svccfg</code>(1M) validation.</strong> As I mentioned, the basic tools aren’t helpful. The logical <code>svccfg</code>(1M) subcommand to check a manifest for correctness is <code>validate</code>. Its output on our manifest is</p>
<pre>$ svccfg validate /tmp/gdm2-login.xml
svccfg: couldn't parse document
</pre> which accurately tells us the manifest is broken but does not indicate how (at all).
<p><strong><code>xmllint</code>(1).</strong> The XML parser implementation of <code>svccfg</code>(1M) is the <a href="http://www.gnome.org" >GNOME</a> <a href="http://xmlsoft.org" ><code>libxml2</code></a>, which includes a general validation tool in the form of <code>xmllint</code>(1). If we invoke this command with its <code>--valid</code> long option, we get</p>
<pre>$ xmllint --valid /tmp/gdm2-login.xml
/tmp/gdm2-login.xml:26: parser error : Opening and ending tag mismatch: french_fry line 26 and french_fries
<french_fry>I,m a bad element.</french_fries>
^
</pre> which isn’t validating the document, but is telling us where and how it is not well-formed.
<p><strong>Graphically clear.</strong> An interesting option is to use the <a href="http://www.jedit.org" >jEdit</a> editor, with its XML plugin. With our document, the XML plugin will validate on save and highlight the incorrect line with red underlining:</p>
<p><img src="https://blueslugs.com/roller/resources/sch/p-jedit-main.png" alt="jEdit main window"></p>
<p>Moreover, the error window shows both the non-well-formedness and the invalid <code><french_fry></code> element (which is absent from the non-fast food-oriented service bundle DTD).</p>
<p><img src="https://blueslugs.com/roller/resources/sch/p-jedit-errors.png" alt="jEdit error window"></p>
<p>So we see both the immediate and the deeper error, plus the plugin highlights matching tags and provides completion menus for tag selection. Civilization to most, I expect.</p>
<p>I happily use <code>vim</code> for development, but it’s important to note the value in jEdit just from using a different XML implementation. Using other tools to ease your composition of service descriptions (or profiles)? Let us know—and, rest assured, we’re working to make that <code>svccfg</code>(1M) output more useful.</p>
<p class="note">
<strong>Tie knot:</strong> Knot 6 (Victoria).
</p>Uneven handedness soughthttps://blueslugs.com/2005/03/11/uneven-handedness/Fri, 11 Mar 2005 22:20:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/11/uneven-handedness/<p>Sadly, I suspect <a href="http://www.nytimes.com/2005/03/11/opinion/11fri1.html" >this New York Times editorial</a> regarding these judicial nominees’ outrageous accomplishments—numerous reversals and practising without a licence—is accurate. I can’t imagine equivalent failures in the other licensed professions not being career-ending… Not a good indicator for subscribers to the school of operational competence.</p>For the record, 2https://blueslugs.com/2005/03/11/for-the-record-2/Fri, 11 Mar 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/11/for-the-record-2/<p class="note">
<strong>Tie knot:</strong> Knot 3 (Kelvin).
</p>For the record, 1https://blueslugs.com/2005/03/10/for-the-record-1/Thu, 10 Mar 2005 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/03/10/for-the-record-1/<p class="note">
<strong>Tie knot:</strong> Knot 4 (Nicky).
</p>Happy Valentine's Dayhttps://blueslugs.com/2005/02/14/happy-valentines-day/Tue, 15 Feb 2005 05:59:46 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/02/14/happy-valentines-day/<p><img src="http://blueslugs.com/wordpress/wp-content/yaydina.jpg" alt="candy heart that says Yay Dina.">I was excited to find the <a href="http://www.acme.com/heartmaker/" >ACME heart maker</a> and made myself a heart. This is my first post using WordPress. I thought Moveable Type was easier for picture uploads (when I uploaded the heart, WordPress gave me the wrong location) but I don’t miss the spam.</p>smf(5) design admissionshttps://blueslugs.com/2005/01/26/smf5-design-admissions/Wed, 26 Jan 2005 22:08:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/01/26/smf5-design-admissions/<p>In <a href="http://groups-beta.google.com/group/comp.unix.solaris/browse_thread/thread/2adea1171303708d?tvc=2" >a Usenet thread</a> on <code>comp.unix.solaris</code> and an earlier <a href="http://slashdot.org/comments.pl?sid=136394&cid=11390751" >comment series</a> in the <a href="http://linux.slashdot.org/article.pl?sid=05/01/17/2343255&tid=190" >“Comparing Linux to System VR4”</a> on Slashdot last week, some valid <code>smf</code>(5) criticisms have been raised. I thought I would reply to them here, and acknowledge the impact on some practices.</p>
<p>The strongest recent critic has been Tim Hogard, and I hope he doesn’t mind if I collect his concerns to structure my response. Mr Hogard is a member of the class of exceptional administrators that have designed their systems’ behaviours (by removing unneeded software and writing precise configurations for what remains, among other good practices). I’ve always known that this group of experts would be most directly impacted by the changes <code>smf</code>(5) brings, and have tried to listen carefully to their concerns and modify the implementation to accommodate them. (Such people exist within Sun and in the Beta and Express communities.)</p>
<p><strong>“On my system the binary file contains the last time when the service started. That means a file in /etc gets written with every boot.”</strong> There are actually two binary files that contain the set of information the facility acts on:</p>
<ul>
<li>
<p><code>/etc/svc/repository.db</code>, which is persistent and contains the service definitions, dependencies, and so on, and</p>
</li>
<li>
<p><code>/etc/svc/volatile/svc_nonpersist.db</code>, which is <em>non-persistent</em> and contains service execution information, such as process IDs, contract IDs, and stae transition times. </ul> (<code>/etc/svc/volatile</code> is a <code>tmpfs</code> filesystem mounted by the kernel prior to startup being turned over to the progeny of <code>init</code>(1M). Its contents do not persist across OS instantiations.) </p>
I believe the concern here is that <code>/etc/svc/repository.db</code> change detection cannot be managed using fingerprints. This is in fact a bug:</p>
<blockquote>
<p>6221934 *svc.configd* must respect repository filesystem metadata as the current implementation does an idempotent test transaction to verify writeablity (in addition to other integrity checks). In the meanwhile, one can indirectly use a hash- or checksum-based fingerprint using the output of the <code>archive</code> subcommand to <code>svccfg</code>(1M), which dumps the repository as an XML document. An example using <code>cksum</code>(1):</p>
</blockquote>
<pre>13 $ svccfg archive > /tmp/a
</li>
</ul>
<p>14 $ svcadm disable manifest-import
15 $ svccfg archive > /tmp/b
16 $ svcadm enable manifest-import
17 $ svccfg archive > /tmp/c
18 $ cksum /tmp/a /tmp/b /tmp/c
1649351107 205437 /tmp/a
2659093841 205438 /tmp/b
1649351107 205437 /tmp/c
19 $ # use diff to examine repository differences globally…
</pre> But we’ll get that bug fixed shortly.</p>
<p>** “I’ve found some very interesting things to do to the new system that can mess up a box in a way that the current tool set won’t even let you see what is wrong. It appears to be a script kiddies back door dream.”** I am less certain I understood this point. There are no hidden services in the repository, although you can certainly corrupt the repository deliberately. (Separate backup repositories are made automatically at stages of boot; a recovery utility is provided in <code>/lib/svc/bin</code>.) Because each process is a member of a process contract owned ultimately by <code>svc.startd</code>(1M), you can use <code>svcs -p</code> if you trust the repository and <code>ptree -c</code> if you don’t. (If you don’t trust the kernel any longer, then we’re onto intrusion containment and system reinstallation from trusted media.)</p>
<p>** “And yes I’m saying complexity is bad and we should stick with what works (and it isn’t DOS).”** Unfortunately, what worked once no longer works given today’s requirements. The Predictive Self-Healing initiative at Sun and equivalents elsewhere are responses to a change in availability requirements: both hardware and software components have the potential for failure, and the operating system needs to acknowledge this outcome and provide abstractions and capabilities to manage its implications. It’s my belief that <code>smf</code>(5) introduces a minimal amount of complexity in exchange for new and meaningful descriptive objects and, in fact, the simplification of some previously difficult operations.</p>
<pre><code>This reply hasn&#8217;t explained why there&#8217;s a transactional database (which, as an implementation detail, is currently SQLite), or why hierarchical restart is a different problem than parallel startup, or why we converted the current system to use the facility rather than providing only the framework. I&#8217;m happy to expand on any of these, or the points above.
</code></pre>Fiddling with del.icio.ushttps://blueslugs.com/2005/01/25/fiddling-with-del-icio-us/Wed, 26 Jan 2005 06:45:51 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/01/25/fiddling-with-del-icio-us/<p>I’ve started moving bookmarks onto <a href="http://del.icio.us" >del.icio.us</a>, the slick social bookmarking service. Enough real work beckons that I’m resisting whipping up some Perl to glue Netscape::Bookmarks and Net::Delicious together, so for now I’m manually posting important or new bookmarks.</p>
<p>If you’re a <a href="http://del.icio.us" >del.icio.us</a> user, and want to help build a shared link set for <code>smf</code>(5), please consider using “solaris smf” in your tags. <a href="http://del.icio.us/tag/solaris+smf" >The current list</a> is incomplete.</p>Recovery from another hiatus; an smf(5) one-linerhttps://blueslugs.com/2005/01/24/recovery-from-another-hiatus-an-smf5-one-liner/Tue, 25 Jan 2005 07:20:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/01/24/recovery-from-another-hiatus-an-smf5-one-liner/<p>I was out with sick children last week and have been engaged in a form of mental wrestling <a href="http://blueslugs.com/wordpress/index.php/archives/2005/01/13/ucpoy-ekrpat-lroy/" >learning the Dvorak keyboard</a> for the past two—both impediments to concentration, and thus to smooth blogging. Everybody is on the mend; evening wakeups are on the decline. I no longer want to hurl my keyboard across the office; my brain is remapping favourite commands and key sequences. (<code>slrn</code> and <code>ls</code>, which use the fourth and fifth fingers of the right hand (or only the fifth), feel very awkward still.)</p>
<p>There were some interesting <code>smf</code>(5)-related asides in some <a href="http://slashdot.org" >Slashdot</a> discussions last week. One requires a separate, detailed reply. The other—a request for a single command that hardens your Solaris system—can be answered briefly. There are two answers: one a flip one-liner, one responsible.</p>
<p>The glib <code>smf</code>(5) one-liner answer is:</p>
<pre># svccfg apply /var/svc/profile/generic_limited_net.xml
</pre> which applies the “limited networking” profile to your system. This profile deactivates about three dozen services that are active in the traditional install case, including
<p><em>all passwords-in-the-clear login services</em>. There are still RPC and likely other services active on the system that serious system auditors will want to examine. (The limited networking profile was written by members of the Solaris Security Technology group and will be present in the initial release of Solaris 10. And we’re now working to make that initial install initially and increasingly secure.)</p>
<p>The more responsible answer is to point out that system hardening requires both minimization and reconfiguration (beyond service deactivation) and that there is a productized distillation of security practices for Solaris in the form of the <a href="http://www.sun.com/software/security/jass/" >Solaris Security Toolkit</a>. Although its use might exceed a one line constraint, the toolkit makes fungible years of Solaris hardening experience.</p>
<p>(I’ll refrain from describing how the now-integrated IPFilter or tcpwrapper support can reduce the exposure of some of the remaining services. But I will point out that the combination of the least privileges feature and the <code>smf</code>(5) service description’s ability to define the appropriate privileges for a service lead to an <code>rpcbind</code>(1M) that cannot successfully call <code>exec</code>(2) (among other things):</p>
<pre># ppriv `pgrep -z global rpcbind`
100220: /usr/sbin/rpcbind
flags = PRIV_AWARE
E: basic,!file_link_any,net_privaddr,!proc_exec,!proc_info,!proc_session,sys_nfs
I: basic,!file_link_any,!proc_exec,!proc_fork,!proc_info,!proc_session
P: basic,!file_link_any,net_privaddr,!proc_exec,!proc_info,!proc_session,sys_nfs
L: basic,!file_link_any,!proc_exec,!proc_fork,!proc_info,!proc_session
</pre> As I noted: increasingly secure.)Ucpoy Ekrpat lroyhttps://blueslugs.com/2005/01/13/ucpoy-ekrpat-lroy/Thu, 13 Jan 2005 20:31:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/01/13/ucpoy-ekrpat-lroy/<p>Or <em>First Dvorak post</em>. After many late nights coding, my fingers ache somewhat. I decided to switch to the Dvorak keyboard layout, and also to a programmer’s keyboard. The typing is much slower going now. In a couple of weeks, I’ll review the keyboard and some of the software I used to switch.</p>Commercial data aggregations: New social features at Netflixhttps://blueslugs.com/2005/01/08/new-features-at-netflix/Sat, 08 Jan 2005 19:10:49 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/01/08/new-features-at-netflix/<p>We’re regular, but not heavy <a href="http://www.netflix.com/" >Netflix</a> users. For the most part, Dina and I have our own <em>entente cordiale</em> 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.)</p>
<p>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 <em>queue juggling</em>, 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!” (<em>Warning:</em> transferring movies from a shared queue to individual queues has to be done by hand. Ick.)</p>
<p>Since I have a few friends who are also Netflix users, I’m interested in the “Friends” feature, too, where I can see <em>their</em> ratings of movies, and not just the Netflix customer average rating. The extra information can help, but it’s the aspect of an <em>asynchronous shared experience</em> that I find interesting. I’ll issue the invitations soon.</p>
<p>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 <em>data aggregation</em> 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.</p>State of the domainhttps://blueslugs.com/2005/01/07/state-of-the-domain/Sat, 08 Jan 2005 06:48:44 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/01/07/state-of-the-domain/<p><code>blueslugs.com</code> 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.</p>
<p><strong>Overview.</strong> 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…)</p>
<p><strong>Content.</strong> Pages from <a href="https://blueslugs.com/benjamin">Benjamin</a>‘s alphabet book remain the most popular real content—and the most often requested by searches. We started a subsite for <a href="https://blueslugs.com/nathaniel/">Nathaniel</a> and a second blog to keep friends apprised of <a href="https://blueslugs.com/rlv/">Dina’s father’s illness</a>. 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.</p>
<p>A few people are still downloading the <a href="https://blueslugs.com/software/dockables/" class="broken_link" rel="nofollow">dockapps</a> 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 <a href="http://blueslugs.com/" ><code>blogs.sun.com</code> blog</a> and on <code>blueslugs.com</code> is consistent; I don’t see a reason to merge the two. (For instance, reviews will remain on this site.)</p>
<p>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.</p>
<p><strong>System.</strong> 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 <code>uptime</code>(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).</p>
<p><code>blueslugs.com</code> is now running a recent express release of Solaris 10 x86, complete with <a href="http://sun.com/bigadmin/content/selfheal/" ><code>smf</code>(5)</a> service conversions for some of the software services. Much of the server software is precompiled and fetched from <a href="http://www.blastwave.org/" class="broken_link" rel="nofollow">blastwave.org</a> or one of its mirrors.</p>
<p><strong>Future.</strong> 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.</p>Move to WordPresshttps://blueslugs.com/2005/01/01/move-to-wordpress/Sat, 01 Jan 2005 23:29:20 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2005/01/01/move-to-wordpress/<p>With the beginning of 2005, I gave up on manually deleting <a href="http://en.wikipedia.org/wiki/Blog_spam" >blogspam</a>: I’ve moved the content of the site to <a href="http://wordpress.org" >WordPress</a>, with the <a href="http://www.gudlyf.com/index.php?p=376" class="broken_link" rel="nofollow">AuthImage plugin</a> installed to require some intelligence on the part of comment submission. I’ve not done all of the redirect/rewrite logic to get the archived posts links corrected; I think I’ll watch the logs and see if there are any pages that stand out. (The most popular pages, beyond the RSS feed, are both from Benjamin’s alphabet book, so the issue isn’t pressing.)</p>smf(5) on /.https://blueslugs.com/2004/12/21/smf5-on/Wed, 22 Dec 2004 05:01:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/12/21/smf5-on/<p><code>smf</code>(5) ended up in two stories on <a href="http://slashdot.org/" >slashdot</a> today. In <a href="http://linux.slashdot.org/article.pl?sid=04/12/21/183201" >“Torvalds on Opening Solaris”</a>, elmegil observed</p>
<blockquote>
<p>I’m rather amused to see Sun be the first to implement a replacement for the old init and have it done. I can’t say I know who thought it up first, but Solaris 10 SMF is the first working implementation I’m aware of that’s going to get any kind of wide deployment. I saw some linux-head saying this needed to be done a year or more ago, but I can’t even find their website in google now. And obviously if Solaris has it now, the implementation started a while back (probably more than a year)…
I suspect elmegil is referring to <a href="http://www.gnome.org/~seth/" >Seth Nickell</a>‘s System Services work, which ended up being discussed in <a href="http://www.osnews.com/story.php?news_id=4711" >an article on osnews.com</a> in October 2003. But there is other work in the parallel startup area that’s been cited on slashdot, and elsewhere.</p>
</blockquote>
<p>The second story is <a href="http://developers.slashdot.org/article.pl?sid=04/12/21/234243" >“A Diagnosis of Self-Healing Systems”</a>, which is a discussion around Mike Shapiro’s recent overview in <a href="http://www.acmqueue.com" >ACM Queue</a> of the problems we’re working to solve in the <a href="http://sun.com/bigadmin/content/selfheal/" >Predictive Self-Healing</a> effort. The comments range across a number of topics in deployment and architecture, but I was interested in the observations that self-healing in a general purpose system is a different proposition than in a limited purpose system. (I probably would also contrast open software systems and closed ones—perhaps a distinction of the past.)</p>Personal restarters and ctrun(1)https://blueslugs.com/2004/12/01/personal-restarters-and-ctrun1/Thu, 02 Dec 2004 07:34:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/12/01/personal-restarters-and-ctrun1/<p class="note">
(I know I need to wrap up the <code>cal</code>(1) contest. I also need to finish about three <code>smf</code>(5) blog entries. I am also mostly keeping up with the forum/list/newsgroup traffic on smf(5). I also have a few more bugfixes to get into Solaris 10 first. But a small dispatch seems necessary.)
</p>
<p>One of the neat things about GNOME is that it provides restarter operations for specified applications—your application references a bad address and dies, it gets restarted. I’m pretty attached to <a href="http://iki.fi/tuomov/ion/" class="broken_link" rel="nofollow"><code>ion</code></a>, however, and don’t really need all of the GNOME environment all the time. But I do want restart for a couple of applications in my session.</p>
<p>For instance, I wrote a little C program, <code>osdclock</code>, using <a href="http://freshmeat.net/projects/xosd/" ><code>libxosd</code></a> that displays the date, the time, and those of my mail folders containing new mail. It looks like this:</p>
<img src="http://blogs.sun.com/roller/resources/sch/p-osdclock.png" alt="Upper right-hand screenshot" align="center" />
<p>Occasionally, and for reasons I lack the time to debug, new <code>ion</code> workspaces will obscure the on-screen display. Rather than write code into <code>osdclock</code> to call <code>exec</code>(2) (of itself) on a received signal, it’s easier to use the new commands associated with the <em>contracts subsystem</em> of Solaris 10, specifically the <code>ctrun</code>(1) command. By adding the invocation</p>
<pre>/usr/bin/ctrun -r 0 -o noorphan -f signal,hwerr $HOME/bin/osdclock &
</pre>
<p>to my <code>.xinitrc</code> file, I get an <code>osdclock</code> that is restarted from any fatal external signal (or an uninterceptable hardware error of some kind), but is not restarted if a core file is generated (from a software error) or if the <code>ctrun</code> process is itself killed (like on session exit). So I avoid a home directory filled with core files. (You are using <code>coreadm</code>(1M) to have a meaningful core dump pattern, right?)</p>
<p>Since the cause of restart is <code>ctrun</code>‘s awareness of the process contract becoming empty, this same <code>ctrun</code> invocation could be used with an application that prefers to daemonize, like a personal web proxy. It could also be used to set up a restartable group of processes, like an application suite or widget collection. (<code>ctrun</code> has some other interesting options, and is a versatile lightweight restarter on its own—try it out.)</p>
<p>Having applications always available leads to predictable computing, but I think a more dramatic way to express it in this medium (but imagine appropriate stormy weather sound effects) would be</p>
<blockquote>
<p><mad_scientist>Restarters, restarters everywhere! <laughter glee=”maniacal” /><mad_scientist></p>
</blockquote>Strange absencehttps://blueslugs.com/2004/11/08/strange-absence/Tue, 09 Nov 2004 07:19:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/11/08/strange-absence/<p>The <a href="http://www.marinashoresvillage.com" class="broken_link" rel="nofollow">Marina Shores Village</a> site has been removed. I haven’t done enough math yet to even speculate, so I’ll merely point it out.</p>smf(5) GUI construction?https://blueslugs.com/2004/11/08/smf5-gui-construction/Mon, 08 Nov 2004 21:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/11/08/smf5-gui-construction/<p><a href="http://blogs.sun.com/darren/" >Darren</a> has a <a href="http://blogs.sun.com/roller/page/darren/20041108" >neat example</a> of using <code>zenity</code>(1) and <code>smf</code>(5) to make an “on-off” switch for his laptop’s network connection. The result:</p>
<img align="center" src="http://blogs.sun.com/roller/resources/sch/p-znetwork.png" title="" alt="" />
<p>where “Up” brings up <code>network/physical</code> and “Down” shuts it down—convenient for Solaris laptop users. <a href="http://freshmeat.net/projects/zenity/" >zenity</a>, by <a href="http://www.gnome.org/~gman" >Glynn Foster</a>, makes writing little panels like this so easy I suspect there might be a naescent cottage industry of <code>smf</code>–<code>zenity</code> panels. Let me know if you’ve written your own.</p>
<p><strong>Update:</strong> Darren’s new zsvcadm example is even better!</p>Finding the real smf(5) conversationhttps://blueslugs.com/2004/11/03/finding-the-real-smf5-conversation/Wed, 03 Nov 2004 22:12:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/11/03/finding-the-real-smf5-conversation/<p>I was a bit surprised by how little discussion of <code>smf</code>(5) I’d found (or how little emotional discussion, perhaps). <a href="news:comp.unix.solaris"><code>comp.unix.solaris</code></a> regulars figured things out moments after the images were posted to the Download Center, while the discussion of <a href="http://forum.sun.com/forum.jsp?forum=241" >Predictive Self-Healing forum</a> at BigAdmin focused on futures and further integration with management software. But it turns out that the largest discussion is at the <a href="http://groups.yahoo.com/group/solarisx86/" >solarisx86 Yahoo! Group</a>.</p>
<p>I’ve signed up just now, and I’ll get a few more <code>smf</code>(5) types to join in as well—sorry for not realizing that this forum is so active, and so populated with early adopters.</p>
<p>(And before I neglect your favourite forum: please tell me what other forums we need to watch.)</p>Conversions, conversionshttps://blueslugs.com/2004/11/03/conversions-conversions/Wed, 03 Nov 2004 21:07:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/11/03/conversions-conversions/<p>I <a href="http://blogs.sun.com/roller/page/sch/20041031" >mentioned</a> that I’d converted a few of the F/OSS software packages that we use on our home system. Of course, the point of <code>smf</code>(5) isn’t to force you to rewrite all of your <code>init.d</code> scripts—it’s to force you to encourage your vendor to do so. (Wait, that’s not right, either.) I’ll come back to this aspect, but let’s talk a bit about service bundles.</p>
<p>The service bundle (or service manifest) is meant to accompany the package delivering the software. If a System V-style package uses the <code>i.manifest</code> class action script to identify its manifests, then these will be automatically imported into the repository upon package installation. (The class action script knows about zones, LiveUpgrade, and a couple of complicated circumstances where it’s not safe to import automatically.) In any case, upon the next reboot, unimported manifests in <code>/var/svc/manifest</code> will be automatically imported, and such services will be present in the graph.</p>
<p>Service manifests should deliver services <strong>disabled by default</strong>, so no one gets surprised by “hey, port <em>N</em> is now open—why’s that?” after a package installation. For these cases, all the administrator needs to do is</p>
<pre></p>
<h1>
svcadm enable service_fmri
</h1>
<p>
</pre>
</p>
<p>
That is, the intentions for the service are owned by the system administrator. (There are exceptions for service complexes, where multiple services are involved, but manipulating interior services of a complex should be done by using temporary enable/disable requests. See <code>svcadm</code>(1M) and <code>smf_enable_instance</code>(3SCF).)
</p>
<p>
If you’re delivering software outside of the System V packaging, your installer can do the equivalent: use <code>svccfg</code>(1M) to import the service. If you support some form of upgrade, you can enable the service <b>if you detected that the service was effectively enabled already</b>. Remember to think about your uninstall action as well. For the default packages, we disallow deletion of a package that contains an enabled service instance. (A check on accidental removal.)
</p>
<p>
So those are the fundamentals—more detail is available <a href="http://www.sun.com/bigadmin/content/selfheal/sdev_intro.html" >in our service developer introduction</a>. But the big question is what F/OSS software would you like to see example conversions for, first? (And tell us what commercial packages matter, too.) I’m going to start describing a few of the ones I mentioned a few days ago but, again, the goal isn’t to cause the creation of hundreds or thousands of custom descriptions of a standard software service, but to get the service described and to have that description accompany the service to deployment.
</p>San Mateo County election resultshttps://blueslugs.com/2004/11/02/san-mateo-county-election-results/Wed, 03 Nov 2004 07:12:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/11/02/san-mateo-county-election-results/<p>The <a href="http://www.shapethefuture.org/elections/results/nov2004/results.asp" >semi-official election results</a> for San Mateo Country have been posted. For the two elections we were watching at <code>blueslugs.com</code>:</p>
<ul>
<li>In the county, Ira Ruskin (D) [37,877] defeated Steve Poizner (R) [29,833]. This margin is substantially narrower than other state or national elections in San Mateo County. These results need to be added with the contributions from the portions of Santa Clara County that make up Assembly District 21; results from the California Secretary of State <a href="http://vote2004.ss.ca.gov/Returns/stasm/2100.htm" >suggest that Ruskin will win</a> the district.</li>
<li>Measure Q was defeated, with 10,214 votes for and 12,109 votes against.</li>
</ul>smf(5) at homehttps://blueslugs.com/2004/10/31/smf5-at-home/Sun, 31 Oct 2004 22:12:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/10/31/smf5-at-home/<p>Our electrical power at home has been sagging occassionally. It tripped yesterday for a couple of seconds: enough for everything without batteries or some capacitance to reset. (So clocks set yesterday, and again today.) Our main server went as well, and I noticed one or two services—running under very early Solaris 10—didn’t come back up properly. There’s a solution for that.</p>
<p>So I upgraded that <a href="http://blueslugs.com" >that server</a> to the 10/2004 Express release of Solaris—the first one with <code>smf</code>(5). I ended up writing seven service conversions very quickly (for SASL, IMAP, stunnel, and Blastwave’s Postfix, BIND9, Apache, and Squid), because otherwise Dina’s email doesn’t work. (Or my home blog.)</p>
<p>I need to reexamine the dependencies I elected on each of these service conversions, but if you’re interested in seeing them, let me know. With the exception of chasing a few configuration files down, it took only half an hour to get these services properly managed; that is, basically limited by typing speed.</p>smf(5) content flowinghttps://blueslugs.com/2004/10/29/smf5-content-flowing/Fri, 29 Oct 2004 19:22:26 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/10/29/smf5-content-flowing/<p>We’ve posted an <code>smf</code>(5) <a href="http://www.sun.com/bigadmin/content/selfheal/smf-quickstart.html" >quickstart guide</a> and a <a href="http://www.sun.com/bigadmin/content/selfheal/sdev_intro.html" >preliminary service developer introduction</a> (written by <a href="http://blogs.sun.com/lianep" >Liane</a>), and are listening in the <a href="http://forum.sun.com/forum.jspa?forumID=241" >Predictive Self-Healing forum</a>.</p>
<p>If you like, comment to let me know when the images hit the Download Center—they’ll most likely say “b69” somewhere in the filenames.</p>smf(5) seepagehttps://blueslugs.com/2004/10/28/smf5-seepage/Thu, 28 Oct 2004 22:59:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/10/28/smf5-seepage/<p>Google (and the other search engines, I’m sure) are amusingly tenacious: if you search for “solaris” and the <code>smf</code>(5) command of your choice, you’ll start to find early content deep within the <a href="http://sun.com/" >sun.com</a> web tree as well as other Solaris and Unix sites. (These keywords will also deliver information about holiday resorts, although I can’t speak for their service or management or facility.)</p>Internet notices Q, and doesn'thttps://blueslugs.com/2004/10/15/internet-notices-q-and-doesnt/Fri, 15 Oct 2004 21:01:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/10/15/internet-notices-q-and-doesnt/<p>There is also apparently <a href="http://blog.nella.org/archives/000125.html" class="broken_link" rel="nofollow">questionable telemarketing behaviour</a> associated with the pro-Q side. And <a href="http://blog.nella.org" >jra</a> links to <a href="http://cshipley.typepad.com/noonq/" class="broken_link" rel="nofollow">another no-on-Q blog</a>, which describes <a href="http://cshipley.typepad.com/noonq/2004/10/jras_my_neighbo.html" class="broken_link" rel="nofollow">a reaction to the “real pictures” mailing</a> similar to my own.</p>
<p>(I’m a little puzzled why none of these blogs are popping up on Google yet.)</p>More on our weighty measureshttps://blueslugs.com/2004/10/15/more-on-our-weighty-measures/Fri, 15 Oct 2004 20:26:36 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/10/15/more-on-our-weighty-measures/<p>The other day, I <a href="http://blueslugs.com/wordpress/index.php/archives/2004/10/14/exciting-fall-season/" >noted</a> some interesting politics in Redwood City/San Mateo County. The <a href="http://www.economist.com" >Economist</a> isn’t covering this race, but is covering the U. S. Senate race in Oklahoma, and that the total spending there has been 3.8 M$. So the Poizner–Ruskin state assembly race in California and a Senate race in Oklahoma match up on absolute dollars. (Oklahoma has 1.9 M registered voters, so the per-registered voter amount for the Oklahoma race is about 2 $, or a little over 1/8 of the amount in our local race.)</p>
<p>On the Measure Q side, we received another two pro- mailings. One suggested looking at what was purported to be new facts on the measure, but is just a new domain registration pointing at the original site. I poked around, though, and found the following:</p>
<p><img src="http://blueslugs.com.nyud.net:8090/images/msv-building-coverage.jpeg" alt="pamphlet-map"></p>
<p>This is a classic graphical evasion: the coloring of the “marinas and open space” is green, suggesting grass. But note that marinas are actually on the water and, perhaps more importantly, the graphic does not separate out internal roads or parking. It would be difficult to find a common California definition of “open space” that includes roadways. If we look elsewhere on the site, we find</p>
<p><img src="http://blueslugs.com.nyud.net:8090/images/msv-site-plan.jpeg" alt="site-plan"></p>
<p>A very different assessment of open space, and one that raises questions about why this factor is being emphasized so strongly. I await the next mailing.</p>Exciting fall seasonhttps://blueslugs.com/2004/10/14/exciting-fall-season/Thu, 14 Oct 2004 08:49:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/10/14/exciting-fall-season/<p>Although the major political news stories surround the U. S. Presidential Election, we’re having an exciting time in Redwood City, with the Poizner–Ruskin race for Assembly and the contest over Measure Q, which would approve the proposed Marina Shores Village along San Francisco Bay. Not being a citizen, I can’t vote. Moreover, I’m probably hopelessly idealistic about various behaviours, so I’ll just note some interesting aspects. (And this article covers no aspect of the fall television season—I’ll communicate my disappointment separately.)</p>
<p>The assembly race is of an interesting class: active new money versus established state party. As a result, our afternoon post regularly contains one or two mailings, as both sides can afford a direct mail blitz. Reading the mail, we find</p>
<ul>
<li><strong>Bay Area influence:</strong> Mr. Poizner is downplaying his party association and emphasizing his moderate (even left-wing) credentials, while Mr. Ruskin’s signs clearly identify Democratic affiliations.</li>
<li><strong>Political celebrity appearance:</strong> San Francisco mayor, Gavin Newsom, carelessly signed some Democratic machine-authored support letter and then denied personal involvement, which threw confusion into the race, as both sides offered differing interpretations of the letter.</li>
<li><strong>Money:</strong> Current total spending on the race is about 3.7 M$, split 3 M$ – 0.7 M$ in favour of Mr. Poizner. That’s roughly fifteen dollars per registered voter in the district.</li>
</ul>
<p>Meanwhile, we have a measure to approve a new development, accompanied by zoning changes, at the bayshore: Measure Q. Evaluating the measure’s impact is complicated: there is no recent analogous development in Redwood City, so it’s difficult to acquire any insight into how the various urban systems would accomodate such a large development (especially when spread over multiple decades). The <a href="http://www.marinashoresvillage.com" class="broken_link" rel="nofollow">pro-Q site</a> is low on detail, and has nothing that compares to <a href="http://www.no-on-q.org/truth.html" class="broken_link" rel="nofollow">this effective page</a> from the anti-Q organization. The latter is a strong example of effective argument presentation on the web.</p>
<p>(I should note that Redwood City Water Utility Services publishes a “City of Redwood City Public Works Services Water Utility Services Periodic Customer Newsletter” (usually bi-monthly) which periodically (every other newsletter) reminds us that Redwood City is 10% overdrawing the fresh water from the San Francisco system. So local property owners are highly aware of water-related issues.)</p>
<p>(I should also note that my commute is along U. S. 101, which would be the highway most impacted by this development, and that that commute uses the interchanges adjacent to the development itself. Oh, and that I worked in <a href="http://www.mto.gov.on.ca/" >traffic systems</a> and am a bit skeptical that the additional trips impact is as mild as presented: it’s just as likely that 50% of the new residents will work in Santa Clara.)</p>
<p>The pro-Q side has been effective at press release–article conversions, but that perhaps is revealing Peninsula media outlets’ actual capacity for investigative reporting. The pro- side sent one mailing that was poorly received in our household: the card presents an array of headshots of officeholders endorsing the measure but, when so many politicians agree on something in America, even I know money is a more likely influence than any sincere, shared analysis. I’ve <a href="http://blueslugs.com/archives/2004_06.html" class="broken_link" rel="nofollow">noted before, with some excitement,</a> how Redwood City is changing, but Q hasn’t shown itself to be well-enough structured an argument to suggest it’s aligned with those other changes.</p>Puzzle #2: cal(1)https://blueslugs.com/2004/09/29/puzzle-2-cal1/Wed, 29 Sep 2004 22:21:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/29/puzzle-2-cal1/<p class="note">
(I’ve been fixing little <code>smf</code>(5) bugs, as well as revising our documentation, presentations and–most importantly–more block diagrams for this blog. But I bumped into an annoyance and thought I should share.)
</p>
<p>As an young old-school Unix developer, I tend to live in terminal windows. One of my favourite commands is cal(1), which has a great default mode:</p>
<pre>$ cal
September 2004
S M Tu W Th F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
</pre>
<p>But if you want to see an October calendar, you might get confused:</p>
<pre>$ cal 10
10
Jan Feb Mar
S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S
1 2 3 4 1 1
5 6 7 8 9 10 11 2 3 4 5 6 7 8 2 3 4 5 6 7 8
12 13 14 15 16 17 18 9 10 11 12 13 14 15 9 10 11 12 13 14 15
19 20 21 22 23 24 25 16 17 18 19 20 21 22 16 17 18 19 20 21 22
26 27 28 29 30 31 23 24 25 26 27 28 23 24 25 26 27 28 29
30 31
Apr May Jun
S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S
1 2 3 4 5 1 2 3 1 2 3 4 5 6 7
6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
27 28 29 30 25 26 27 28 29 30 31 29 30
Jul Aug Sep
S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S
1 2 3 4 5 1 2 1 2 3 4 5 6
6 7 8 9 10 11 12 3 4 5 6 7 8 9 7 8 9 10 11 12 13
13 14 15 16 17 18 19 10 11 12 13 14 15 16 14 15 16 17 18 19 20
20 21 22 23 24 25 26 17 18 19 20 21 22 23 21 22 23 24 25 26 27
27 28 29 30 31 24 25 26 27 28 29 30 28 29 30
31
Oct Nov Dec
S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S
1 2 3 4 1 1 2 3 4 5 6
5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13
12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20
19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27
26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31
30
</pre>
<p>It’s an interesting UI choice to assume that anyone would want the calendar for the year 10 C.E. Certainly I never do, and I’m pretty sure someone would have told me if UNIX systems were the professional historian’s first choice for computing…</p>
<p>So today’s puzzle is to make cal(1) more usable. If I enter cal <em>month_num</em>, give me the current month; If I enter “cal now” give me the 3-month window around the current month, like so:</p>
<pre>$ cal now
August 2004 September 2004 October 2004
S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S
1 2 3 4 5 6 7 1 2 3 4 1 2
8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16
22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23
29 30 31 26 27 28 29 30 24 25 26 27 28 29 30
31
</pre>
<p>Other than that, all other standard invocations of <code>cal</code>(1) should work as usual.</p>
<p>My example solution is a couple dozen line <code>ksh</code>(1) shell function, and I’ll post it along with the best submissions. (Perl folks: no non-core modules, please.)</p>smf(5): authorizations built-inhttps://blueslugs.com/2004/09/23/smf5-authorizations-built-in/Thu, 23 Sep 2004 08:04:33 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/23/smf5-authorizations-built-in/<p>I mentioned yesterday that you can manipulate services if you have the appropriate authorizations, without needing to possess any privileges. For instance, my current shell has the following privileges and authorizations:</p>
<pre>$ ppriv $$
117292: bash
flags = <none>
E: basic
I: basic
P: basic
L: all
$ auths
solaris.device.cdrw,solaris.profmgr.read,solaris.jobs.users,solaris.mail.mailq
</pre>
<p>And if we try to manipulate a service managed by <code>smf</code>(5) with this set of authorizations, we’ll get a predictable result.</p>
<pre>$ svcadm restart network/smtp
svcadm: network/smtp: Permission denied.
</pre>
<p>However, <code>smf</code>(5) defines two big authorizations:</p>
<ul>
<li><code>solaris.smf.manage</code>, which allows the user to request a restart, refresh, or other state modification of any service instance, and</li>
<li><code>solaris.smf.modify</code>, which allows the users to create or delete services and instances, as well as manipulate any of their property groups or properties.</li>
</ul>
<p>(There are also lesser built-in authorizations—<code>solaris.smf.modify.method</code>, <code>solaris.smf.modify.dependency</code>, <code>solaris.smf.modify.application</code>, and <code>solaris.smf.modify.framework</code>—which allow the manipulation of properties within property groups of the mentioned type. And you can also customize the authorizations to allow an action at the instance level and to manipulate properties at the property group level.)</p>
<p>To make assigning batches of authorizations scale, the role-based access control facility (RBAC) allows the definition of <em>rights profiles</em>. (The definitions are contained in <code>/etc/security/prof_attr</code>, and the documentation is <code>prof_attr</code>(4).) The service management facility delives with two rights profiles we think are convenient:</p>
<pre>$ grep ^Service /etc/security/prof_attr
Service Management:::Manage services:auths=solaris.smf.manage,solaris.smf.modify
Service Operator:::Administer services:auths=solaris.smf.manage,solaris.smf.modify.framework
</pre>
<p>We can then add the <code>user_attr</code>(4) database to connect a user with the appropriate profile, like:</p>
<pre>$ grep sch /etc/user_attr
sch::::profiles=Service Management
</pre>
<p>(You can edit <code>/etc/user_attr</code> by hand or, if your password database is local, using the <code>-P</code> option to <code>useradd</code>(1M). The equivalent configuration via direct authorizations would read</p>
<pre>$ grep sch /etc/user_attr
sch::::auths=solaris.smf.manage,solaris.smf.modify
</pre>
<p>and will work fine except that if the Service Management profile were to be enhanced subsequently, a user or role with the old explicity authorizations might not have the correct set for future operations.)</p>
<p>So now our authorization list is expanded, but our privileges are unchanged:</p>
<pre>$ auths
solaris.smf.manage,solaris.smf.modify,solaris.device.cdrw,solaris.profmgr.read,solaris.jobs.users,solaris.mail.mailq
$ ppriv $$
117292: bash
flags = <none>
E: basic
I: basic
P: basic
L: all
</pre>
<p>and we can carry out our operation from an authorized, but unprivileged user account:</p>
<pre>$ svcs network/smtp
STATE STIME FMRI
online Sep_21 svc:/network/smtp:sendmail
$ svcadm restart network/smtp
$ svcs network/smtp
STATE STIME FMRI
online 23:58:21 svc:/network/smtp:sendmail
</pre>
<p>And, finally, since the <code>user_attr</code>(4) database has network name service backends, you can actually make authorization grants that apply across an administrative domain, whether you’re giving out the big authorizations illustrated here or custom authorizations specific to a set of services running at your site.</p>smf(5): asking versus doinghttps://blueslugs.com/2004/09/22/smf5-asking-versus-doing/Wed, 22 Sep 2004 09:34:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/22/smf5-asking-versus-doing/<p>Let’s consider how applications are traditionally started: we execute (or the system executes) a command, such as <code>fooadm</code>(1M), which in turn calls <code>fork</code>(2), does some detachment work, and then calls <code>exec</code>(2) to run <code>food</code>(1M) (which is what we wanted). A schematic of this sequence would look like</p>
<div align="center">
<img src="http://blogs.sun.com/roller/resources/sch/p-direct-fork.png" align="center" title="" alt="" />
</div>
<p>For long-running, always-needed applications (which we call <em>services</em>), this model raises some questions:</p>
<ul>
<li><em>Who is responsible for <code>food</code>(1M)?</em> After <code>fooadm</code>(1M) finishes, the intent behind the running <code>food</code>(1M) is murky. Is it acceptable for <code>food</code>(1M) to exit after some period of time? Or is exit a failure condition?</li>
<li><em>How did <code>food</code>(1M) get the privileges, resources, etc. that it needed to run?</em> Either <code>fooadm</code>(1M) was executed holding enough privileges for <code>food</code>(1M) to function normally, or <code>food</code>(1M) is setuid-root and must verify that its requesters are authorized to execute it for some set of its offered operations. Ditto for resource assignments.</li>
<li><em>Why does each <code>fooadm</code>(1M)–<code>food</code>(1M) pair on the system (<code>baradm</code>(1M)–<code>bard</code>(1M), …) handle this relationship slightly differently?</em> I can only speculate.</li>
</ul>
<p>(Lest anyone assume I’m pretending to novelty: most restarters (<code>init</code>(1M)) or super-servers (<code>inetd</code>(1M)) have answered the first two of these questions by offering a single, specific application model. But many daemons we run on systems today fit neither of these application models well.)</p>
<p>In <code>smf</code>(5), the service management facility, directly forking a service is discouraged. Instead, one requests that a service be enabled, and the master restarter, <code>svc.startd</code>(1M) or a delegate—like <code>inetd</code>(1M)—will do the <code>fork</code>(2)–<code>exec</code>(2) sequence. The equivalent diagram might be drawn as</p>
<div align="center">
<img src="http://blogs.sun.com/roller/resources/sch/p-smf-enable-instance.png" align="center" title="" alt="" />
</div>
<p>Upon receiving an enable request from <code>smf_enable_instance</code>(3SCF) or <code>svcadm enable <em>fmri</em></code>, <code>svc.startd</code>(1M) determines if the service’s dependencies are satisfied and, if so, requests that the responsible restarter start an instance of the service. What the responsible restarter is doing is:</p>
<ul>
<li>setting the privileges, resource bindings, and application-specific environment for the service,</li>
<li>creating a fault boundary to place the service instance within,</li>
<li>calling <code>fork</code>(2)–<code>exec</code>(2) to run the service*, and</li>
<li>watching the service for error conditions, upon which the service is terminated (and restarted if appropriate).</li>
</ul>
<p>(The combination of the master restarter and the delegates are handling these calculations and operations for every service on the system, propagating their state changes and evaluating the impact of those state changes in turn.)</p>
<p>Moreover, because the <code>smf_enable_instance</code>(3SCF) request is evaluated based on the authorizations of the caller, <code>fooadm</code>(1M) can be run with <strong>no significant privileges</strong>. Since we split authorizations into action authorizations (non-persistent operations, like “restart this service”) and modify authorizations (changing configuration aspects), it becomes straightforward to create an operator role that can tend a service, but not change its configuration or affect any other independent service on the system.</p>
<p>More flexible administrative assignments is one aspect of inserting <code>smf</code>(5) into Solaris, but we’ll contrast these two approaches again—and reveal exactly what those purple rectangles represent.</p>
<ul>
<li>Not every restarter need offer a <code>fork</code>(2)–<code>exec</code>(2) application model, but presently all <code>smf</code>(5) restarters do.</li>
</ul>Had no effect, given my coloured lenseshttps://blueslugs.com/2004/09/21/had-no-effect-given-my-coloured-lenses/Tue, 21 Sep 2004 19:37:41 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/21/had-no-effect-given-my-coloured-lenses/<p><img src="http://blogs.sun.com/roller/resources/sch/p-small-register-20040921.png" alt="" title=""> <a href="http://www.theregister.co.uk/" >The Register</a> is displaying with a Sun Blue theme <a href="http://www.sun.com/nc/04q3/">today</a>.</p>smf(5): the system knowing more means…https://blueslugs.com/2004/09/20/smf5-the-system-knowing-more-means/Tue, 21 Sep 2004 02:05:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/20/smf5-the-system-knowing-more-means/<p>you can choose to know less. For instance, if you need to know what application model your program runs under, then you have to know how to start or restart or stop your application. The common example is that, if you run a process under <code>inetd</code>(1M), then telling <code>inetd</code>(1M) to take notice of your new service (or your newly deactivated service) requires knowing that</p>
<pre></p>
<h1>
pkill -HUP -x inetd
</h1>
<p>
</pre>
</p>
<p>
will cause <code>inetd</code>(1M) to rescan <code>inetd.conf</code>(4), its configuration file.
</p>
<p>
But for a service started by <code>init</code>(1M) out of <code>inittab</code>(4), you edit that configuration file
and then
</p>
<p>
<pre></p>
<h1>
init Q
</h1>
<p>
</pre>
</p>
<p>
And for a service that is started somewhere in <code>/etc/rc*.d</code>, restarting looks something like
</p>
<p>
<pre></p>
<h1>
/etc/init.d/foo restart
</h1>
<p>
Usage: /etc/init.d/foo {start|stop}
</p>
<h1>
/etc/init.d/foo stop
</h1>
<h1>
/etc/init.d/foo start
</h1>
<p>
</pre>
</p>
<p>
and making this service start on boot consists of creating a link to the <code>/etc/init.d</code> file to
some sequence number in the appropriate run level directory. (I’ll omit discussion of <code>saf</code>(1M), but
that’s another distinct method for managing services.)
</p>
<p>
All of this, of course, could be simpler.
</p>
<p>
If the service describes what other service is responsible for starting it and stopping it (and restarting it or
asking for its configuration to be refreshed), then a single command can relay the appropriate instructions
to the responsible restarter. In <code>smf</code>(5), this command is <strong><code>svcadm</code>(1M)</strong>.
Our examples above all reduce to
</p>
<p>
<pre></p>
<h1>
svcadm restart application/foo
</h1>
<p>
</pre>
</p>
<p>
or to
</p>
<p>
<pre></p>
<h1>
svcadm enable application/foo
</h1>
<p>
</pre>
</p>
<p>
depending on whether you wanted to restart or merely enable (and start) the service in question.
</p>
<p>
Of course, since we also know what <em>other</em> services <code>application/foo</code> requires, we can actually
enable all required services automatically, by following our <a href="http://blogs.sun.com/roller/page/sch/20040917" >service graph</a>. Let’s make this more concrete: to enable the SSH daemon on Solaris, all you need to do is:
</p>
<p>
<pre></p>
<h1>
svcadm enable -r network/ssh
</h1>
<h1>
svcs -p network/ssh
</h1>
<p>
STATE STIME FMRI
online Sep_14 svc:/network/ssh:default
Sep_14 100152 sshd
</pre>
</p>
<p>
What’s <code>svcadm</code>(1M) doing? We can ask it for verbose output:
</p>
<p>
<pre></p>
<h1>
svcadm -v enable -r network/ssh
</h1>
<p>
svc:/network/ssh enabled.
svc:/system/cryptosvc enabled.
svc:/system/filesystem/minimal:default enabled.
svc:/system/device/local enabled.
svc:/system/filesystem/usr enabled.
svc:/system/filesystem/root enabled.
svc:/network/loopback enabled.
svc:/system/filesystem/usr:default enabled.
</pre>
</p>
<p>
<code>svcadm</code>(1M)’s output represents its traversal of the dependencies for <code>sshd</code>(1M).
Taken across the many services included in Solaris, that’s a lot of knowledge we’ve formalized and moved into the
system. It becomes the basis for a lot of “meta-service” administration, including automated restart.
</p>
<p>
If you didn’t know these dependencies already, you can interrogate the system (using <code>svcs</code>(1)) and
cement your understanding; if you did, then you can answer the second-order questions like, “what is affected
by a failure of <code>system/utmp</code>?” much more rapidly than in the past. Or you can instead know less and
devote your newly freed neural capacity to understanding your application stack as a whole (or to maintaining
encylopedic knowledge of Simpsons trivia…).
</p>smf(5): a view from the moonhttps://blueslugs.com/2004/09/17/smf5-a-view-from-the-moon/Fri, 17 Sep 2004 08:02:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/17/smf5-a-view-from-the-moon/<p>One interesting aspect of <code>smf</code>(5) is that we have pulled apart many of the assumed interrelationships between system services, and made them explicit. Doing this makes building availability and failure models much easier, but it also lets us see one projection of Solaris’s shambling shape. (There’s another interesting technique for dynamic discovery of relationships via DTrace, but I’ll let <a href="http://dtrace.org/blogs/bmc" >Bryan</a> show the image from those experiments when he’s ready.) Everyone wanted to visualize the service graph that results, so <a href="http://blogs.sun.com/dp/" >Dan Price</a> and David Bustos came up with a way to generate one. Here’s the result, generated on my two-way Opteron system earlier today:</p>
<p><img src="http://blogs.sun.com/roller/resources/sch/p-sm-graph.png" alt="" title=""></p>
<p>Because we’ll be tweaking the graph a bit more, I’m only showing this scaled down version, but we can take a bit of a tour just from the gross features:</p>
<ul>
<li>Generally, earliest to latest proceeds from right to left.
<ul>
<li>The large structure just below the centre is <code>network/rpc/bind</code> and its dependents, the various RPC services.
<ul>
<li>Furthest to the right is <code>network/pfil</code>, which prepares the network interfaces for IP Filter.
<ul>
<li>
<p>Furthest to the left is <code>system/fmd</code>, the new Solaris Fault Manager. </ul>
As you might guess, we’ve had to write numerous graph-aware diagnosis algorithms to make a large structure like this one navigable. We’re looking forward to further enhancing our reporting and visualization tools to make troubleshooting easier still.</p>
<p>(Of course, knowing all the dependencies in Solaris doesn’t protect you from the occupational hazard of <em>overdiagnosis</em>, as <a href="http://blogs.sun.com/jbeck" >John</a> and I spent an hour poking at every possible aspect of his system, which ultimately required a new network cable. I figure once a year I still end up following an “all possible software causes” algorithm, ending up in <code>mdb</code>(1) poking around the kernel, rather than checking cable connections or a bad software install.)</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>smf(5): sun.com, new blogging, boothttps://blueslugs.com/2004/09/15/smf5-sun-com-new-blogging-boot/Thu, 16 Sep 2004 00:45:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/15/smf5-sun-com-new-blogging-boot/<p>We had our moment on <a href="http://www.sun.com/2004-0907/feature/" >sun.com</a> last week, which was pretty gratifying: my first slides on doing this project are from June 2001, and I’m not certain how long before that—1997? 1998?—we started sketching out aspects of the problem. <code>smf</code>(5), which we developed under the codename <a href="http://www.wordiq.com/definition/Green_Line_%28Massachusetts_Bay_Transportation_Authority%29" >“Greenline”</a>, is now rolling out pretty well inside Sun, and with the inclusion of the Java Desktop System, makes for a nice fast workstation startup.</p>
<p>After being strapped into their ergonomic chairs for a year or two, people are understandably itchy to start explaining what they’ve been working on to others: <a href="http://blogs.sun.com/roller/page/tobin/20040914" >Tobin</a>‘s first entry suggests that he’s setting himself a lofty goal of touring the entire facility in his blog. I know <a href="http://blogs.sun.com/lianep/" >Liane</a> and a couple of others are ready to get the word out as well. But, being a dilettante at heart, I’ll just try to show some of the pieces I think are interesting.</p>
<p>The past couple of days I spent refining verbose boot, which let’s you see what services the system is starting and in what order (and what went wrong). I’m eliding some of the boring parts, but it looks roughly like this:</p>
<pre>SunOS Release 5.10 Version smf-fixes-sparc 64-bit
Copyright 1983-2004 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
DEBUG enabled
misc/forthdebug (467758 bytes) loaded
[ system/filesystem/root:default starting (Root filesystem mount) ]
[ network/pfil:default starting (pfil) ]
[ network/loopback:default starting (Loopback network interface) ]
[ network/physical:default starting (Physical network interfaces) ]
Sep 15 16:26:33/11: system start time was Wed Sep 15 16:26:20 2004
[ system/filesystem/usr:default starting (/usr and / mounted read/write) ]
[ system/device/local:default starting (Standard Solaris device configuration.) ]
[ system/identity:node starting (System identity) ]
[ system/filesystem/minimal:default starting (Local filesystem mounts) ]
[ milestone/devices:default starting (Device configuration milestone.) ]
Hostname: gremlins-b10
[ system/sysevent:default starting (System event notification service.) ]
[ system/identity:domain starting (System identity) ]
NIS domain name is mpklab.sfbay.sun.com
[ system/cryptosvc:default starting (Cryptographic services) ]
[ system/manifest-import:default starting (Service manifest import) ]
[ system/rmtmpfiles:default starting (Remove temporary files) ]
[ system/sysidtool:net starting (sysidtool) ]
[ system/power:default starting (Power Management) ]
[ system/keymap:default starting (Keyboard defaults) ]
[ system/name-service-cache:default starting (Name service cache daemon) ]
....
[ milestone/single-user:default starting (Single-user milestone) ]
....
[ system/console-login:default starting (Console login) ]
[ milestone/multi-user:default starting (Multi-user milestone) ]
[ network/inetd:default starting (inetd) ]
gremlins-b10 console login:
</pre>
<p>(On a Java Desktop System with GDM2 enabled, it just presents the GDM graphical login shortly after <code>system/utmp</code> is available.) One new aspect of boot is that the service “common” names are actually localizable although, since Solaris supports various splits between the root filesystem, <code>/usr</code>, and other filesystems, there’s a bit of hidden acrobatics involved. As another example, the reason we print out the start time is because, on this system, prior to that message, we can’t access the timezone data to convert the time-of-day to the local timezone. Fun.</p>Useful software: libxosdhttps://blueslugs.com/2004/09/09/useful-software-libxosd/Fri, 10 Sep 2004 07:43:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/09/useful-software-libxosd/<p>I had built an early version of <a href="http://www.ignavus.net/software.html" ><code>libxosd</code></a> 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. <code>libxosd</code> went, when I was distracted, through a substantial rewrite, culminating in a 2.2.x series release. And I’m running Solaris 10 (with <code>smf</code>(5)) on a dual Opteron now, as I’ve <a href="http://www.blueslugs.com/archives/2004_04.html" class="broken_link" rel="nofollow">mentioned before</a>.</p>
<p>I generally try to build OSS software with the Sun Workshop/Forte compiler suite first, but for <code>libxosd</code>, I recommend going directly to GCC. There are too many mistakes in the <code>autoconf/libtool</code> pairing to bother fixing—none of these appear to be <code>libxosd</code> issues. (I mean, couldn’t <code>-Wall</code> not be passed to <code>cc</code> by now?)</p>
<p>Recommended.</p>Back from scatterednesshttps://blueslugs.com/2004/09/03/back-from-scatteredness/Fri, 03 Sep 2004 18:16:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/03/back-from-scatteredness/<p>August was hectic. <code>smf</code>(5) required care and feeding, as did our newborn Nathaniel. I took a strange kind of quasi-paternity leave, by remaining home Tuesdays and Thursdays. (Don’t do this—you’re left with very few long concentration blocks on the workdays.) I also took Ben to Muskoka to celebrate a family history centennial, and we all went to Chicago for a memorial service for Dina’s father. Plus we had a yellowjacket nest in the walls of our home. I’ll <a href="http://blueslugs.com" >write these all up shortly</a>.</p>
<p>But I’m back at work now, and cooking up some entries on <code>smf</code>(5), resource management, and Solaris in general. (And for all of you who’ve written me in the meanwhile, if I haven’t already replied, then I’m probably composing a reply now.)</p>Just because the slide opens, doesn't mean you get to use ithttps://blueslugs.com/2004/09/01/just-because-the-slide-opens-doesnt-mean-you-get-to-use-it/Thu, 02 Sep 2004 05:40:59 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/09/01/just-because-the-slide-opens-doesnt-mean-you-get-to-use-it/<p><a href="http://www.blueslugs.com/archives/IMG_0023.JPG" class="broken_link" rel="nofollow"><img alt="IMG_0023.JPG" src="http://www.blueslugs.com/archives/IMG_0023-thumb.JPG" width="150" height="115" border="0" /></a>Our trip to Chicago was wonderful and on Tuesday we rushed to the airport trying not to blame each other in front of the kids for why we were late. It turned out that we were able to meet the 45 minute baggage deadline for our flight, although we both promised to do things differently next time (travel with kids IS fun). We boarded our 747 and got the kids buckled into our full row of middle seats and ready for naps. We had food, our nasal aspirator (for ‘thaniel), and more books than we really wanted to carry (our luggage was 7 lbs overweight and we were asked to remove some of the books). The plane was hot but we knew that it would be cooler once we took off. Then the announcement came…</p>
<p>“folks we apologize for the heat, we haven’t been hooked up to the air conditioning unit while we’re on the ground but once we take off it will be better, in the meantime we’re going to crack a few doors to cool things off”. As a Californian, all I could think was that it was a fabulous idea, with the humidity and all, but before I had finished smirking there was a strange noise followed by an announcement that a slide had been deployed and we were all going to have to exit the plane.</p>
<p>I waited until everyone was off to move ‘thaniel while Stephen took Benjamin. The plan was to run to another terminal at O’Hare and try to get on one of two flights. The likelihood of all four of us getting seats together on another plane after having waited for an entire 747 to deplane seemed unlikely so we let the kids sleep and waited through five announcements about departure time changes until we were told we could board again (four hours later). The flight on our very empty 747 was uneventful but we were disappointed that unlike several years ago, United did not try to compensate for the late take off by giving us food or free drinks.</p>The secret lives of yellow jacketshttps://blueslugs.com/2004/08/31/the-secret-lives-of-yellow-jackets/Wed, 01 Sep 2004 05:07:05 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/08/31/the-secret-lives-of-yellow-jackets/<p><a href="http://www.blueslugs.com/archives/IMG_0022.JPG" class="broken_link" rel="nofollow"><img alt="IMG_0022.JPG" src="http://www.blueslugs.com/archives/IMG_0022-thumb.JPG" width="150" height="200" border="0" /></a> Every so often we have a summer so bad all we can do is try to ride it out until things start to change. This has been one of those summers. In addition to the death of my father, three days before the birth of our son, we have also had what we thought were bees in the house. Stephen’s plan was to spray insecticide and consider the situation fixed. I went along with the plan for over a month watching the bees bounce off the walls and die hitting the light fixtures while I fed Nathaniel and tried to watch (bad) television. After a month of two to four bees a day, I had had enough. Stephen caulked the “hole” from the outside and, as I expected, there were more bees… It turns out they weren’t actually coming from all the way outside. The bees appeared more angry than injured and when one flew into Nathaniel’s car seat I thought I might go insane. So in a fit of rage, over the lack of a true solution, I called an exterminator. Little did I know that I was far from a solution…</p>
<p>The first exterminator told me they didn’t handle bees and gave me the number for a bee person. I called and they returned my call as Stephen arrived at home. I could overhear parts of the conversation, “I have one here…let me count again…are you sure…” It turns out that the bees were actually yellow jackets, they were in the wall, and we had a few options – find the hive (2,000 – 3,000) by putting holes in the walls or do nothing and wait for them to die in the walls and the ants to eat them. Oh, we were also told that there would be 10,000 of them by October. As a side note, I am very allergic to yellow jackets. I had an allergy test done last year and was told that I needed to start shots. I didn’t because I wanted to get pregnant but I was given an epi pen, which Benjamin quickly threw away in his “the trash can is a nice place to put things” phase (in case you were wondering – Stephen and I did have the “how can you be so allergic and not be doing anything about it argument”). Here was part of our conversation after Stephen spoke with the exterminator.</p>
<p>D: When can they get rid of the yellow jackets? S: They are going to try to come tomorrow or Friday. D: Did you mention I’m highly allergic and we have two small kids? S: No. D: I’m calling them back.</p>
<p>I dropped Benjamin off at day care the next day while Stephen met with the bee guy. Here is one of my calls home (as you might imagine, I called a few times to see how things were going).</p>
<p>D: Did they find them? S: Bad news. He says they are behind the brick of the fireplace so we just sprayed some stuff in one of the holes. D: What! Don’t let him leave until he’s found the yellow jackets. S: You want him to take out the brick? D: I want an end to this. Get rid of the yellow jackets. I don’t care if you have to take out the whole #!@# fireplace.</p>
<p>So, the exterminator had to come back later to remove the bricks, he couldn’t find them, his boss came at the end of the day, he suggested somewhere else. Then the first guy came back on Friday and cut bigger holes in the wall – this time cutting through to the outside – and we spent the weekend listening to yellow jackets hitting the aluminum foil that covered the holes (they can’t chew through the foil). Meanwhile, I called mosquito abatement and talked with their lab person and another exterminator. Oh, I also scheduled an appointment with my allergist who wouldn’t give me another epi pen without seeing me.</p>
<p>It turns out that you have to remove the hive with bees because the honey will rot. With yellow jackets you spray a substance called drion (a neurotoxin and dessicant) at the entrance and the worker bees take it into the hive to kill the queen and larvae. So we had another exterminator spray on Tuesday and we left for Chicago on Thursday with a cupboard full of three epi pens, bendryl (for the kids and me), and steroids for all. On the way to the airport (as we rush to make our flight) I call the woman who cleans our house (every other week – I dream of more help) to tell her not to clean if she sees anything flying around the house, our neighbor who is checking on the cat requesting a call if she sees anything, and our contractor to beg him to caulk before we get home.</p>Comments on a brief trip to Muskokahttps://blueslugs.com/2004/08/12/comments-on-a-brief-trip-to-muskoka/Thu, 12 Aug 2004 17:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/08/12/comments-on-a-brief-trip-to-muskoka/<p>Muskoka is a vacation region two or three hours’ drive north of Toronto in Canada. I was lucky enough to be able to spend a week or two each summer there, growing up in the late Seventies, at my maternal grandfather’s cottage on Lake Rosseau. My parents now share in a small place near Baysville. It turns out that my grandfather’s family helped establish a church there at the beginning of the twentieth century. Since my uncles were flying in for the centennial celebration, I decided that Benjamin and I should attend as well. I made this decision about five days before the celebration, but between Orbitz and JetBlue put together an itinerary without too much trouble.</p>
<p>But I learned depressing things about Orbitz:</p>
<ul>
<li>Fares listed in an Orbitz search may not actually have ever existed.</li>
<li>Listed fares related to a nonexistent fare may also not have ever existed, and Orbitz makes no attempt to remove them.</li>
<li>Clicking on a dozen imaginary fares as some time period expires is highly annoying. This led me to</li>
</ul>
<p><a href="http://www.jetblue.com/" >JetBlue</a>, which has flat pricing and real fares. (I haven’t flown Southwest, so this was my first low cost airline experience.) JetBlue is a treat: there’s a single class cabin, which I always prefer; Benjamin had his own television screen with Nickelodeon and Boomerang, which is one way to handle toddlers; and—although I didn’t try this—apparently you can bring your own wine onboard and the crew will serve it to you.</p>
<p>Our trip and our visit was brief, but it was great to see family, introduce Ben to his cousins, and experience Muskoka time again. (Plus Canadian food isn’t laced with high fructose corn syrup, so it actually possesses taste beyond oversweetness.)</p>Stephen and Benjamin’s Excellent Adventurehttps://blueslugs.com/2004/08/10/stephen-and-benjamins-excellent-adventure/Tue, 10 Aug 2004 08:25:18 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/08/10/stephen-and-benjamins-excellent-adventure/<p>Stephen and Benjamin left on Thursday for Stephen’s family’s cottage in Northern Ontario. They drove to Oakland, flew Jet Blue to JFK and then Buffalo, spent the night in a hotel, and then drove across the border and towards the Artic Circle. Stephen sent a brief email using the Jet Blue hot zone at JFK. We were both surprised that he had cell phone coverage at the cottage causing me to reconsider its remoteness.</p>
<p>Benjamin greatly enjoyed meeting his family and playing in the lake. It’s unclear if he continued his recent shouting monologue in his sleep, “nooooo [name of child in daycare class]… don’t take that… that’s mine… I need it”, while at the cottage but Stephen said the following monologue in the dark prior to falling asleep greatly amused others.</p>
<p><em>B:</em> Daddy, I can’t see your face.</p>
<p><em>B:</em> I can’t see your face.</p>
<p><em>B:</em> I can’t see my face.</p>
<p>Meanwhile, Nathaniel and I were doing our best to sleep more than four hours at a time and break our 12 diaper-a-day record.</p>Another quiet weekhttps://blueslugs.com/2004/07/29/another-quiet-week/Thu, 29 Jul 2004 17:37:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/29/another-quiet-week/<p>There’s a sizeable troupe of kernel engineers at the <a href="http://conferences.oreillynet.com/os2004/" >O’Reilly Open Source Convention</a> this week, so once again the office is a little quieter. (<a href="http://dtrace.org/blogs/bmc/" >Bryan</a>‘s around, so the office isn’t silent.) Most of the blog entries are <a href="http://blogs.sun.com/roller/page/ahl/20040727#off_to_the_open_source" >“the author has left the building”</a> style, but I’m hoping that those of us who remain chained to our keyboards will get an opportunity to read about how the conference is progressing, particularly regarding tonight’s birds-of-a-feather session on <a href="http://blogs.sun.com/roller/page/tucker/20040618#on_opening_up_solaris" >opening Solaris source</a>.</p>The tantalizing aroma of svcs(1)https://blueslugs.com/2004/07/27/the-tantalizing-aroma-of-svcs1/Tue, 27 Jul 2004 17:32:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/27/the-tantalizing-aroma-of-svcs1/<p>A side point: <code>svcs</code>(1) is pretty fast. Our example from last week was</p>
<pre>$ svcs *milestone*
STATE STIME FMRI
online Jul_23 svc:/milestone/devices:default
online Jul_23 svc:/milestone/single-user:default
online Jul_23 svc:/milestone/name-services:default
online Jul_23 svc:/milestone/multi-user:default
online Jul_23 svc:/milestone/multi-user-server:default
</pre>
<p>Other approaches to service management in Unix-like systems ask each service for their status. On a large system, with a complete representation of its running daemons as services, this can be thousands of <code>fork</code>(2)/<code>exec</code>(2) pairs. That’s not how <code>smf</code>(5) works, and so a command like <code>svcs</code>(1) can be quick:</p>
<pre>$ time svcs *milestone*
STATE STIME FMRI
online Jul_23 svc:/milestone/devices:default
online Jul_23 svc:/milestone/single-user:default
online Jul_23 svc:/milestone/name-services:default
online Jul_23 svc:/milestone/multi-user:default
online Jul_23 svc:/milestone/multi-user-server:default
real 0m0.027s
user 0m0.004s
sys 0m0.009s
</pre>
<p>In fact, we’re not even calling <code>fork</code>(2) to get this report on service status:</p>
<pre>$ truss -t fork,write,exit svcs *milestone*
STATE STIME FMRI
write(1, " S T A T E ".., 29) = 29
online Jul_23 svc:/milestone/devices:default
write(1, " o n l i n e ".., 55) = 55
online Jul_23 svc:/milestone/single-user:default
write(1, " o n l i n e ".., 59) = 59
online Jul_23 svc:/milestone/name-services:default
write(1, " o n l i n e ".., 61) = 61
online Jul_23 svc:/milestone/multi-user:default
write(1, " o n l i n e ".., 58) = 58
online Jul_23 svc:/milestone/multi-user-server:default
write(1, " o n l i n e ".., 65) = 65
_exit(0)
</pre>
<p>I’ll start drawing a suitable architecture diagram…</p>Enabling and disabling serviceshttps://blueslugs.com/2004/07/26/enabling-and-disabling-services/Mon, 26 Jul 2004 21:15:43 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/26/enabling-and-disabling-services/<p>I thought I would show a different example of <code>smf</code>(5) today. Here’s the state of the <code>network/telnet</code> service on my desktop:</p>
<pre></p>
<h1>
svcs -p network/telnet:default
</h1>
<p>
STATE STIME FMRI
online Jul_23 svc:/network/telnet:default
</pre>
</p>
<p>
It’s easy to enable and disable service instances using <code>svcadm</code>(1M):
</p>
<p>
<pre></p>
<h1>
svcadm disable network/telnet
</h1>
<h1>
svcs -p network/telnet:default
</h1>
<p>
STATE STIME FMRI
disabled 13:08:15 svc:/network/telnet:default
</p>
<h1>
telnet localhost
</h1>
<p>
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
</pre>
</p>
<p>
And we can enable it just as easily, too:
</p>
<p>
<pre></p>
<h1>
svcadm enable network/telnet
</h1>
<h1>
svcs -p network/telnet:default
</h1>
<p>
STATE STIME FMRI
online 13:08:29 svc:/network/telnet:default
</pre>
</p>
<p>
Note that while <i>something</i> is declaring telnet service is available, no processes
are associated with the service instance. If we “<code>telnet localhost</code>” from
another window, we can then see the telnet daemon and the login session:
</p>
<p>
<pre></p>
<h1>
svcs -p network/telnet:default
</h1>
<p>
STATE STIME FMRI
online 13:08:52 svc:/network/telnet:default
13:08:52 116400 in.telnetd
13:08:52 116403 login
</pre>
</p>
<p>
Support for enabling and disabling services can be done by calling <code>smf_enable_instance</code>(3SCF) and <code>smf_disable_instance</code>(3SCF),
in addition to the command line interface of
<code>svcadm</code>(1M). Since the framework relays the enable or disable request, we
don’t need privileges to signal any process (or even know which process we might have to
signal to make the update…).
</p>A peek while bug flushinghttps://blueslugs.com/2004/07/22/a-peek-while-bug-flushing/Thu, 22 Jul 2004 19:47:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/22/a-peek-while-bug-flushing/<p>With only a few days of exposure on the varied system configurations around here, there have been a few bugs raised against <code>smf</code>(5), the new service management facility. (I suppose it’s similar to a pack of hounds flushing pheasants during a hunt (although, ultimately, whom the hounds chase and whom a gun is pointed at does differ from a hunt).) What’s more exciting is that, as the kinks get smoothed out, people are instead starting to discuss possibilities. But I thought I’d show a little tiny piece of output instead. Here’s the output of the new services listing command, <code>svcs</code>(1), looking only at the major milestones of the startup process:</p>
<pre>$ svcs *milestone*
STATE STIME FMRI
online 11:03:56 svc:/milestone/devices:default
online 11:04:04 svc:/milestone/single-user:default
online 11:04:07 svc:/milestone/name-services:default
online 11:04:11 svc:/milestone/multi-user:default
online 11:04:18 svc:/milestone/multi-user-server:default
</pre>
<p>What name services am I running? Examine the name services milestone more closely:</p>
<pre>$ svcs -d milestone/name-services:default
STATE STIME FMRI
disabled 11:03:51 svc:/network/ldap/client:default
disabled 11:03:51 svc:/network/nis/server:default
disabled 11:03:51 svc:/network/rpc/nisplus:default
online 11:04:04 svc:/network/nis/client:default
online 11:04:07 svc:/network/dns/client:default
</pre>
<p>NIS, with a bit of DNS for seasoning. What’s it take to be a NIS client these days?</p>
<pre>$ svcs -p svc:/network/nis/client:default
STATE STIME FMRI
online 11:04:04 svc:/network/nis/client:default
11:04:04 100202 ypbind
</pre>
<p>(But you knew that already.) More later.</p>Checklists navigatedhttps://blueslugs.com/2004/07/20/checklists-navigated/Tue, 20 Jul 2004 19:08:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/20/checklists-navigated/<p>The project that <a href="http://blogs.sun.com/roller/page/sch/20040628#quiet_in_the_office" >I mentioned a little while back</a> navigated our engineering processes (or, rather, we steered it through them) and integrated into the Solaris development release last week. Now it’s getting a real shakedown as more and more people in the company get access to the bits. And it will hit the various Beta programs and Software Express shortly.</p>
<p>They’ve found a few bumps and rough edges, but nothing we can’t address. We’re even finding that it’s straightforward to keep the hardened machines hardened. And everyone’s moving fast again, as we don’t have to keep our many, many changes in our heads anymore—people will tell us directly what’s wrong/imperfect/improvable.</p>
<p>The project? It’s the service management facility, which is the other major technology comprising S10’s <a href="https://www.sun.com/bigadmin/content/selfheal/" >Predictive Self-Healing</a> feature.</p>How not to communicate noveltyhttps://blueslugs.com/2004/07/12/how-not-to-communicate-novelty/Tue, 13 Jul 2004 01:49:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/12/how-not-to-communicate-novelty/<p><a href="http://blogs.sun.com/ahl/" >Adam</a> seems to have recovered from his initial embarrassment regarding the alleged lack of novelty around describing a Solaris 9 feature. There’s no such shame here—I look at S9 at one of our Dangerfield releases (along with S7), that didn’t get the respect it deserved. (There’s no comparison to S10.)</p>
<p>I mentioned in a <a href="http://blogs.sun.com/roller/page/sch/20040708#why_projects" >previous entry</a> that I wasn’t particularly proud of how I had talked about S9RM. In this vein, I dug up a paper I wrote for SUPerG 2001 in Amsterdam. <a href="http://www.sun.com/datacenter/superg/" >SUPerG</a> is a Sun conference for datacenter customers, and focusses a lot on best practices for large Solaris systems. I was pretty giddy after S9RM wrapped up, and wrote a paper to present there, on the various mechanisms we envisioned and were in the process of implementing. It was received very quietly.</p>
<p>While I was writing the paper, I was trying out various text analyzers. One that I used was the <code>Lingua::EN::Fathom</code> module, available at <a href="http://www.cpan.org/" >CPAN</a>. The results?</p>
<pre>13 $ perl fathom.pl superg-2001-paper.ltx
[ ... vocabulary list elided ... ]
Number of characters : 19918
Number of words : 2865
Percent of complex words : 26.21
Average syllables per word : 1.9763
Number of sentences : 104
Average words per sentence : 27.5481
Number of text lines : 353
Number of blank lines : 101
Number of paragraphs : 69
READABILITY INDICES
Fog : 21.5044
Flesch : 11.6817
Flesch-Kincaid : 18.4737
</pre>
<p>The Fog scale informally corresponds to the number of years of education an average reader needs to read the text once and understand it. (21.5 is somewhere in graduate school.) The Flesch scale rates text on a 100 point scale; higher is better, with 60 being a reasonable target. (It’s safe to say that 11 is not in the vicinity of 60.) The Flesch-Kincaid is meant to correlate roughly with the U.S. school grade: 18 (graduate school again) is bad. The indices agree: this text is not good, or clear, writing.</p>
<p>So this document is a pretty solid indicator that, indeed, I didn’t do a good job explaining the value of resource management. For posterity, I’m making <a href="http://blogs.sun.com/roller/resources/sch/superg-2001-paper.pdf" >the paper available</a>. Now I work harder on not having sentences that are more than twenty seven words long, or use 25% complex words—and if there’s a resource management topic you would like to see examined, feel free to tell me and I’ll try to write something understandable.</p>
<p align="right">
<i>And, yes, Tim and <a href="http://blogs.sun.com/tucker" >Andy</a> are blameless.</i>
</p>Endorsing publicradiofan.comhttps://blueslugs.com/2004/07/08/endorsing-publicradiofan-com/Thu, 08 Jul 2004 18:45:07 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/08/endorsing-publicradiofan-com/<p>I stumbled across <a href="http://www.publicradiofan.com" >publicradiofan.com</a>, amongst all of the various useless internet radio sites out there. (Radio reception inside my building isn’t great.) This site is a gem. It lets you select sites by show, by category, by media streams provided, and more. Program grids, grouped listings, adjustable time windows. Very solid.</p>
<p>(The media stream filter is very useful if you’re running Solaris x86, as your streaming options are somewhat limited. I’ve decided that if a local public radio station isn’t willing to provide MP3 or OggVorbis streams then I won’t support them. And I was pleased to see that some of the stations that I support do indeed provide “open” streams. And some don’t—a decision to make?)</p>
<p>Recommended.</p>Why projects? Why not?https://blueslugs.com/2004/07/08/why-projects-why-not/Thu, 08 Jul 2004 18:11:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/08/why-projects-why-not/<p>One of the questions I often ask myself is “why aren’t more sites using projects?”. As I wander from forum to forum, I regularly see people saying, “I want to consolidate three [application server] instances on my system”—or two [database] instances or <em>n</em> applications. Many of these applications need to run with identical credentials (user id, group id, authorizations, privileges, etc.) and are only distinguishable by their working directory, environment variables, or the like. Reading these requests is a bit frustrating, as this scenario is one of the key motivations we had when introducing the <code>project</code>(4) database—and I can only conclude that it’s my failure to really communicate its utility.</p>
<p>Projects let you assign a label with a specific workload. In S8 6/00 and all subsequent releases, you can explicitly launch a workload with its appropriate project using the <code>newtask</code>(1) command. If extended accounting has been activated using <code>acctadm</code>(1M) with one of the standard record groupings, then the processes within that workload will include their project ID. Writing an accounting record on every process exit can impact some workloads, so you can optionally choose to only write records when every task exits. A task is a new process collective that groups related work within a workload (so it could be a workload component, like a batch submission). <code>acctadm</code>(1M) will report on the current status of the extended accounting subsystem, if invoked without arguments:</p>
<pre>$ acctadm
Task accounting: inactive
Task accounting file: none
Tracked task resources: none
Untracked task resources: extended
Process accounting: inactive
Process accounting file: none
Tracked process resources: none
Untracked process resources: extended,host,mstate
Flow accounting: inactive
Flow accounting file: none
Tracked flow resources: none
Untracked flow resources: extended
</pre> The resource line is reporting what accounting resource groups and resources we can include in each record. We can expand the resource groups for each type of accounting using the
<p><code>-r</code> option.</p>
<pre>$ acctadm -r
process:
extended pid,uid,gid,cpu,time,command,tty,projid,taskid,ancpid,wait-status,zone,flag
basic pid,uid,gid,cpu,time,command,tty,flag
task:
extended taskid,projid,cpu,time,host,mstate,anctaskid,zone
basic taskid,projid,cpu,time
flow:
extended saddr,daddr,sport,dport,proto,dsfield,nbytes,npkts,action,ctime,lseen,projid,uid
basic saddr,daddr,sport,dport,proto,nbytes,npkts,action
</pre> So we can enable the extended task record by invoking
<p><code>acctadm</code>(1M) like</p>
<pre># acctadm -e extended task</p>
<h1>
acctadm -E task
</h1>
<h1>
acctadm -f /var/adm/exacct/task
</h1>
<p>
</pre>
<p>In S10, you can optionally enable accounting without having it write to a file, such that the records are retrievable using
<code>getacct</code>(2).</p>
</p>
<p>
Of course, that’s all about accounting, but projects are useful even if you’re not interested in the long term resource
consumption of your workloads. The project ID is useful for isolating your workload using conventional <code>/proc</code>-based tools
like <code>prstat</code>(1M) and <code>pgrep</code>(1), as well as with DTrace. For instance to see only one’s own projects,
you can use the -J option to <code>pgrep</code>.
<pre>$ pgrep -lf -J user.sch
728069 /usr/bin/bash
728027 /usr/bin/bash
125169 /usr/bin/bash
</pre>
<p>To see workloads on the system, you can use</p>
<p><code>prstat</code>‘s -J option, which aggregates the activity by project ID, as well as
displaying the most active processes:</p>
<pre>$ prstat -c -J user.sch 1 1
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
653322 xx 19M 17M cpu2 0 3 166:34:10 12% setiathome/1
911046 xx 19M 17M cpu5 0 3 170:28:53 12% setiathome/1
668697 xx 19M 17M cpu4 0 3 138:53:14 12% setiathome/1
100378 daemon 2352K 1944K sleep 60 -20 30:18:23 0.2% nfsd/5
125214 sch 4472K 4152K cpu3 1 0 0:00:00 0.0% prstat/1
100066 root 7872K 6736K sleep 29 0 2:20:42 0.0% picld/13
125169 sch 2768K 2416K sleep 1 0 0:00:00 0.0% bash/1
100156 root 91M 36M sleep 59 0 0:46:59 0.0% poold/8
100249 root 6680K 4848K sleep 1 0 8:02:46 0.0% automountd/2
100254 root 5776K 3552K sleep 59 0 0:00:01 0.0% fmd/10
100262 root 4024K 3424K sleep 59 0 0:19:40 0.0% nscd/57
100265 root 1248K 776K sleep 59 0 0:00:00 0.0% sf880drd/1
100184 root 2288K 1384K sleep 1 0 0:00:00 0.0% ypbind/1
100172 daemon 2680K 1704K sleep 58 0 1:07:32 0.0% rpcbind/1
100158 root 2216K 1336K sleep 59 0 0:00:26 0.0% in.routed/1
PROJID NPROC SIZE RSS MEMORY TIME CPU PROJECT
130 3 56M 51M 0.3% 475:56:17 37% background
0 61 341M 168M 1.0% 43:21:28 0.3% system
36565 4 13M 11M 0.1% 0:00:01 0.1% user.sch
105403 14 39M 30M 0.2% 0:00:03 0.0% user.xxxxxxx
77194 17 74M 62M 0.4% 0:03:10 0.0% user.xxxxxx
Total: 133 processes, 279 lwps, load averages: 3.07, 3.07, 3.04
</pre>
<p>(This system’s pretty idle during our U.S. shutdown, so it’s doing its best to find extraterrestrial customers.)</p>
</p>
<p>
To limit your DTrace predicates to only a project of interest, use the <code>curpsinfo</code> built-in variable to access the
<code>pr_projid</code> field, like
<pre>/curpsinfo->pr_projid == $projid && ..../
</pre>
<p>where I’ve also used the</p>
<p><code>$projid</code> scripting macro, which expands to the result of <code>curprojid</code>(2) for the
running DTrace script. You could instead explicitly enter your project ID of interest, or use one of the argument macros
if writing a script you expect to reuse.</p>
</p>
<p>
Projects also let you place resource controls on your workload, establish its resource pool bindings, and more. We’ll make it
easier to use them with the forthcoming service management facility. But I’ll summarize: projects are
a precise and efficient way to label your workloads (as opposed to pattern matching on arguments or environment variables). If you
are consolidating workloads, either because of machine eliminations, organizational mergers, or other reasons, they are definitely worth considering. If you think there’s a way to make them more applicable to your work, please let me know.
</p>Answer to sort(1) puzzle #1https://blueslugs.com/2004/07/02/answer-to-sort1-puzzle-1/Fri, 02 Jul 2004 19:13:25 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/02/answer-to-sort1-puzzle-1/<p align="center">
<b><code>/usr/bin/sort -ur -k 1,1n -k1,2nr input.d</code></b>
</p>
<p>Well, I underspecified that problem slightly; the output I was looking for is</p>
<pre>1305 6565
1401 8192
1408 2312
</pre>
<p>which the anonymous poster’s invocation will give. Alan’s invocation gets the correct line, but has the first field backwards (if I had specified the problem fully). You could, of course, send Alan’s output through another <code>sort</code>(1) stage to order the first field. The key to this puzzle is knowing that (a) <code>sort</code>(1) does a final comparison of the entire line using <code>strcoll</code>(3C), (b) that fields with specific modifiers ignore global modifiers (like the <code>-r</code> option here), and (c) that the Solaris implementation of <code>sort</code>(1) will output only the first unique line it finds in the collated sequence. The first two of these points are in the manual page; the last requires some experimenting.</p>
<p><strong>True story:</strong> This puzzle grew out of a service request where a customer was moving from a platform where the last unique line was the one displayed and needed to modify their script to produce the same output on Solaris.</p>
<p align="right">
<i>Please comment if you want more puzzles, or if you think I should stop before getting started!</i>
</p>sort(1) puzzle #1https://blueslugs.com/2004/07/02/sort1-puzzle-1/Fri, 02 Jul 2004 09:26:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/07/02/sort1-puzzle-1/<p>(I’m waiting for a build to finish, so here’s a small Solaris <code>sort</code>(1) trick.)</p>
<p><strong>Question:</strong> I have the following data file</p>
<pre>1401 8192
1401 3487
1401 0807
1305 3471
1305 6565
1408 2312
1408 1233
</pre>
<p>Using only <code>sort</code>(1), how do I generate a file sorted by the first field, with only the highest valued second field for each first field value?</p>
<p><em>Note that the unique line behaviour of <code>sort</code>(1) isn’t well specified, so versions from other platforms may not be able to do this trick.</em></p>Resource controls and agent-influenced designhttps://blueslugs.com/2004/06/30/resource-controls-and-agent-influenced-design/Wed, 30 Jun 2004 18:33:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/30/resource-controls-and-agent-influenced-design/<p><a href="http://blogs.sun.com/eschrock/" >Eric</a> mentioned the <a href="http://blogs.sun.com/roller/page/eschrock/20040627" >agent LWP technique</a> a few days ago. I thought I would point out that the <a href="http://docs.sun.com/db/doc/817-1592/6mhahuoia?a=view" >resource controls facility</a> was expressly designed with the agent’s capabilities in mind. This choice lets us have an interface like:</p>
<pre>int setrctl(const char *controlname, rctlblk_t *old_blk, rctlblk_t *new_blk, uint_t flags);
</pre>
<p>where the action of setting a resource control value applies to the current process or a process collective that encloses it (like a task, project, or zone). (As opposed to an interface that requires an (idtype_t, id_t) pair to specify its target.) Making this choice means we don’t end up having a lot of difficult locking scenarios, as we just insert an agent LWP into a victim process to modify the settings on its task.</p>
<p>Resource controls, when they were introduced in S9, brought in some new useful controls, like <code>task.max-lwps</code> and <code>project.cpu-shares</code>, as well as handling both <code>ulimit</code>(2) and <code>setrlimit</code>(2) calls in a compatible fashion. But S10 has seen the introduction of a number of very useful controls: for instance, the System V IPC tunables have been replaced by a set of resource controls, so that you can dynamically change these settings (and apply different constraints to different projects) without a reboot. Dave Powell deserves the credit for this much appreciated piece of work. New controls associated with cryptographic capabilities, zones, and general resource handling have also appeared. And Steve Lawrence spent a fair bit of time looking at making <code>prctl</code>(1) output actually human-readable.</p>
<p>So it’s all much improved from the initial work.</p>Assembling a collective viewpointhttps://blueslugs.com/2004/06/29/assembling-a-collective-viewpoint/Tue, 29 Jun 2004 20:33:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/29/assembling-a-collective-viewpoint/<p><a href="http://dtrace.org/blogs/bmc/" >Bryan</a>
fielded some questions at USENIX today, and in doing so
<a href=“<a href="http://blogs.sun.com/roller/page/bmc/20040629%22">http://blogs.sun.com/roller/page/bmc/20040629"</a></p>
<blockquote>
<p>augments</a> some of <a
href="http://blogs.sun.com/tucker/" >Andy</a>’s
<a
href=“<a href="http://blogs.sun.com/roller/page/tucker/20040618%22">http://blogs.sun.com/roller/page/tucker/20040618"</a>
first comments</a> on why we are pursuing an open
source development model for Solaris.</p>
</blockquote>Quiet in the officehttps://blueslugs.com/2004/06/28/quiet-in-the-office/Tue, 29 Jun 2004 06:56:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/28/quiet-in-the-office/<p>With the DTrace folks at <a href="http://usenix.org/" >the USENIX Technical Conference</a>, a contingent at <a href="http://java.sun.com/javaone/" >JavaOne</a>, and the remainder focussed on finishing their work for Solaris 10, it’s pretty quiet at the office. Oh, except for the fact that my team’s <a href="https://www.sun.com/bigadmin/content/selfheal/" >multi-year project</a> is wending its way through the final stages of the processes surrounding Solaris integration. Checklist, checklist, test transcript, architectural updates, performance results, status meetings. And maybe one or two more checklists. But we’re almost there.</p>Coffee (and other scents) in the airhttps://blueslugs.com/2004/06/28/coffee-and-other-scents-in-the-air/Tue, 29 Jun 2004 03:04:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/28/coffee-and-other-scents-in-the-air/<p>Based on the construction and openings going on, I suspect Redwood City must have crossed some critical threshold in terms of average income or population. We’ve gone from one Starbucks and one Starbucks counter (at Safeway) to three standalone stores and two counters (one in Target). (I suspect that there’s a law of Starbucks to be formulated here.) Whole Foods has started renovating the former Albertson’s at El Camino Real and Jefferson Avenue, while Trader Joe’s is building a new store just north of the Redwood City–San Carlos border. Pasta Pomodoro and T-Mobile have opened new sites as well.</p>
<p>It looks like everything should be ready by mid-fall. A year past that, the downtown cinemas should open (which will be one of the few Peninsula theatre complexes within easy walking distance of the San Francisco–San Jose Caltrain line). If there is restaurant development to match, Redwood City could be a very interesting small downtown in two years. But right now it’s changing enough that I’ll be driving to Menlo Park a lot less often.</p>Resource pools and XML/XSLT gymnasticshttps://blueslugs.com/2004/06/27/resource-pools-and-xmlxslt-gymnastics/Mon, 28 Jun 2004 07:58:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/27/resource-pools-and-xmlxslt-gymnastics/<p>Since I mentioned resource pools in my previous post, I thought I should also point out that <a href="http://blogs.sun.com/roller/page/garypen/20040623" >Gary Pennington</a> has been presenting some resource pool tricks. Since resource pools uses XML as a marshallable configuration format, you can apply the many “X*” technologies to the document to realize alternate views of an active configuration.</p>Why predictable?https://blueslugs.com/2004/06/25/why-predictable/Fri, 25 Jun 2004 22:08:10 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/25/why-predictable/<p>I titled my [Sun] blog “Predictable” more out of genuine interest about making systems more so, than any particular cynicism about how things (any things) turn out. We have a pretty established language about desirable system attributes: reliability, availability, serviceability, and performance. Predictability is a courtier of all of these, but really doesn’t dominate any of them–it’s almost a separate quality.</p>
<p>We’ve been <a href="http://wwws.sun.com/software/solaris/ds/ds-srm/" >working on resource management</a> for a while now, with an eye to allowing the construction of more predictable servers. Most of this work has been adding various mechanisms to the OS to prevent resource denial of service opportunities, or mechanisms that reserve or fairly schedule resources among competing services, such that the system can respond fairly smoothly until we reach some level of overcommitment. Now that we’ve got the basic mechanisms (and more are coming), we can start to examine how we can layer automation on top of them, and push out the boundary where true overcommitment occurs, without administrator intervention.</p>
<p>The current edition of <a href="http://wwws.sun.com/software/solaris/solaris-express/" >Solaris Express</a> contains the first of these features, <a href="http://docs.sun.com/db/doc/817-1592?q=dynamic+resource+pools" >dynamic resource pools</a>, which you can use in combination with zones to have your consolidated systems smoothly react and reassign processors based on system load and relative importance. (You can also use the fair share scheduler with zones, if you don’t need to reserve or cap some absolute amount of processing capability for each zone).</p>
<p>We now have a system that can respond elastically across a wider range of load scenarios, without compromising some minimal expectations regarding quality of service with respect to one resource. Our solution, however, can handle multiple resources, and we’ll see how that “predictability product” allows you to run your systems closer to maximal utilization in the future.</p>
<p>There are lots of problems in this space, connected with specific operating system resources (and the notion of a resource itself), how resources map from one layer in a stack to the next, how end-to-end scenarios play out within a participating host, … But it’s clear that predictability engineering is a piece of operating systems development–and, if you can get some time to think about it, it’s a lot of fun.</p>A little quiethttps://blueslugs.com/2004/06/24/a-little-quiet/Thu, 24 Jun 2004 22:48:34 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/24/a-little-quiet/<p>There’s now at least <a href="http://blueslugs.com/archives/2004_06.html#000076" class="broken_link" rel="nofollow">two good reasons</a> for my hiatus.</p>Questions for the audience: visible project leadershttps://blueslugs.com/2004/06/24/questions-for-the-audience-visible-project-leaders/Thu, 24 Jun 2004 22:32:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/24/questions-for-the-audience-visible-project-leaders/<p>One of the interesting attributes of open source projects is that, once they reach a certain critical size, they still may or may not have a single, visible leader. I suppose by a visible leader I mean an individual that the project’s community views as having authority over the project’s direction, architecture, and implementation. For other projects, there is a public or private group that possesses that authority. We’ve also seen projects, either at the time of a fork or in their normal course, transition from one leadership class to the other.</p>
<p>The primary question that we might formulate is “does the presence of a single, visible leader affect the chances for success of an open source project?”. But this doesn’t really probe the issue very deeply, as success for an open source project can be defined very differently by the project, by an external observer, or by a customer or investor in the organization(s) that use or sponsor the project. We could define success by size of the user community, increase in likelihood of the project’s longevity, introduction of desired features or elimination of defects, or grant renewals, and so forth.</p>
<p>If we look at the first of these, we might conclude that the size of the user community, although connected to project utility and quality, is probably also influenced by communications about the project. Since stories about individuals are usually more compelling than those about committees, perhaps it’s easiest to take advantage of the comfortable “leader-as-project” viewpoint and let those stories–be they formal news coverage or blogging or word of mount–circulate. But it’s less clear that the identification of the individual with the project (“I am the state.”) and the authority for project direction need to travel together.</p>
<p>What do you think? Does the leadership structure (or even the celebrity of the author) associated with a project influence your choice of that software, open source or otherwise? Are certain structures more appealing from your perspective?</p>
<p>Thanks.</p>A menu of many buffershttps://blueslugs.com/2004/06/24/a-menu-of-many-buffers/Thu, 24 Jun 2004 20:05:47 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/24/a-menu-of-many-buffers/<p>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.</p>
<p>I tried a few of the <a href="http://vim.sf.net/" >publically available scripts</a>, and found <a href="http://lanzarotta.tripod.com/vim.html" >BufExplorer</a> 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.</p>
<p>Recommended.</p>Nathaniel arrivedhttps://blueslugs.com/2004/06/22/nathaniel-arrived/Tue, 22 Jun 2004 10:09:27 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/22/nathaniel-arrived/<p>(I suppose I glossed over this in the <a href="http://blueslugs.com/wordpress/index.php/archives/2004/06/21/feel-the-cars-go-by/" >flat tire</a> story.) Here’s a shot of Benjamin inspecting his new younger brother the afternoon of his birth:</p>
<img alt="nate_ben.jpg" src="http://www.blueslugs.com/archives/news-062004/nate_ben.jpg" width="267" height="200" border="0" />
<p>We’re sleeping occassionally, in case you’re wondering.</p>Second stream of consciousnesshttps://blueslugs.com/2004/06/21/second-stream-of-consciousness/Mon, 21 Jun 2004 19:52:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/21/second-stream-of-consciousness/<p>I figured I should mention that I’m going to make most of my Solaris-specific comments on <a href="http://blueslugs.com" >my blog</a> at <a href="http://blogs.sun.com/" >blogs.sun.com</a>. We’ll see if I can keep the topics meaningful and interesting on both, without halving my posting rate on each.</p>Feel the cars go byhttps://blueslugs.com/2004/06/21/feel-the-cars-go-by/Mon, 21 Jun 2004 19:45:45 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/21/feel-the-cars-go-by/<p>Had a brief moment of suburban excitement: Dina, Nathaniel, and I were on our way to an afternoon appointment when our driver’s side rear tire blew out. On the soon-to-be-five-lanes-wide U.S. 101 South, in East Palo Alto. Busy.</p>
<p>Nathaniel will turn a week old soon, so he wasn’t much going to be much help; Dina had to stay inside the car with him. The AAA estimate was forty-five minutes, so I jumped out and decided to learn how to change the tires on our wagon.</p>
<p>The kit included a fold-up reflective safety triangle, which I put about five yards behind the car. That made me feel about one and a half times safer, since the cars were whooshing past about 10 feet behind me. I positioned the jack at the little arrow on the undercarriage that showed the jacking position. The car raised fairly easily, and I was on to worrying about whether I could generate enough leverage to loosen the lugnuts. The tire iron, at ten inches, seemed short, but I was able to break the tension on the bolts with a bounce on the iron at 90 degrees, despite being buffeted by the occasional semi or panel van.</p>
<p>I pulled off the tire and slid it into the included protective tire bag (an oversize plastic garbage bag) and installed the puny limited-use spare. We ended up being only ten minutes late.</p>
<p>(Quiet kudos to Saab for an excellent set of tire changing tools, indicators, and instructions.)</p>Richard Venezky 16 April 1938 - 11 June 2004https://blueslugs.com/2004/06/11/richard-venezky-16-april-1938-11-june-2004/Sat, 12 Jun 2004 03:49:32 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/11/richard-venezky-16-april-1938-11-june-2004/<p>It is with great sadness and honor that I announce the death of my father,
Richard Lawrence Venezky, on June 11th, 2004. My father was an amazing man who
excelled in so many ways and I’m grateful to have had the opportunity to
not only write <a href="http://blueslugs.com/rlv/" >updates</a> on his
condition but also to receive many wonderful comments in return. I have learned
so much about my father over the past year and a half. Your stories and well
wishes verify my feelings that he was a loving father, a caring husband,
a loyal friend, a committed mentor, an inspiring teacher, an honored scholar,
an avid collector, and a gifted gardener. He greatly enriched our lives and we
will all miss him dearly. I would love to be able to sit with each and every
person to record all the stories and I hope you will continue to email me with
thoughts about Dad.</p>
<p>I have many stories to share of my own too.
I grew up thinking that adulthood involved marriage to someone you loved filled
with fun parties in junkyards and vacations to exciting places, that being
well-read with multiple hobbies was important, and that no matter how brilliant
or famous someone was, they were still just a person. He made these things look
so easy that I thought one day it would all just happen for me too. I now
understand that he worked hard to make these things happen but that he enjoyed
what he did so much that it never looked like work.</p>
<p>In the past few weeks I have thought about the pain of losing Dad and come to
realize how fortunate I am to have had him in my life for so long. He fought
the cancer with such dignity and strength that we really thought there was
nothing he couldn’t do. I realize that there will be many unanswered
questions but that one of the gifts my father gave to me was the determination
to learn on my own and the joy in doing so. I will always want to know exactly
how I can best educate my children or how he made his garden grow but I will
also take pleasure in knowing that he is proud of me as I go through this
process of discovery. Stephen and I are going to work to make sure that our
children know Dad and have some of the same benefits I have had growing up.
I will think of him every time I work in the garden, eat a vegetable, read
a book, or learn a new skill. Stephen, Benjamin, and I love you Dad.</p>A bug from a bloghttps://blueslugs.com/2004/06/10/a-bug-from-a-blog/Fri, 11 Jun 2004 07:50:19 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/10/a-bug-from-a-blog/<p><a href="http://blogs.sun.com/" >blogs.sun.com</a> has already improved Solaris a bit: <a href="http://blogs.sun.com/roller/page/moazam/20040610#solaris_which_command_does_not" >Moazam Raja</a> mentioned that <code>which</code>(1) isn’t doing what one might expect. The newly minted bug, 5061831, will give us a place to discuss how we might fix this issue, gives one suggested fix, and a workaround using ksh(1)’s whence builtin.</p>Introductionshttps://blueslugs.com/2004/06/10/introductions/Thu, 10 Jun 2004 23:52:31 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/10/introductions/<p>Although I’ve been <a href="http://blueslugs.com" >blogging privately</a>
and <a href="http://www.het.brown.edu/people/hahn/" >on the web statically</a>
for a while now, it’s pleasant to have a location to discuss Solaris and
Sun specific information. I work on a couple of different projects, of varying
sizes; in the past, I’ve done (I believe) interesting work in resource
management, routine work fixing various bugs, and foolish things like rewriting
<code>sort</code>(1) from scratch. (I’m particularly proud of the fact that I (with
much support) integrated Perl into Solaris 8, and then found <a
href="http://bleaklow.com/" class="broken_link" rel="nofollow">someone much
more capable</a> to make that a particular competency of Solaris.)</p>
<p>How Sun participates, specifically via its technical staff, in community
development situations is of much interest to me; trust me when I say
I’ll revisit this topic later.</p>
<p><em>Small talk:</em> Presently, I’m an engineer in the Solaris Kernel group.
I moved from Providence, RI to the Bay Area when I started work for Sun in
1997. (I was studying computational high energy physics at Brown, but decided
not to pursue the series of post-doc positions traditional at the time.) My
undergraduate degree is in engineering science at the University of Toronto.
I was born, raised, and primarily and secondarily educated in southwestern
Ontario.</p>Ion-2 and VNChttps://blueslugs.com/2004/06/03/ion-2-and-vnc/Fri, 04 Jun 2004 01:56:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/03/ion-2-and-vnc/<p>I use <a href="http://iki.fi/tuomov/ion/" class="broken_link" rel="nofollow">ion</a> 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 <a href="http://www.blastwave.org" class="broken_link" rel="nofollow">blastwave</a>, 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.</p>
<p>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 <code>$HOME/.Xdefaults</code> file:</p>
<pre>vncviewer.grabKeyboard: true
vncviewer.fullScreen: true
</pre>
<p>For the latter case, you could instead use the <code>-fullscreen</code> 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.</p>
<p><strong>Update (9 June):</strong> Five minutes saved already; see Comments.</p>CEOs lack midichlorians?https://blueslugs.com/2004/06/01/ceos-lack-midichlorians/Wed, 02 Jun 2004 00:00:56 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/06/01/ceos-lack-midichlorians/<p>A peculiar quotation from <a
href="http://management.itmanagersjournal.com/management/04/05/31/1733229.shtml" >an
interview with Red Hat’s Matthew Szulik</a>:</p>
<blockquote>
<p>The issue of Intel versus AMD ultimately goes back to the distribution
partner; if companies like Hewlett-Packard, for example, can be successful with
the AMD parts, then AMD will benefit. Another issue for AMD will be dealing
with Darth Vader in Redmond and Jabba the Hutt in Santa Clara.</p>
</blockquote>
<p>(Intel is headquartered in Santa Clara, although I don’t think
“Santa Clara → INTC” is standard usage like “Redmond
→ MSFT”.) But when did sloppy Star Wars analogies become acceptable
CEO material? I can only think that there was a hapless PR liaison grateful
that an even-more-confusing Axis of Evil analogy (“… between the
North Korea in Redmond and…”) had been avoided.</p>
<p>Strange.</p>Ministry of Education picks StarOfficehttps://blueslugs.com/2004/05/28/ministry-of-education-picks-staroffice/Fri, 28 May 2004 23:02:35 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/05/28/ministry-of-education-picks-staroffice/<p>I was happy to see that the Ontario Ministry of Education has <a href="http://www.globetechnology.com/servlet/story/RTGAM.20040527.gtsun0527/BNStory/Technology/?query=staroffice" class="broken_link" rel="nofollow">selected StarOffice</a> as its standard office suite. As someone who grew up a test subject under the Ministry, by learning computing on such systems as</p>
<ul>
<li>Commodore PET, with Waterloo Structured Basic as an alternate environment,</li>
<li>IBM PCs with Waterloo Ports as the network applications manager, and</li>
<li>the <a href="http://www.100megspopup.com/redawa/BIC/BIC2.html" >Burroughs ICON</a> running QNX,</li>
</ul>
<p>I’m happy to see some element of real standardization. (Plus a few other exposures to Radio Shack TSR Model 1s through to CoCos, a DEC PDP-11, and submitting Fortran jobs to the mainframe at Waterloo in various classes. It seems romantic now: a new, completely different system every year (or even every semester)…)</p>
<p>The ICON was my favorite social hack: it came preconfigured with both administrator and teacher accounts <em>in both English and French</em>. A variant of RTFM gives one root privilege: read the French manual. Ultimately, I got in trouble for this, although trouble followed from viewing the administration as adversaries than causing any actual damage.</p>Dina passes government testhttps://blueslugs.com/2004/05/26/dina-passes-government-test/Thu, 27 May 2004 04:59:21 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/05/26/dina-passes-government-test/<p>Dina passed the U. S. Department of the Interior’s Federal Information Systems Security Awareness Online Course. Huzzah.</p>Procyon lotor rules our backyardhttps://blueslugs.com/2004/05/07/iprocyon-lotori-rules-our-backyard/Fri, 07 May 2004 09:15:39 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/05/07/iprocyon-lotori-rules-our-backyard/<p>We recently uprooted our home office, transplanting it from a bedroom in the front house to the room attached to our garage. With the garage building at the back of the lot, I now have a clear view of the yard. Tonight the sensor lights tripped and I had a good staring exchange with a pair of raccoons. The Redwood City raccoon is no <a href="http://en.wikipedia.org/wiki/Binturong" ><i>Arctictis binturong</i></a>, but these two were rudely healthy and (I argue) nonplussed to be both illuminated and observed. (I’ll skip over any rivalry with the various, large-lunged cats who’ve decided that the side of our house is the neighbourhood’s romantic nightspot—the healthy trash around here guarantees a champion’s diet to any raccoon with a bit of motivation, making him or her more than a match to a typical kitty.)</p>
<p>Since I now have prime suspects for last summer’s tragic shredding of Ben’s inflatable swimming pool, I’ll see if I can get a picture of these two in the coming weeks.</p>sun.com survey on default secure installhttps://blueslugs.com/2004/05/07/suncom-survey-on-default-secure-install/Fri, 07 May 2004 08:55:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/05/07/suncom-survey-on-default-secure-install/<p>Here’s an interesting survey: <a href="http://jdl.sun.com/webapps/survey/display?survey_id=3320" class="broken_link" rel="nofollow">Sun wants to know how secure the default install for Solaris 10 should be</a>. If you listened to the <a href="http://www.blueslugs.com/archives/2004_05.html#000067" class="broken_link" rel="nofollow">NetTalk on Wednesday</a>, then you might be able to guess that your input here probably means more work for my team and me.</p>
<p>(I suppose I should really split work blogging from home blogging. Oh, well: work’s particularly fun right now.)</p>Stephen on NetTalk panel at sun.comhttps://blueslugs.com/2004/05/04/stephen-on-nettalk-panel-at-suncom/Wed, 05 May 2004 06:16:38 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/05/04/stephen-on-nettalk-panel-at-suncom/<p>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 <a href="http://see.sun.com/cgi-bin/gx.cgi/mcp?q=STaW0nTE$jqQbb" class="broken_link" rel="nofollow">register for the live session (or for details about hearing a replay later).</a></p>
<p>(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…)</p>Elegant assemblyhttps://blueslugs.com/2004/04/14/elegant-assembly/Wed, 14 Apr 2004 09:02:58 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/04/14/elegant-assembly/<p>I had an enjoyable half hour assembling a piece of furniture from IKEA, before returning for some late night text composition. It goes much faster with a power screwdriver and a good set of bits. (Also, a 16oz hammer makes tapping in dowels directly satisfying.) But if you want to grab hold of ingenuity in a tangible sense, go build some <a href="http://www.cubitec.co.il/system.htm" class="broken_link" rel="nofollow">Cubitec</a>.</p>
<p>Dina and I are building a wall’s worth to hold the books in the office; great fun.</p>
<p>Recommended.</p>Sounds againhttps://blueslugs.com/2004/04/09/sounds-again/Fri, 09 Apr 2004 19:38:42 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/04/09/sounds-again/<p><img alt="hercules-pocket.gif" src="http://www.blueslugs.com/archives/images/news-042004/hercules-pocket.gif" width="150" height="124" border="0" align="left" />I’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.</p>
<p>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.</p>
<p>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.)</p>
<p>Recommended.</p>
<p>References:</p>
<ul>
<li><a href="http://us.hercules.com/products/showpage.php?p=84&b=1&f=1" class="broken_link" rel="nofollow">Hercules Gamesurround product page</a></li>
<li><a href="http://ecoustics-cnet.com.com/Hercules_Gamesurround_Muse_Pocket_USB/4505-3022_7-30690099.html?subj=Hercules+Gamesurround+Muse+Pocket+USB&part=ecoustics-cnet" >CNET reviews the Gamesurround</a>, and provides a larger picture. (The included picture is from the Hercules site.)</li>
<li><a href="http://docs.sun.com/db/doc/816-1387/6m7qdms7i?a=view" >Solaris 8 2/04 USB Administration Guide</a> on USB Audio</li>
</ul>The joy of :bufdohttps://blueslugs.com/2004/01/27/the-joy-of-bufdo/Tue, 27 Jan 2004 19:41:50 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2004/01/27/the-joy-of-bufdo/<p>If you use <a href="http://vim.sf.net/">vim</a>, then you may have discovered
that its documentation, while extensive, is nearly impenetrable. One operation
I often have to do is</p>
<pre>$ for x in [list of files]; do
> sed -e '[some substitution]' < $x > $x.bak
> mv $x.bak $x
> done
</pre>
<p>since most Unix-based editors don’t offer multi-file replace. It turns out that, sometime between 5.3 and 6.x, vim has added the
<code>:bufdo</code> command, so this operation is much simpler as</p>
<ul>
<li>you needn’t leave the editor, and</li>
<li>you needn’t maintain a list of files, provided you’ve opened them
all in the editor.</li>
</ul>
<p>I’m posting to share this small tip, since when I canvassed a few folks
at the office, no one seemed to have heard of <code>:bufdo</code>. (See
“impenetrable documentation”, above.)</p>Dina gives poster at AGUhttps://blueslugs.com/2003/12/09/dina-gives-poster-at-agu/Wed, 10 Dec 2003 02:40:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/12/09/dina-gives-poster-at-agu/<p>Dina presented her poster, “Creating Access to Data of Worldwide Volcanic Unrest”, at the AGU 2003 Fall Conference (in San Francisco) today.</p>A call for modern phoneshttps://blueslugs.com/2003/12/07/a-call-for-modern-phones/Mon, 08 Dec 2003 04:31:04 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/12/07/a-call-for-modern-phones/<p>I sent the following email to Design Witin Reach. It’s opinionated, making an almost drunken attempt to spray bile at manufacturers and retailers in various markets–but they have each failed in mediocre fashion, so I’m maintaining my position.</p>
<pre>From: Stephen Hahn
Date: Tue Nov 18, 2003 21:52:05 US/Pacific
To: sales[@]dwr.com
Subject: Telephones?</p>
<p>
DWRians,
</p>
<p>
A class of items I would like to see offered by DWR is modern,
design-conscious telephones, philosophically similar to the Modern
Fan Company ceiling fans you've offered: a high quality,
appropriately featured phone for the small/home office.
</p>
<p>
Other vendors' products have limitations:
</p>
<ul>
<li>
<p>
Bang and Olufsen have generally overpriced models that are
occasionally elegant but can be awkward, even clunky. The
materials and colors are uninspired.
</p>
</li>
<li>
<p>
The "retro" models from Pottery Barn, Crate and Barrel, and
the like, are minimally featured and only rarely well made.
</p>
</li>
<li>
<p>
The consumer electronics companies are pursing a button-based
roadmap (more buttons: better phone?) and are almost
exclusively cordless.
</p>
</li>
<li>
<p>
I'll skip the "my entire office should be made of wood"
manufacturers who entomb helpless telephones, laser printers,
and computers in a cherry shell.
</p>
</li>
</ul>
<p>
Something like an updated version of the Taurus telephone (Andy
Davey for Browns Holdings, 1988), with a caller ID display and
a headset jack. Perhaps an aluminum base or a stainless steel
handset, like Vertu/Nokia is offering in the mobile space.
</p>
<p>
(If you know of a manufacturer who is already producing such items,
but you don't believe the product fits in the DWR catalog, please
pass along a link or other contact.)
</p>
<p>
Thanks for listening,
Stephen
</pre>
</p>
<p>
DWR responded promptly, promising to be on the lookout. But I hypothesize that someone must be already making such a telephone–so I open up this topic for comments, suggestions, and links to manufacturers of a modern design telephone.
</p>software:dockables page updatedhttps://blueslugs.com/2003/12/07/softwaredockables-page-updated/Mon, 08 Dec 2003 04:08:11 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/12/07/softwaredockables-page-updated/<p>I’ve reformatted the <a href="https://blueslugs.com/software/dockables/" class="broken_link" rel="nofollow">software:dockables page</a> to bring it in line with the site’s general format; it’s still one of the more active entry pages for blueslugs.com (along with the <a href="https://blueslugs.com/ben/grammar.html" class="broken_link" rel="nofollow">grammar entry</a> in <a href="https://blueslugs.com/ben/alphabet.html" class="broken_link" rel="nofollow">Ben’s ABC collection</a>).</p>Fixing a common/combined Apache loghttps://blueslugs.com/2003/11/27/fixing-a-commoncombined-apache-log/Thu, 27 Nov 2003 22:04:48 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/11/27/fixing-a-commoncombined-apache-log/<p>I was trying another web server statistics package, <a href="http://awstats.sourceforge.net/" ><code>awstats</code></a>, based on a testimonial in Alan’s blog. Unfortunately, <code>awstats</code> expects a log file to be in the “combined” log format, and blueslugs.com has many entries in the default “common” format (prior to a switch for superior logging). A search showed no obvious small script for this, so I hope that providing <a href="https://blueslugs.com/~sch/apache-logs/massage_log.pl"><code>massage_log.pl</code></a> will save someone a few minutes or, at least, a few thousand log entries.</p>Dick Venezky Updateshttps://blueslugs.com/2003/11/22/dick-venezky-updates/Sun, 23 Nov 2003 01:06:22 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/11/22/dick-venezky-updates/<p>Dina’s father has been sick the past year or so, and Dina’s been relaying information to friends and family via email. I’ve <a href="https://blueslugs.com/rlv/">archived them all</a>.</p>Caching minidnshttps://blueslugs.com/2003/11/22/caching-minidns/Sat, 22 Nov 2003 20:59:06 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/11/22/caching-minidns/<p>I’ve started using <a href="http://www.analog.cx" ><code>analog</code></a> to build reports from the blueslugs.com server logs. One of the tools on the site is <code>minidns</code>, which is a small Perl script that runs through the logs, replacing any IPv4 address matches with their DNS-resolved names (if defined). I’ve improved this slightly, by adding caching inside the application (on the grounds that your site is likely visited by the same communities over time) and, via <a href="http://search.cpan.org/dist/Storable/" >Storable</a>, to a state file (on the grounds that you probably run the analyzer over your logs rather regularly). [Get <a href="https://blueslugs.com/~sch/apache-logs/cachedns.pl"><code>cachedns.pl</code></a>.]</p>
<p>Is it worth it? Read on.</p>
<p>Here are some simple timed runs with the original (<code>minidns.pl</code>) and with <code>cachedns.pl</code>.</p>
<pre>
$ time perl minidns.pl < ./al.1000 > /dev/null
real 1m56.431s
user 0m0.030s
sys 0m0.030s
</pre>
<p>
<code>al.1000</code> is the first 1000 lines of an Apache server log.
Our name service cache, <code>nscd</code>(1), and the DNS server we’re calling (and the <code>perl</code>(1) text) are now reasonably warmed up for subsequent callers.
</p>
<pre>
$ time perl minidns.pl < ./al.1000 > /dev/null
real 0m11.210s
user 0m0.030s
sys 0m0.020s
$ time perl minidns.pl < ./al.1000 > /dev/null
real 0m12.943s
user 0m0.050s
sys 0m0.010s
</pre>
<p>
So 1000 calls take a little over 10 seconds. Let’s run the caching version:
</p>
<pre>
$ time perl cachedns.pl -c dns.cache < ./al.1000 > /dev/null
real 0m8.579s
user 0m0.090s
sys 0m0.020s
</pre>
<p>
So the internal caching is maybe making a little difference. But let’s rerun
with the now-populated cache file.
</p>
<pre>
$ time perl cachedns.pl -c dns.cache < ./al.1000 > /dev/null
real 0m0.096s
user 0m0.070s
sys 0m0.010s
</pre>
<p>
Since the first part of the log file is processed every night, our cache file means that we’re likely only going to perform a DNS lookup for new visitors to the site.
(There are many sophisticated DNS resolvers-for-weblogs around, that use C++ or Python or threading or whatever. I just felt that a simple, understandable Perl version, with a boost, was enough for this little site.)
</p>RSVP, a Flash gamehttps://blueslugs.com/2003/11/21/irsvpi-a-flash-game/Fri, 21 Nov 2003 08:12:17 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/11/21/irsvpi-a-flash-game/<p>Lifetime TV’s website offers a fun solitaire variant, which they call <a href="http://www.mylifetime.com/games/online-games/classic-rsvp.aspx" class="broken_link" rel="nofollow">RSVP</a>. Apparently, regular practice will make you an excellent party hostess. (“Now turn to the young lady on your left side, and say something charming…”)</p>
<p>Whimsical, well-constructed Flash application: recommended.</p>Stash Teas, especially pepperminthttps://blueslugs.com/2003/11/18/stash-teas-especially-peppermint/Wed, 19 Nov 2003 06:16:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/11/18/stash-teas-especially-peppermint/<p>Cutbacks at work over the past few years have forced me to take action. As the coffee and teas supplier has moved the offerings from a wide selection of Bigelow teas to a small selection of Bigelow teas to an alternate tea vendor (nameless), the quality of my tea break has dropped so that, now, the tea dust captured by each desiccated bag was only a distant echo of the resonant saga of teas (and tisanes) through the ages.</p>
<p>Something had to be done. Knowing of no obviously heroic possibilities, I turned to ecommerce.</p>
<p><a href="http://www.stashtea.com/" >Stash Tea</a> carries a variety of loose and bagged teas. Although I brew from loose teas when deadlines allow, my current workload insists on the highest possible efficiency–a second or three could be the difference between “above average” and “more than satisfactory”. My current favourite bagged tea is the peppermint, which is made from dried Oregon-grown mint leaves. (The Darjeeling is nice, but needs multiple bags to brew anything beyond a small pot; the batch of triple ginseng is weaker than I expected.)</p>
<p>Recommended.</p>Mark Kurlansky's Codhttps://blueslugs.com/2003/11/16/mark-kurlanskys-cod/Mon, 17 Nov 2003 04:08:12 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/11/16/mark-kurlanskys-cod/<p><em>Mark Kurlanksy, Cod: a biography of the fish that changed the world, 1997. [Paperback published by Penguin.]</em></p>
<p>A short book on the role of (mostly) Atlantic cod, which, beyond being yet another species-so-abundant-we-couldn’t-help-but-nearly-extinguish-it, was apparently the seventeenth century ocean-crosser’s equivalent of interstate service areas (in that great distances could be travelled with comparatively convenient access to food). Kurlansky offers various contemporary recipes for cod-based dishes in between chapters, although I’ve never seen true salt cod for sale out here in California. (Cloves have been on a multi-century decline from their peak as the “it” herb in the 1700s.)</p>
<p>The discussion never convincingly reconnects to present-day fishermen who are sampling the Grand Banks cod population, although the recollection of the richness of the Banks and the fishing culture of only fifty or sixty years ago is well told. Little discussion of even small-scale aquaculture for cod, or really of the cod ecology, but an excellent survey of the role of an effective natural resource in various periods in the history of North America and Western Europe.</p>
<p>OK.</p>Gigli: petit douteuxhttps://blueslugs.com/2003/08/03/gigli-petit-douteux/Mon, 04 Aug 2003 06:07:47 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/08/03/gigli-petit-douteux/<p>We saw the Affleck-Lopez movie, <em>Gigli,</em> last night in Daly City. Unlike past dubious outings, the theatre was fairly full—showing the loyalty of each star’s fans. (Well, J. Lo’s fans, in any case.) Here’s proof that we, along with approximately 400 000 other domestic ticket purchasers, were there opening weekend:</p>
<img alt="gigli-ticket.jpg" src="https://blueslugs.com/2003/08/03/gigli-ticket.jpg" width="360" border="0" />Thumbs up: Chicken of the VNChttps://blueslugs.com/2003/06/12/thumbs-up-chicken-of-the-vnc/Fri, 13 Jun 2003 06:24:40 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/06/12/thumbs-up-chicken-of-the-vnc/<p>I’ve used pretty much every VNC client available for Mac OS X over the past year. My preferred client now is <a href="http://cotvnc.sf.net" >Chicken of the VNC</a>, even though the pun makes me cringe. Recommended.</p>An icon for GNOMEhttps://blueslugs.com/2003/03/25/an-icon-for-gnome/Tue, 25 Mar 2003 23:24:54 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/03/25/an-icon-for-gnome/<p>I recently started using <a href="http://www.sun.com/gnome/" >Sun’s version of GNOME 2.0</a> as my primary desktop environment, and decided that I needed an icon to launch my favourite mail application, <a href="http://www.mutt.org/" >mutt</a>. I’m not much of an artist or a GIMP expert, but I was able to combine the GNOME terminal icon with the mutt in the Mutt banner:</p>
<img alt="mutt-terminal.png" src="http://www.blueslugs.com/archives/software-032003/mutt-terminal.png" width="48" height="48" border="0" />
<p>Feel free to use it, if it’s useful to you.</p>Forearms, wrists stressed in bowling bachelor outinghttps://blueslugs.com/2003/03/16/forearms-wrists-stressed-in-bowling-bachelor-outing/Sun, 16 Mar 2003 20:26:09 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/03/16/forearms-wrists-stressed-in-bowling-bachelor-outing/<p>My friend Mike is getting married in about a week, so his best man Bryan rounded up a group of Mike’s friends and instructed them to head directly to <a href="http://www.seabowl.com" >Sea Bowl</a> in Pacifica. I certainly hadn’t bowled since my wedding and probably not since moving to the US. However, I managed to average over 100 for four games, so sending the ball straight is still a good fallback strategy (as in golf) for those of us who lack actual bowling technique. Here’s Mike demonstrating his more refined delivery, honed during hours of candlepin bowling in eastern Massachusetts:</p>
<p><img src="/2003/03/16/IMG_0008.JPG"width=“480” border=“0” title="" alt="" /></p>
<p>Generally, Neil was the dominant player, understanding the use of bowling balls of different weights for different situations and delivering with a consistency the rest of us could only envy:</p>
<p><img src="https://blueslugs.com/2003/03/16/IMG_0009.JPG" width="480" border="0" title="" alt="" /></a></p>
<p>Simon, Bryan, and I were glad to hand in our shoes, what with forearms tight from overuse, fingertips rubbed raw, and egos so bruised as to make a return to the alley unlikely in the near future:</p>
<p><img src="https://blueslugs.com/2003/03/16/IMG_0010.JPG" width="480" border="0" title="" alt="" /></a></p>
<p>I had to return to family duties, but the boys continued on to the pool tables. Whether either activity will be a portent of marital harmony, it is much to soon to say.</p>Faith via multiple choicehttps://blueslugs.com/2003/03/12/faith-via-multiple-choice/Thu, 13 Mar 2003 01:14:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/03/12/faith-via-multiple-choice/<p>I think <a href="http://www.beliefnet.com/" >beliefnet</a>‘s <a href="http://www.beliefnet.com/story/76/story_7665_1.html" >Belief-O-Matic</a> is a pretty interesting Internet assessment quiz. The BOM asks you for the answers to twenty-odd questions plus the importance of this particular question to construct a parameter space that is then matched against a set of declared religious systems. The name’s pretty slick, too.</p>A "moorish" blog ariseshttps://blueslugs.com/2003/03/11/a-moorish-blog-arises/Tue, 11 Mar 2003 18:46:37 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/03/11/a-moorish-blog-arises/<p>My friend Alan’s new blog at <a href="http://bleaklow.com/" class="broken_link" rel="nofollow">bleaklow.com</a> talks about being a drum-bashing Ranger rambling about England’s Peak National Park. It’s worth a visit, if only to divine how wasteful the North American sprawl form of suburbia is in comparison to the island form found in the UK. (Granted, it’s also detectible that Alan is on a remote island…)</p>Stephen gives talk at Brownhttps://blueslugs.com/2003/02/15/stephen-gives-talk-at-brown/Sat, 15 Feb 2003 15:36:23 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/02/15/stephen-gives-talk-at-brown/<p>Stephen was at Brown today to give a talk, “Topics in resource management”, at the Technical Center for Scientific Computation and Visualization. He had a chance to walk around the campus and its surroundings and see what’s new.</p>
<p>In addition, old haunts like D’Angelos, East Side Pockets, and College Hill Books, were visited.</p>Dina gives talk at USGShttps://blueslugs.com/2003/01/21/dina-gives-talk-at-usgs/Wed, 22 Jan 2003 07:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2003/01/21/dina-gives-talk-at-usgs/<p>Dina gave a talk on “Creating a worldwide database of volcanic unrest” for the Volcano Hazards Team seminar series at the USGS, Menlo Park.</p>Aristocratic pear fails under loadhttps://blueslugs.com/2002/11/07/aristocratic-pear-fails-under-load/Fri, 08 Nov 2002 06:49:03 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2002/11/07/aristocratic-pear-fails-under-load/<p>High winds (20 – 30 mph, gusting to 50+ mph) caused the aristocratic pear tree in our backyard to topple at about 7:30 P.M. tonight. Dina and I heard the walls of the house shudder in response to the deep crack of the trunk yielding. A Swiss Army knife is shown for scale in the photos below:</p>
<img src="https://blueslugs.com/2002/11/07/pear-01-480.jpg" border="0" alt="" />
<img src="https://blueslugs.com/2002/11/07/pear-02-480.jpg" border="0" alt="" />
<p>For the record, here’s the NWS advisory:</p>
<pre><code>SONOMA AND MARIN COUNTIES-NAPA COUNTY-SAN FRANCISCO COUNTY-
SAN MATEO COUNTY-SANTA CRUZ COUNTY-ALAMEDA AND CONTRA COSTA COUNTIES-
SANTA CLARA COUNTY-COASTAL MONTEREY COUNTY-
SALINAS VALLEY/INTERIOR MONTEREY COUNTY/SAN BENITO COUNTY-
300 PM PST THU NOV 7 2002
...WIND ADVISORY THROUGH THIS EVENING...
SOUTH WINDS OF 20 TO 30 MPH WITH FREQUENT GUSTS OF 40 TO 50 MPH ARE
EXPECTED THROUGH THIS EVENING ACROSS THE SAN FRANCISCO AND MONTEREY
BAY AREAS. THE STRONGEST WINDS WILL OCCUR NEAR THE OCEAN AND IN THE
HILLS.
A POWERFUL PACIFIC STORM WAS APPROACHING THE CALIFORNIA COAST LATE
THURSDAY AFTERNOON. STRONG AND GUSTY SOUTH WINDS WILL PRECEDE THE
THE SURFACE FRONT. WINDS WILL SWITCH TO THE SOUTHWEST AND
DIMINISH AFTER FRONTAL PASSAGE AROUND MIDNIGHT. WINDS WILL INCREASE
ONCE AGAIN ON FRIDAY AHEAD OF ANOTHER FRONT...ALTHOUGH THEY ARE NOT
EXPECTED TO BE QUITE AS STRONG AS THIS EVENING.
PERSONS IN THE ADVISORY AREA ARE URGED TO TAKE ACTION TO SECURE LOOSE
OR LIGHTWEIGHT OUTDOOR OBJECTS. HIGH WINDS CAN TOPPLE TREES...BLOW
DEBRIS ONTO ROADWAYS...AND DOWN POWER LINES.
</code></pre>Now using Movable Typehttps://blueslugs.com/2002/11/06/now-using-movable-type/Thu, 07 Nov 2002 05:37:16 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2002/11/06/now-using-movable-type/<p>blueslugs.com is now being managed using the Movable Type (<a href="http://www.movabletype.org" ><a href="http://www.movabletype.org">http://www.movabletype.org</a></a>) personal publishing system.</p>Mt. Shasta fly-overhttps://blueslugs.com/2002/10/30/mt-shasta-fly-over/Thu, 31 Oct 2002 07:09:01 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2002/10/30/mt-shasta-fly-over/<p>We enjoyed a spectacular view of Mt. Shasta during a recent flight to Portland, OR. (Dina was attending a volcanology workshop; Ben and Stephen planned long walks around the grid layout of Vancouver, WA–which should use the motto of “the city that grows before your eyes” given the amount of construction we saw.) From Ben’s window seat, Shasta from crusing altitude:</p>
<img src="https://blueslugs.com/2002/10/30/over-shasta-480.jpg" border="0" title="" alt="" />Ben survives weekend with Dadhttps://blueslugs.com/2002/10/28/ben-survives-weekend-with-dad/Mon, 28 Oct 2002 20:00:00 +0000stephen@blueslugs.com (Stephen Hahn)https://blueslugs.com/2002/10/28/ben-survives-weekend-with-dad/<p>With Dina travelling, Ben nearly had to fend for himself under his father’s care. Here’s Ben preparing for an expedition to increase his available store of supplies at a nearby grocery store:</p>
<img src="https://blueslugs.com/2002/10/28/ben-261002.jpg" border="0" title="" alt="" />