Recently in tech Category

Netatalk is an open-source UNIX implementation of AppleShare, designed to provide services to classic (1984-2001) Macintoshes. Though Apple's own server products have moved on, and no longer support client Macs running the classic Mac OS, Netatalk will still serve files to machines as early as a 512K from 1986.

The late 1980s and early 1990s saw a great deal of development on the problem of Mac/Unix integration, primarily at research universities such as the University of Michigan (where Netatalk was born, around 1990) and Columbia University (Columbia AppleTalk Protocol, circa 1986). As such, it's no surprise that a lot of work went into making Unix-based AppleShare servers fit in as fully as possible on the Mac desktop. CAP and Netatalk didn't just serve files, they also provided centralized print queues for LaserWriters and even supported rare AppleTalk-based time synchronization protocols, such a "timelord."

This attention to detail also extended into the very icons that showed up when a Mac user mounted a shared volume from a Unix machine running software such as Netatalk. But these icons are really only visible on machines running System 7 and older — ever since Mac OS 8, the Finder's own default icons for AppleShare volumes take precedence over the custom icons that were built into the Netatalk dæmon.

These now-lost icons were incorporated into the source code in a very interesting way. Unix software could't easily contain the icons in their native format of Resources — special kinds of information, stored in a separate "fork" of files — because Unix file systems, not to mention non-AppleTalk network protocols, would lose this information by not understanding it. Instead, the raw bits for each of the 128 pixels in each 32 by 32 icon was encoded as hexadecimal information in C-language header files in the source code. A sample from icon.h looked like this:

static const unsigned char apple_atalk_icon[] = { /* default appletalk icon */
    0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,
    0x00,  0x01,  0x00,  0x00,  0x00,  0x02,  0x9F,  0xE0,
    0x00,  0x04,  0x50,  0x30,  0x00,  0x08,  0x30,  0x28,
    0x00,  0x10,  0x10,  0x3C,  0x07,  0xA0,  0x08,  0x04,
    0x18,  0x7F,  0x04,  0x04,  0x10,  0x00,  0x82,  0x04,
    0x10,  0x00,  0x81,  0x04,  0x10,  0x00,  0x82,  0x04,
    0x10,  0x00,  0x84,  0x04,  0x10,  0x00,  0x88,  0x04,
    0x10,  0x00,  0x90,  0x04,  0x10,  0x00,  0xB0,  0x04,
    0x10,  0x00,  0xD0,  0x04,  0xFF,  0xFF,  0xFF,  0xFF,
    0x40,  0x00,  0x00,  0x02,  0x3F,  0xFF,  0xFF,  0xFC,
    0x00,  0x00,  0x07,  0x00,  0x00,  0x00,  0x05,  0x00,
    0x00,  0x00,  0x05,  0x00,  0x00,  0x00,  0x05,  0x00,
    0x00,  0x00,  0x0F,  0x80,  0x00,  0x00,  0x08,  0x80,
    0x00,  0x00,  0x08,  0x80,  0x00,  0x00,  0x0F,  0x80,
    0x00,  0x00,  0x0A,  0x80,  0xBF,  0xFF,  0xF2,  0x74,
    0x00,  0x00,  0x05,  0x00,  0xBF,  0xFF,  0xF8,  0xF4,
    0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,
    0x00,  0x01,  0x00,  0x00,  0x00,  0x03,  0x9F,  0xE0,
    0x00,  0x07,  0xDF,  0xF0,  0x00,  0x0F,  0xFF,  0xF8,
    0x00,  0x1F,  0xFF,  0xFC,  0x07,  0xBF,  0xFF,  0xFC,
    0x1F,  0xFF,  0xFF,  0xFC,  0x1F,  0xFF,  0xFF,  0xFC,
    0x1F,  0xFF,  0xFF,  0xFC,  0x1F,  0xFF,  0xFF,  0xFC,
    0x1F,  0xFF,  0xFF,  0xFC,  0x1F,  0xFF,  0xFF,  0xFC,
    0x1F,  0xFF,  0xFF,  0xFC,  0x1F,  0xFF,  0xFF,  0xFC,
    0x1F,  0xFF,  0xFF,  0xFC,  0xFF,  0xFF,  0xFF,  0xFF,
    0x7F,  0xFF,  0xFF,  0xFE,  0x3F,  0xFF,  0xFF,  0xFC,
    0x00,  0x00,  0x07,  0x00,  0x00,  0x00,  0x07,  0x00,
    0x00,  0x00,  0x07,  0x00,  0x00,  0x00,  0x07,  0x00,
    0x00,  0x00,  0x0F,  0x80,  0x00,  0x00,  0x0F,  0x80,
    0x00,  0x00,  0x0F,  0x80,  0x00,  0x00,  0x0F,  0x80,
    0x00,  0x00,  0x0F,  0x80,  0xBF,  0xFF,  0xFF,  0xF4,
    0xBF,  0xFF,  0xFD,  0xF4,  0xBF,  0xFF,  0xF8,  0xF4
};

This encoding was actually nearly identical to the XBM bitmap format, and if you know what you're doing you can recover the Mac representation of these hex codes using modern tools.

Let's see what they looked like.


This was the default icon for an AppleShare icon, connected through the traditional Datagram Delivery Protocol (in other words, before the advent of AFP/TCPIP.) It appears identical to Apple's own icon for AppleShare servers, and was used if Netatalk wanted to present itself as normal Apple server.


The globe amidst the files and folders on the platter tells you this is an AFP/TCPIP server — a representation of a "wide-area", rather than local, network. This also appears to be the same icon as Apple used for their AppleShare IP product, and was also used when Netatalk servers wanted to fit in and look exactly the same as a real Apple server.


Now things get interesting. This is, obviously, a Sun Microsystems logo, rising from the networked platter. When I was in college in the 1990s, a cluster of SparcStation 20's used similar software (actually CAP, mentioned above) to serve AppleShare volumes to students. Here's the logo is in its 1990s glory:


The Netatalk package checks if the machine its running on reports as Ultrix, and if so displays this charmingly-tilted Digital Equipment Corporation logo. Ultrix was, apparently, in active development between 1984 and 1995, and DEC itself was swallowed up by Compaq in 1998. Its logo looked like this:


I'm not quite sure why a dæmon represents a Digital VAX, but that's what shows up when Netatalk is run on this platform. Dæmons (small processes running in the background and listening for information on specific ports) are more closely associated with Unix, most specifically with BSD. The icon seems an odd choice for a VMS-based system.

Speaking of cartoon characters...


This one takes some explaining. If Netatalk senses its on an "_IBMR2" system, it deploys the "hagar" icon shown to the left. This is probably a reference to IBM RISC systems, specifically the RS/6000 which was advertised in the early 1990s with the following ad campaign:


Last is this generic icon, which Netatalk used if it couldn't determine a specific platform icon from the list above. So to be precise, this is the generic Netatalk icon for situations where the software was not trying to masquerade as an actual Apple server. I'm not sure of the state of thinking about icon design and copyright in the 1990s, but my guess is this icon was developed in case there was a problem with using Apple's own visual representations of servers — thus the option the administrator could set to either use special icons, or the Finder's default ones.


I should finish by saying that all these icons were drawn from the source code to Netatalk 2.2.x, and that it's possible that earlier releases had even more platform-specific icons embedded. But the other thing to keep in mind is that steadily fewer people have seen these icons since 1997 — the release date of Mac OS 8, which stopped supporting custom server icons. (Any guesses as to how many instances of Netatalk are currently running on top of VAX/VMS in 2012?)

For icons that died out nearly fifteen years go, it seems fitting to give them a final resting place on the web somewhere.

Link to this Post | 1 Comment

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

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

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

Olivetti Lettera 32

Strongly considering making this my new laptop:

Olivetti Lettera 32

I used to play around with this typewriter in my dad’s office after school — this model was made in 1971 and has no numeral 1 key — you type a lowercase L instead.

Link to this Post | Leave a Comment

What does a Thai restaurant have in common with a scholarly article? Not much, but emerging standards for machine-readable semantic content online can help both reach more people. Publishers of academic reviews can take advantage of new techniques to surface quality content. And these new technical standards can help a core value of the academy — peer review — maintain visibility.

One of my side projects is a database of nearly 300 reviews of journal articles, books and festschrifts about the Norwegian playwright Henrik Ibsen, called the Survey of Articles. This online resource is based on many years’ work by the Ibsen Society of America, an international scholarly society. Over the course of decades, leading academics have read, reviewed and critiqued articles about Ibsen in many different journals and languages. As Ibsen is one of the most ‘international’ figures in Scandinavian literature, putting these critiques online helps researchers all over the world. And though the Society had placed PDF’s online previously, we felt that chunking everything up into a database would provide more granular ways of digging into the data. But if we built it, would anybody come?

It turns out that search engines such as Google are embracing technical markup known as “microformats” to help solve problems like this. Try this query as an example of microformats in action: Thai Restaurant. If you’re near a city with Thai food (and if Google can determine your position through your IP address), you’re likely to see a mix of things including a map and one or two reviews like this:

microdata_thai.png

How does Google get those four stars, the number of reviews, etc, for this particular restaurant? And how does Yelp! communicate these pieces of data back to the search engine? Through machine-readable markup — by including a kind of secret code for web spiders.

Google supports three different kinds of this technical markup: RDFA, the hReview microformat, and Microdata. For a technical overview of these three options, see Philip Jägenstedt’s analysis here. Jägenstedt comes to the conclusion that they all have their flaws (“Microformats, you’re a class attribute kludge”) but that Microdata held the most promise for the future. Seeing as his article was written 18 months ago, I decided to implement Microdata, the newest of the triptych. (I had had some experience using hReview, before, and found it cumbersome to express cleanly in my HTML.)

So now the next step was figuring out how to implement Microdata in my existing database-driven HTML. Google maintains a Tips and Tricks page for how to do this. Their example (bear with me here) is a pizza restaurant:

microdata_pizza.png

Here’s where some human value judgements ensured. There’s no way that a critical review of an academic work can be broken down into a “5-star” rating. Even though Google allows for other types of quantitative evaluation — such as Thumbs Up/Thumbs Down, 100-point scales, etc — none of these systems map in any way to what the Society is trying to accomplish by putting these Critical Annotations online. So obviously I jettisoned the Star-Rating aspect of the pizza example. In addition, I only wanted to note the year an article was reviewed, rather than the specific month and day (which is pretty meaningless for an annual publication.) Finally, I didn’t want to further whittle down the Annotation into a one-sentance ‘summary’, despite the existence of that feature in the Microdata standard. With these adjustments in mind, I decided to express the data I had available through the following snippet of HTML and PHP:

microdata_php.png

The next step was to test whether Google could parse my embedded Microdata and recognize each page as a review. For this, I used the Rich Snippets Testing Tool. This system will ingest a web page and, in real time, expose the semantic markup it finds — along with any errors. After a bit of debugging and re-arranging the nesting and position of the various elements, I got the code to do what I wanted. Here’s an example of a successfully-parsed page:

microdata_test_works.png

Finally, and most importantly, you’ll need to submit your site to Google for review. It took my site a few weeks to go through — I don’t know the frequency with which Google looks at these, but it’s possible there’s a periodic review. You’ll know your site has made it through when search results start exposing the additional metadata your markup is indicating. For my content, the result was this:

microdata_ibsen.png

Here’s a mapping of the information contained in the Microdata markup to the results page of a Google search:

microdata_ibsen_markup.png

There are a few things to point out here.

First, although the title of the article is crucial to Google’s system picking up on the review, that title is not actually exposed in the search result. Instead, title of the page itself is displayed. This makes it important that your TITLE tags are accurate and informative. In this case, I settled on the following template:

Name of Site: Article Title from Journal Title

In this particular case, that works out to

ISA: Ibsen and the Dramaturgy of Uncertainy from Ibsen Studies

I could go further with this and include the author of the article in the title, but at a certain point you start running into concerns about the length of page titles as exposed in bookmarking interfaces and similar tools.

Secondly, although we are marking up the review itself with itemprop=”description” tags, Google doesn’t necessarily return the start of that text in its summary on the results page. The instructions on the Rich Snippets Testing Tool explain this fact: “The reason we can’t show text from your webpage is because the text depends on the query the user types.” Indeed, as the above screen shot shows, the actual returned text depends on the keyword terms that a user feeds into the query box. Still, having this itemprop is crucial to Google parsing your content as an actual review, so don’t leave it out.

Finally, even though we left out the stars or any other system of quantitative measurement, Google still identified our page as a review and returned it as one of the top results (the actual first result, at least as of this writing and in this particular test case.) The name of the reviewer and the year in which the review was written were presented alongside the result, hopefully encouraging a user to click through to this critical evaluation. This, I think, is proof that a system originally designed for Thai restaurant reviews can be appropriated and used in a way that helps academic web surfers find quality content. As the web gets more crowded with more and more data, it’s incumbent on people in the academy to ensure their content is marked-up in ways which helps people looking for serious research.

Link to this Post | Leave a Comment

Support for Thunderbolt, Apple/Intel’s new high-speed bus, has been slow in coming. Though all new MacBook Pro’s ship with the new port, neither Apple nor any third-parties have shipped any peripherals that take advantage of the the technology.

The first evidence that this could change showed up on the show floor at the National Association of Broadcasters last week. LaCie, which has an existing line of USB2/3 and FireWire 400/800 hard drives, was showing off a four-drive setup configured in a RAID, with each external drive connected serially with Thunderbolt cables:

LaCie Thunderbolt raid

You can see the new connection in heavy use on the back of the setup — the cables physically resemble MiniDisplayPort, but are capable of extremely high data throughput:

LaCie Thunderbolt raid

Here’s the back of one of these new drives — note that there’s no labels yet for the ports, but they will presumbably have the lightning icon which Apple is using for the technology:

LaCie Little Big Disk with Thunderbolt

Also on display was BlackMagic’s Ultrastudio SDI and HDMI to Thunderbolt converter, which will get high-definition video formats into and out of the new standard:

Blackmagic Ultrastudio SDI/HDMI to Thunderport converter

Link to this Post | Leave a Comment

Final Cut Pro X at NAB

Turns out the drive was worth it: Here’s Randy Ubillos, the architect of Final Cut Pro (as well as the new iMovie for iPad) demonstrating a beta version of Final Cut Pro at the National Association of Broadcasters convention in Las Vegas:

Randy Ubillos demos Final Cut Pro X

The video below may seem odd — a standing ovation for the announced price of $300 — but the entire Final Cut Pro Studio package used to cost a thousand dollars more, so these video editors are cheering a dramatic price drop.

Link to this Post | Leave a Comment

Apple at NAB 1999-2011

Lots of excitement and drama in the Digital Video world as rumors are flying that Apple has taken over a meeting of Final Cut Pro users held tomorrow during the National Association of Broadcasters convention. According to most, Apple will use the opportunity to unveil a radical new vision of their non-linear video editor.

2011 will be 12 years since I first attended NAB, and I thought I’d go through my photo archives to see what I had from visiting Apple’s booth on the show floor over the years. Although Apple stopped having a large floor presence at the convention in 2008 (and won’t have one in 2011, no matter what they announce tomorrow), they’ve still been a major player in a multi-way tug-of-war between Adobe, Avid, Discreet and others through the years. We’ll start in…

1999

apple-nab-1999.jpg

The first year after Apple has acquired video editing software called “Final Cut” from Macromedia. This NAB saw a large Apple booth on the show floor, with many blue-and-white G3’s demonstrating the newly-renamed Final Cut Pro. Note the dual CRT monitors in use here: flat-panels were still a way off as affordable, color-accurate output devices. DV and Firewire/1394 was everywhere — as the core of FCP, it was a new standard that everyone was trying to figure out.

2000

I was in New York, but PowerBooks made their debut as “Portable Movie Studios” featuring FireWire for connection to DV cameras. Blue-and-white G3s have turned into the first generation of silver G4s, and Cinema Displays have displaced CRTs. An Italian-language site has three good pictures online, including this one:

nab-apple-2000-2.jpg
Photo: deltatre

nab-apple-2000.jpg
Photo: Jeremy Birn, www.3dRender.com

3DRender.com also has three good quality pictures of Apple’s booth from 2000. From examining them, it’s interesting to note that iMovie and the new iMac DV were featured in the booth as a hardware/software pairing for consumers. The previous year, in 1999, only the Pro-level blue-and-white G3 had DV ports as a standard feature.

2001

I can only find four photos from this year, and none of them are from inside the Convention Center, much less Apple’s booth. QuickTime 5 was released, and Apple announced that many (still) digital camera manufacturers were supporting QuickTime natively — presumably, for saving small movies onto flash memory.

2002

apple-nab-2002-1.jpg

Sorry for the blurry shot, but it’s the one I have that shows the most of the booth. Silver G4s replace the blue-and-white G3s of 1999, and Apple shows off an alpha of their recently-acquired Shake (it would finally ship in July). Here it is being demo’d with some footage from Lord of the Rings on the show floor:

apple-nab-2002-1-2.jpg

Another shot of Apple’s demonstration area, highlighting the promotion of FCP3’s real-time color correction. Please note the Apple rep pictured here is a really nice guy and is in no way responsible for the movie Scorpion King:

apple-nab-2002-1-4.jpg

And here’s a dark shot of Apple’s main theater area in their booth:

apple-nab-2002-1-3.jpg

Other products announced at NAB 2002 included DVD Studio Pro 1.5 and Cinema Tools (24fps editing), together with enhanced DVC Pro Support.

2003

apple-nab-2003.jpg

Phil Schiller actually gave the NAB keynote this year, introducing FCP4, DVDSP2, and Shake 3. Schiller shared the stage with Paul Saccone, and Compressor made its debut as well. All seven parts of the keynote are on YouTube, starting with this one:

Judging from the pictures I took, this NAB show stood out most for the appearance of XRaid, Apple’s disk array technology:

apple-nab-2003-IMG_3462.jpg

apple-nab-2003-IMG_3461.jpg

Close-up shot of Compressor being demo’ed at the main theater:

apple-nab-2003-IMG_3524.jpg

More photos of Apple’s 2003 booth are on ATPM.

2004

Big year for HD:

apple-nab-2004-IMG_8250.jpg

…and G5’s arrive in the XServe:

apple-nab-2004-IMG_8251.jpg

2005

FCP 5 was announced before NAB in, April, and shipped later that May. Tragically I didn’t go to the show, so I can’t show any pictures.

2006

apple-nab-2006-P1000256.jpg

apple-nab-2006-P1000260.jpg

Apple had a really nice classroom set up on the floor, which alternated between training sessions for Final Cut as well as the newly-released Aperture photo editing program:

apple-nab-2006-P1000269.jpg

apple-nab-2006-P1000304.jpg 1394 + XML EDL + QT: Slide from Apple’s NAB 2006 Education Aftershow Presentation

A rare (blurry) shot behind the scenes of the display area:

apple-nab-2006-P1000300.jpg

2007

2007-nab-apple.jpg

apple-nab-2007-appleinsider.jpeg
Photo: AppleInsider

I was in Copenhagen. It was a busy show for Apple: they introduced Final Cut Server and Final Cut Studio 2 (containing FCP 6), together with a new addition Color. Underlying it all was a new editing codec, ProRes 422. You can review Engadget’s live coverage, and here’s Apple’s Demo Reel:

MacBidouille has a great gallery of the keynote, and AppleInsider covers the show floor in pictures.

2008

I was in Sweden, and Apple didn’t have a booth. This was the first time they had skipped a large presence on the show floor, which would continue through 2011.

2009

Again “Apple did not have a booth at NAB 2009,” claims Wikipedia, “however the product was well represented on the show floor in various booths. The RED Camera team relied heavily on FCP during development.” My pictures from the show are here.

2010

Rumors that Apple would return to the show floor with an updated version of Final Cut proved unfounded, and I wasn’t there to snap pictures of the companies that did exhibit.

2011

All I know is, I’ve got my ticket to the Final Cut Pro Supermeet.

apple-nab-2011.jpg

Link to this Post | Leave a Comment

We do a lot of text processing on our big office computer, a six-CPU 3.33GHz Mac Pro. We got this model because not all the software we’ll be running is multiprocessor-aware, and because only certain kinds of tasks are parallelizable anyway. (See this page for a discussion of Mac Pro performance considerations.)

In situations where a program isn’t written to take explicit advantage of multiple cores (beyond whatever Grand Central Dispatch provides at some low level), fewer — but faster — cores are better. And the ‘Gulftown’ Xeon processors in this model can actually adapt to a big, demanding, non-multithreaded task by shutting down some cores that were going unused anyway, speeding up the CPU’s which are actually doing the work.

Nevertheless, I was curious what kind of difference in performance we could get by fully utilizing the 12 cores in this Mac Pro. One of the tools we use all the time is Mallet, a text analysis package from UMass-Amherst. Not all parts of this toolset are written with multithreading in mind, but one which is the train-topics topic modeler.

I ran train-topics on about 15,000 discrete elements of folklore, first with no —num-threads argument and then with —num-threads = 12. The results are pretty clear, in terms of CPU utilization:

I’m not quite sure what the default number of threads is, but I’m guessing perhaps 1 — a single task which is then distributed over the available cores by some combination of the Java Virtual Machine and Mac OS X working together. This accounts for the semi-random CPU use on the left-hand side of the picture above. On the far right, you can see that all 12 core elements are at least 50% engaged on the task at the same time. I have the numbers written down somewhere, but I think the task completed in about half the time with all cores engaged.

Link to this Post | Leave a Comment

Ginza Apple Store

I think this is the post where I observe two points of connection between Japanese consumer culture and products with their origins outside Japan. The first struck me when I walked into the Apple Store in Ginza, the upscale shopping district:

Ginza Apple Store

That shot tells you all you need to know about the success of Apple in what had been a market suspicious of foreign gadgets. The Japanese (and it was mostly Japanese, not foreign tourists) clustered around the iPads and iPhones illustrate the turnaround since Wired’s February 2009 article “Why the Japanese Hate the iPhone.” Or, alternatively, why that article was dead wrong. For a better perspective, consider this recent article in the San Francisco Chronicle about Steve Jobs’ complicated relationship to Sony as a company. Short version: the apprentice has now become the master, at least when it comes to certain kinds of consumer technology.

I asked several people I met in Tokyo (all in the publishing industry) about whether Sony could pull off a comeback in at least the domestic market. And not just against Apple — Samsung is a powerful competitor in other domains outside personal computing and mobile tech. The best answer I got was that Sony had had certain success recently by carefully studying the Japanese middle-school-girl market, and coming out with a digital audio player that precisely targeted that group. I saw several of these colorful Walkman-sucessors in various stores (BIC Camera etc), and will be curious to see if their success is a flash in the pan or if it can extend beyond the domestic market.

On to the edible. I just wanted some place to put two pictures of the way that French macarons have taken Tokyo by storm — and how carefully they are produced and displayed in upscale desert stores:

Macarons

Macarons

Link to this Post | Leave a Comment

About this Archive

This page is an archive of recent entries in the tech category.

More entries in tech: tech: February 2012 (1)
tech: January 2012 (1)
tech: October 2011 (1)
tech: September 2011 (1)
tech: August 2011 (1)
tech: June 2011 (1)
tech: April 2011 (4)
tech: February 2011 (1)
tech: November 2010 (2)
tech: July 2010 (1)
tech: June 2010 (3)
tech: March 2010 (1)
tech: February 2010 (1)
tech: December 2009 (1)
tech: October 2009 (1)
tech: September 2009 (1)
tech: August 2009 (2)
tech: July 2009 (10)
tech: June 2009 (2)
tech: May 2009 (2)
tech: April 2009 (3)
tech: December 2008 (1)
tech: November 2008 (2)
tech: September 2008 (1)
tech: August 2008 (2)
tech: July 2008 (1)
tech: June 2008 (1)
tech: February 2008 (2)
tech: January 2008 (1)
tech: September 2007 (2)
tech: August 2007 (4)
tech: July 2007 (2)
tech: June 2007 (3)
tech: July 2006 (3)
tech: June 2006 (1)
tech: March 2006 (1)
tech: January 2006 (1)
tech: December 2005 (1)
tech: October 2005 (1)
tech: September 2005 (3)
tech: August 2005 (3)
tech: July 2005 (7)
tech: March 2005 (2)
tech: February 2005 (3)
tech: January 2005 (1)
tech: December 2004 (1)
tech: September 2004 (1)
tech: June 2004 (1)
tech: April 2004 (1)
tech: March 2004 (1)
tech: February 2004 (1)
tech: November 2003 (2)
tech: October 2003 (1)
tech: September 2003 (1)
tech: July 2003 (3)
tech: June 2003 (1)
tech: May 2003 (3)
tech: April 2003 (8)
tech: March 2003 (5)
tech: February 2003 (6)

school is the previous category.

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

Recent Activity

Wednesday May 16
Tuesday May 15
Wednesday May 9
Monday Apr 30