Old Computer Shelf

This shelf in my office is where certain technological dead-ends go:

IMG_0414

To the left, a 1989 Mac Portable that weighs 13½ lbs more than a MacBook Air. Center, a Sun JavaStation — sort of like an X Terminal without X. And right, an SGI Indy — a RISC-based IRIX workstation from about 1993.

Link to this Post | Leave a Comment

Icelandic Musical Instruments

Langspil & Dulcimer

Talking about “original” or “indigenous” musical instruments in Iceland is tricky. Unlike the continental Scandinavian countries, there’s little evidence of medieval musical culture — far fewer paintings, wood or stone carvings, that depict actual instruments. In fact, the earliest depiction of the national instrument, the Langspil (a bowed zither) is from 1836 — and from a French travel narrative, no less:

1836-langspil.jpeg

Twenty years later, the first signifiant work on the Langspil was published, a guidebook on how to play:

At its most basic, the Langspil is a variant of the instrument Americans know as a Dulcimer. Such instruments, which can all fall under the general term Zither, have a long history in Europe. A large part of the original settlement of Iceland came from Norway, and a zither known as the Langeleik are pretty well-attested there — the earliest surviving from the 16th century. (I’m not sure whether the current thinking is that the Langeleik/Langspil travelled with the Norwegians during the 9th century settlement period or much later.)

Regardless, we can probably treat the Icelandic Langspil as a local adaptation of a common European instrument class. In the engraving above from 1836, we see a farmer playing the instrument with a bow, instead of plucking with fingers or a pick. In modern instruments being produced today, both methods are supported. Sometimes the practice is to unhook one of two larger strings when bowing, reconnecting it when the player wants to use a pick. Below, a researcher plucks various strings while holding some of them down against the fretboard:

Langspil

Of course, there’s a slippery slope between the specifically-Icelandic Langspil, and any zither produced in Iceland. Is the difference in the shape of the instrument, or its ability to be bowed, or the decoration carved or painted onto its surface? Below, an uncle-and-nephew team of Icelandic instrument makers consider a conventional zither, left, and a Langspil, right:

Instrument Makers

Both were made in Reykjavík in 2011, and both can be strung and played in a similar fashion. Besides the physical difference in the bodies’ design, the placement of the fretboard on the Langspil is different. But in general, as with all folk instruments, individual examples exist in a spectrum of different design choices and stylistic traditions, rather than inhabiting fixed positions such as Violin/Viola/Cello.

Link to this Post | Leave a Comment

Hallgrímskirkja

Hallgrímskirkja

If you’re in Reykjavík in December you spend most of your time trying to photograph the sky, which gets really interesting around sunrise and sunset. The picture above is from about 2:30pm local time, and you can see the orange glow of the setting sun in some of the buildings’ windows.

The church at the top of the hill is Hallgrímskirkja, which was under continual construction from the late 1930s through the 1980s.

Link to this Post | Leave a Comment

Suspended above the ceiling of the new Háskolatorg building at the University of Iceland is a bright yellow circle, with capital roman letters in stark relief:

VITS ER ÞÖRF ÞEIM ER VÍÐA RATAR.

Vits er þörf þeim er víða ratar

The inscription is a citation from the Hávamál, — the Words of the High One, from the Poetic Edda which inspired Snori Sturlusson to write his Prose Edda. The first preserved text of the Poetic Edda is from the 13th Century, but it probably preserves parts of much older narratives. Why choose this particular medieval text for a new academic building?

The first word, cut off in my photo above, is vits, which we have in English as “wits” and serves perfectly well as the cognate it is: knowledge, cunning.

Þörf, “to need,” has disappeared in modern English, but is still present in Modern German as dürfen and Swedish as tarva. (The proto-Germanic word probably looked something like *ɵurfan.) So the first half-line is something like “Wits are necessary…”

Moving on to the second half-line: I always like to think of Þeim as “them” because it basically is, in a dative case here. Skipping to the end of the half-line, ratar, Zoëga’s dictionary of 1910 actually cites this verse in its definition of rata: to travel; rata víða: to travel widely. The verb “to be” is then used to build this construction meaning “for those that travel far.” So the message is: You’ll need smarts if you want to travel the world.

I don’t know if the inscription goes on around the back side, but if it does so, it continues:

dælt er heima hvað.

“Dæll” is an interesting adjective, meaning gentle or easy. But this passage from the Havamal is also cited in Zoëga, for the use of dæll in the set phrase above “anything will pass at home.” If I had to guess what the words are literally doing here, it would be something like “Easy: that’s what home is.”

Interestingly, the connection between idiocy and “the home” — in either the pure domestic sense, or in the context of international travel — is one common to many Germanic languages. Think of English’s “homely”, which has a sense of “OK for inside the house, but probably not a beauty.” Swedish goes even further, with hemsk, literally home-y, translating as “horrible.” The Icelandic Web of Science has an entire page on the question of the linkage between the home and cowardice and unmanliness, which cites this exact verse from the Hávamál. “Ekki þótti það karlmannlegt,” they write, “að sitja alltaf heima og fara ekkert.” (It wasn’t thought manly to sit at home all the time and not travel.)

The payoff for translating these lines by hand is then you get to compare your work with W. H. Auden! Yes, everyone’s favorite 20th-century poet translated the Hávamál himself, and rendered this particular verse (in its entirety) as:

Who travels widely needs his wits about him,
The stupid should stay at home:
The ignorant man is often laughed at
When he sits at meat with the sage.

So this stanza sets up a tension between the expertise and knowledge required for the well-traveled, versus the low expectations present at home. An interesting message to hover over the heads of those studying at the University of Iceland in 2011.

Link to this Post | Leave a Comment

Landsbókasafn Íslands / Háskólabókasafn

The National & University Library of Iceland rests on a field of snow. The sun has mostly set here by 4:30pm.

Link to this Post | 1 Comment

Langspil Shopping

Langspil shopping

Who amongst us isn’t in the market for a Langspil — an Icelandic bowed zither? These Langspils were for sale in a store in central Reykjavík; they run the gamut from diatonic to chromatic, four-string to three-string.

Link to this Post | Leave a Comment

SPARCStation Voyager

This weekend’s task was to fix up a rare “portable” Unix computer from Sun Microsystems. Best-known in the 2000s for enterprise hardware, Sun in the 1990s was equally dominant in desktop Unix workstations, before the rise of Linux on commodity x86 PC’s.

Yet Sun workstations, with their 20” CRT monitors and large, flat ‘pizza box’ cases, were nearly impossible to bring into the field — or between offices. Sensing a market, Sun introduced their SparcStation Voyager in 1994 as a portable system that offered much of the power of Solaris, their operating system, and the SPARC RISC processor, in a machine small enough to bring onto an airline.

SPARCStation Voyager

Portable power came at a price: $14,000.00 for the color model. I saw only one in person during the 1990s, and I think it belonged to a Sun salesman. It’s safe to say the number made — not to mention the number surviving — is pretty low. In fact, the Voyager is peculiar enough to warrant its inclusion at the Computer History Museum in Silicon Valley.

Invalid IDPROM

After sixteen years, it’s not surprising if a few hardware gremlins have to be exorcised before a given Voyager will work correctly. As shown above, the battery which stores the nonvolatile RAM — the settings for the clock, which hard drive to boot from, etc. — will eventually give out. The result is a scrambled configuration, and, amusingly, a randomly-generated password protecting the machine which you have no hope of figuring out. Unfortunately the Voyager’s battery is built into the nonvolatile RAM chip itself — a bit of vertical integration which helps save space, but makes fixing an expired battery more complex (and expensive). Here’s the back of the machine with the case open:

Voyager Back

The original combination battery and memory chip is in the lower-right corner, above the port marked “A”, and has a yellow barcode sticker on it. This chip has long since been End-of-Life’d, but miraculously there’s a pin-compatible replacement still available for about $30. Here’s the old chip, top, with the replacement on the bottom:

Old and New

Old and New Back

The new chip plugs right into the open socket on the vertical motherboard:

Empty Socket

The new chip is a good few millimeters thicker than the old one, which can make clearance a bit tight. In fact, my original IDPROM chip was nested in a thin plastic guiding frame, which reduced the risk that you would bend a pin as you inserted a new chip. There’s no room for that luxury with the replacement, which nestles right up against the plastic case:

New chip in place

Once the new chip is in place, we’ll reboot and see if the machine’s bogus password is cleared:

Blank settings

A rare case where an error message is good news: the Voyage’s memory has been cleared so completely that it’s back to its factory state, trying to boot over the (absent) network. The “ok” prompt will allow us to issue a boot command from the SCSI drive and we’ll be up and running:

Successful Boot

… all the way into OpenWindows, at which point you can pause and reminisce about the Unix Wars of the 1990s:

Booting into OpenWindows

On some kinds of Sun workstations, you may find that your machine’s Hardware Ethernet (or M.A.C. number) has been wiped during the process. This wasn’t the case on my machine, but if it had been there’s a great page of instructions online on how to write the relevant bits back to the chip at a low level, which looks something like this:

Resetting IDPROM

Once your Voyager is up and running, you can enjoy the delights of Solaris 2.3-2.7, for example the written-in-itself HotJava browser:

HotJava!

Link to this Post | Leave a Comment

Print Shop GS + ImageWriter II

I spent the 3rd weekend in September out in Lombard, Illinois, at the 6th annual Vintage Computer Festival Midwest. Highlights included a great collection of Bulgarian off-brand Apple ][ clones:

Bulgarian Apple II clone

Kids were entranced by a collection of machines based on the 6502 chip:

6502 exhibit

A rare Canon object.station running its native NeXTStep 3.3 OS:

Canon object.station 41 boots NeXTStep 3.3

Rarest of all was a functioning Apple 1:

Apple I detail

The show was probably one of the only places you could see an Apple 1, ][ and /// all sitting on the same table working at the same time. Or at least, the Apple /// was working for a little while:

Apple ///

Then this happened:

Apple /// power supplies are infamous for blowing a capacitor — or three. Luckily Mike Lee, owner of this particular ///, had reading materials all ready to go:

Art of Smoking

Between the Kaypros and the Sun you should be just able to glimpse an Osborne 1:

Kaypro, Kaypro, Kaypro, Osborne

Computer historian David Greelish recorded a podcast together with Bill Degnan, from the Mid-Atlantic Retro Computing Hobbyists:

Retrocomputing Roundtable recording

One of the great things about VCFMW is that it gives you time to sit down with older machines and really try to use them. Even in ways their original owners never did: did anyone who had an Atari 400 ever try to type anything out on this awful chiclet keyboard?:

Word processing on the Atari 400

We also had a whole table dedicated to Rockwell R6500 machines:

Rockwell R6500 / AIM 65

Towards the end of the show we were playing around with Newton emulation on modern Android tablet hardware:

Newton emulated on Android

Link to this Post | Leave a Comment

Though this suburban theater was designed by Zook & McCaughey, the stained glass, exterior sculpture and entire interior of this are the work of Alfonso Iannelli:

Pickwick Theater

Iannelli’s most well-known work is probably the sprites he designed for Frank Lloyd Wright’s Midway Gardens. But his interior for the Pickwick is just as interesting an expression of the sculptor’s interest in diagonal, zig-zag motifs:

Pickwick Theater

Link to this Post | Leave a Comment

Foodspotting Actionstream

Amidst the attention paid to new social networks, it’s easy to forget how only a few years ago the focus of everyone’s effort was bridging the gap between disparate stovepipes of personal information. While OpenSocial seems to have come to naught, some of the standards which it produced live on and are still usable in the tools which were popular during its halcyon days. True, the glory days of sites such as FriendFeed are behind them, but other, even older systems — such as MovableType — live on, at least in so far as they power blogs such as this one.

Back in 2007, when MovableType was still run by Six Apart (and when Six Apart still existed as an independent entity), WordPress had not yet completed its slow conquest of the personal blogging market. 6A’s programmers were at the forefront of OpenSocial, and productized that protocol as a feature of MT 4.1 called Action Streams. Action Streams was a pretty slick way of “syndicating” all a users’s activity at sites such as Twitter, LiveJournal, Flickr, etc, into a firehose of information that a blogger could incorporate into his or her traditional blog in a variety of ways. For its time, it was a terrific way of combining the casual social media just beginning to emerge, mostly isolated on their respective websites, with the established ‘personal brand’ which many bloggers had established on their own websites. Your digital pictures would still live on Flickr, and your tweets on Twitter, and your Buzz’s (remember Buzz?) on Google, but they would be aggregated and displayed on your own site, like so:

actionstreamsdemo.png

Action Streams was both the term for the underlying productification of Open Social, as well as a plug-in architecture that allowed new “stream” plugins to be written as new sites sprung up.

Sounds good. Unfortunately, a lot of the programming of these plugins seems to have tailed off in exact symmetry with the general demise of MovableType in the face of WordPress. Check out the dev forums — kind of tumbleweeds there.

But maybe Action Streams isn’t really dead, merely pining. I decided to see how easy it would be to adopt the underlying technology for a new social site which sprung up well after the 2007 heyday of the plugin system. This would be Foodspotting, a service that lets you upload pictures captured from a smartphone, tag them with the restaurant name and the kind of food, and then browse the entire database of others’ uploads in pursuit of items that look interesting. Architecturally, this service is kind of a very specialized Flickr, with built-in data types of restaurant and cuisine serving as inherent facets in the data. (This kind of specialized service works great as a smartphone app — the built-in controls and geolocation features let you do things with your food picture data that would be awkward or just impossible with a general-purpose system such as Picassa.)

As an example, here’s a shot I took in Århus, Denmark during the summer of 2009:

foodspotting-aspargus.png

So how do we integrate these “sightings”, in the parlance of Foodspotting, into the Action Stream that I’m displaying in the top right column on this site? While the original goal of many Open Social initiatives was a set of rich, interactive API’s which allowed you to follow and comment on your friends’ activity on many different sites, in reality we find ourselves falling back to the basic systems that are part of nearly all websites: syndication feeds such as Atom and RSS. Each user’s page on Foodspotting (example) exposes an equivalent RSS feed of pictures and metadata (example). Using this, we can approximate part of the vision for Open Social. Here’s how:

Let’s examine a sample entry from Foodspotting’s RSS feed. I took this picture yesterday at Han 202:

<item>
      <title>Spotted White Tuna Sashimi @ Han 202</title>
      <description>&lt;img src="http://s3.amazonaws.com/foodspotting-ec2/reviews/742376/thumb_600.jpg?1312330905" alt="White Tuna Sashimi @ Han 202" /&gt; &lt;p&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 02 Aug 2011 17:21:45 -0700</pubDate>
      <link>http://www.foodspotting.com/reviews/742376</link>
      <guid>http://www.foodspotting.com/reviews/742376</guid>
      <media:content url="http://s3.amazonaws.com/foodspotting-ec2/reviews/742376/thumb_600.jpg?1312330905" type="image/jpeg" height="600" width="600"/>
      <media:title>Spotted White Tuna Sashimi @ Han 202</media:title>
      <media:description>. on Foodspotting</media:description>
      <media:thumbnail url="http://s3.amazonaws.com/foodspotting-ec2/reviews/742376/thumb_90.jpg?1312330905" height="90" width="90"/>
</item>

What we’d ideally like to extract from this RSS feed are: 1) when I took the picture, 2) the particular menu item, 3) the restaurant name, 4) a thumbnail (not the big picture itself) and 5) a link to the permalink on Foodspotting’s website, in case a user wants to click through to the item itself.

We can parse this feed with tools such as XPath. Inside the “config.yaml” file of our Action Stream plugin, we’ll specify:

foreach: //item
                get:
                    created_on: pubDate/child::text()
                    title: title/child::text()
                    url: link/child::text()
                    thumbnail_url: media:thumbnail/@url

We’ve almost got everything we want, with one exception: Foodspotting concatenates the name of the food and the restaurant into the “title” element, in the following way: foodname @ restaurant. I thought about splitting this apart with a regular expression, but since Foodspotting does not export the discrete links to the restaurant and the food type in the RSS anyway, I figured the benefit of having the two elements separately was pretty minimal. Action Streams usually show up as a pretty small part of the site, and it makes sense to just send interested visitors to the permalink on the main site anyway, where they can then dig deeper into the various kinds of data if they wish.

Elsewhere in our config.yaml we’ll tell the system how we want to use each of the four elements we’ve collected by parsing the RSS with XPath:

html_form: '[_1] <a href="[_3]">[_2]</a><br /><a href="[_3]"><img style="margin-top:5px; border: 1px solid black;height:100px;width:100px;" src="[_4]" /></a>' 

Not pretty, but each of those numbers within brackets, such as [_1], is serving as a placeholder for the data we’ve parsed from the RSS feed. Essentially we’re saying: USERNAME spotted FOODNAME @ VENUE, and then specifying an image below. (Luckily Foodspotting serves up a 90px square thumbnail, which is almost exactly the right size for the 100px thumbnail that most Action Stream plugins expect.)

Finally, we’ll need to let the user set up the plugin by inputting their userid. Luckily this is nothing as complicated as username and password — instead, it’s just the publicly-available unique user number which Foodspotting uses to keep track of everyone. In our config.yaml:

profile_services:
    foodspotting:
        name: Foodspotting
        url: http://www.foodspotting.com/{{ident}}
        ident_label: User ID
        ident_example: 123456
        ident_hint: |-
            You can find your User ID by clicking on the "Profile" button at the top of Foodspotting.com. The User ID is the series of six numbers before your name, without the dash: http://www.foodspotting.com/123456-john-smith

This will generate the following user interface within MovableType:

foodspotting-config.png

(Close observers will notice our nice help string, called “ident_hint” above, has failed to show up here. This is some sort of bug in MT5.x, which affects all Action Stream plugins I’ve seen.)

Now that our configuration is complete, a background task in MovableType checks for updates on the various social networks, including Foodspotting, and when it sees that I’ve uploaded a new picture, it outputs the following:

foodspotting-sashimi.png

The above is a screenshot, in case the actual entry scrolls off the page, but it shows how the thumbnail, text elements, and hyperlink all come together to point towards the actual page on Foodspotting.

There are some definite rough edges here — for one, getting Action Streams installed and working correctly is harder than it should be, there are mysterious changes between MT4 and MT5, the developer community seems to be shrinking absolutely (in a time of exponential relative growth in the social space, which is pretty shocking), and worst of all there’s the requirement to edit a crontab (!) to get MovableType to actually refresh the whole Action Streams system at all. It’s perversely charming that “crontab -e”, and the accompanying realization that your server’s default text editor is vi (!!) could could be part of a web workflow in 2011, but there you go.

In the meantime, enjoy my picture of White Tuna Sashimi, courtesy of the best intentions of web architects circa 2007.

Link to this Post | Leave a Comment

I live nearly at the foot of the Hancock Tower, but it’s also fun to take pictures of it from various points around the city while out on a walk. From Navy Pier:

From Navy Pier

From the ponds near the Lincoln Park Zoo:

From Lincoln Park Zoo

Link to this Post | Leave a Comment

Fireworks over Navy Pier:

Chicago 4th of July 2011 Fireworks

Link to this Post | Leave a Comment

Find recent content on the main index or look in the archives to find all content.

Recent Activity

Friday Jan 27
Tuesday Jan 24
Monday Jan 23
Wednesday Jan 18
Sunday Jan 15
Saturday Jan 14
Tuesday Jan 10
Sunday Jan 8
Friday Jan 6
Monday Jan 2
Saturday Dec 31
Thursday Dec 29
  • Peter tweeted, "RT @silverasm: WordSeer's "collections" demonstrated. Is "love" equally common in Shakespeare's comedies and tragedies? Blog post: http ..."
Wednesday Dec 28

Recent Comments

  • tonyloro: Viewing your site has helped me start my harpa project. read more
  • joshc: Meanwhile in Seattle, the sun has mostly set by 4:30 read more
  • edabbo: Thanks for this explanation. So for those of us who read more
  • https://me.yahoo.com/a/zaNxrBFqy.CZkZbtji.B_YkdQAD5ew--#e3a81: That's my car. Trying to remember where we were on read more
  • adam.arenson: Thanks for the compliment about the Art of Home Savings read more
  • tonyloro: Hi, Very cool bits here. Looking to build 4 with read more
  • Peter Leonard: Thanks for the heads up, fixed! read more
  • paul-peeters.myopenid.com: Hey Peter, the links to the images in your article read more
  • Peter: Hi Chris, thanks for your comment! If you haven't seen read more
  • Chris Treen: So good to see someone else building one of these. read more