“Proxy mode” added in refine_viaf 1.4

A refine_viaf user recently commented that she would like to get Library of Congress IDs for the name candidates in OpenRefine, instead of VIAF IDs.

It would be ideal if the name IDs for LC and other sources could be additional fields in the JSON data returned from refine_viaf, which you could then extract using some GREL code. Unfortunately, OpenRefine doesn’t allow you to access additional fields on name candidate objects.

So I’ve created a separate “proxy mode” that returns IDs used by source institutions themselves, rather than the VIAF IDs. To use proxy mode, add a reconciliation service in OpenRefine using this URL format instead of the usual URL:

http://refine.codefork.com/reconcile/viafproxy/LC

One quirk is that OpenRefine will create broken hyperlinks for a few sources (at the moment, these are BNC, BNF, DBC, and NUKAT). This is due to the fact that the IDs in these URLs don’t match the name record IDs, which is a requirement for the hyperlinking mechanism to work properly.

In short, you can now use refine_viaf to reconcile “directly” against the name authority records of VIAF’s source institutions, which should be useful to many people.

Goodbye, Sublime Text?

When one of my coworkers started using Sublime Text about a year ago, I was intrigued. I played with it and found it to be a very featureful and speedy editor. I wasn’t compelled enough to make the switch from Emacs, though. (You’ll pry it from my cold dead hands!) But I really liked the fact that you could write plugins for it in Python.

So for fun, I gradually ported my emacs library, which integrates with a bunch of custom development tools at work, to Sublime Text. It works very well, and the ST users in the office have been happy with it. Although I don’t actually use ST regularly, I’ve since been following news about its development.

What I discovered is that many of its users are unhappy with the price tag and dissatisfied with the support they received via the forums. So much so, in fact, that there’s now an attempt to create an open source clone by reverse engineering it. The project is named lime.

I learned about this with very mixed feelings. There’s a good chance the project will take off, given how much frustration exists with ST. Of course, the trend is nothing new: open source software has been supplanting closed source commercial software for a long time now. But this isn’t Microsoft or Oracle we’re talking about; it’s a very small company, charging what I think is a reasonable amount of money for their product. While they undoubtedly could do more to make their users happier, I imagine that they probably can’t do so without hurting what I imagine are pretty slim profit margins. That, or not sleeping ever again.

It’s not news that making a software product is much less viable than it used to be. Where money is made, it’s increasingly through consulting and customization, but one wonders about the size of that market.

It’s generally a good thing that open source has “socialized” software development: technology has enabled communities of programmers to contribute and collaborate on a large scale, in a highly distributed fashion, to create good quality software available to all, taking it out of the profit equation. The problem is that the rest of the economy hasn’t caught up with this new kind of economics.

I don’t mean to sound dramatic: there are many jobs out there for programmers, of course. But it saddens me that if you want to try to create a product to sell, it’s simply not enough to have a good idea anymore, in this day and age. It has to be dirt cheap or free, you have to respond to every message immediately, and respect every single feature request. Between the open source world and the big software companies that service corporate customers, there is a vast middle ground of small companies that is quickly vanishing.

Disabling the Open Sans font in the Twentytwelve wordpress theme

This seldom-updated blog uses WordPress, which for the most part works very well for my purposes.

I happened to view it using the Google Chrome browser today and noticed a font problem in the Twentytwelve theme. The links in some of my posts were running right up against the text preceding them. Here’s a screenshot:

fontproblem

Notice how there’s no space between “do” and “multiple dispatch” (the second link).

This only happens in Chrome. In Firefox, it looks fine. It appears that using the “Open Sans” font causes Chrome to render the text inside a hyperlink with an improper amount of spacing beside it in some cases (not all).

I wanted to fix this for Chrome but keep the Open Sans font in other browsers, since I like it better than the other sans serif fonts. After a bit of playing around, this is the cleanest way I came up with to accomplish this.

Step 1) Create a child theme. I made a directory called “twentytwelve-jeff” in the wp-content/themes directory and created a style.css file, per the WordPress instructions, that looks like this:

Step 2) Create a functions.php file in that directory, with the following contents:

The code looks for Chrome in the user agent header; if it finds it, it removes the “custom-font-enabled” css class from the body tag, which had been added by the stock twentytwelve theme. Note the priority level; the default is 10, so we set our priority to 20 to ensure this filter runs after the one in the base theme.

Using a child theme avoids making changes to the twentytwelve theme, which is desirable, since any updates would overwrite your changes. You should be able to update twentytwelve and the above child theme should still work.

Ubuntu Woes with the Samsung Galaxy S3

Last week I purchased a Samsung Galaxy S3. It’s a beautiful phone, and I’ve been happy with it so far. Getting it to work with Ubuntu, so I can transfer or sync my music files with it, has been a huge headache, however.

The short of it is this: version 1.1.0 of libmtp, which is what’s packaged with Ubuntu 11.10, doesn’t seem to work with the Galaxy S3. (MTP is the protocol the phone uses to transfer files to and from a PC. Unlike the previous Galaxy devices, the S3 doesn’t mount as a normal USB drive.) The phone just doesn’t get recognized. After reading this bug report, I downloaded the source for the latest version, 1.1.5, and compiled it by hand. (Note: you’ll need to install a -dev package for libusb via apt-get.) That was partially successful: the gmtp program could connect to the phone and show files and directories, but Banshee (2.2.1) now crashed on startup. I was hoping to use Banshee, since it’s a nice iTunes-like music management application that I’d already been using regularly. I could try the latest Banshee (2.6) by compiling that by hand too, but that feels like a bigger ordeal than I’d like to deal with right now.

The easiest solution, of course, is to upgrade to a newer version of Ubuntu with newer versions of all the above software. But 12.04 ships with libmtp 1.1.3, and 12.10 ships with 1.1.4, and I have no idea whether these are recent enough to work.

I’ve been putting off an upgrade because I’m not even sure I want to stick with Ubuntu at all, given the recent issues with data privacy in 12.10.

So it looks like I’m out of luck, in terms of using Banshee to sync music on my current OS installation. I’ve resorted to installing an FTP server on the S3, and copying music that way. It’s awkward and annoying, but it will have to do for now. Perhaps I will write a quick script to do better facilitate music sync’ing over FTP…

(NOTE: This blog post was reconstructed after my super-light traffic WordPress database got mysteriously corrupted this afternoon. Thank you, MySQL. This has not been the greatest of technology days.)

When Your Blackberry Loses Its EDGE

An old entry about my T-Mobile phone gets some search traffic, so I thought posting about this experience might be helpful to other desperate googlers as well.

Two days ago, the Internet access—that is, the EDGE connection—on my Blackberry Curve stopped working at my apartment. Voice calls still worked fine. Occasionally the signal would flicker between GSM and EDGE, which has never happened in the past. If I walked four blocks away, applications like the browser and mail client would work again. EDGE also worked on campus, four miles away. So, for some mysterious reason, this problem was location-specific to just the tower near my apartment. It took two days to even figure all of this out.

Three separate calls to T-Mobile did no good, mostly because I didn’t have easy access to another line so they could troubleshoot my Curve. They did something called a “location reset,” if I remember correctly, but that didn’t help. So I started googling some forums and experimenting.

From what I’ve pieced together, the problem above can occur if Service Book settings get corrupted. The way to fix this is to get a new set of Service Book data sent to your phone from the provider. On the Curve, you do this in the following way:

– Select “Options”
– Select “Advanced Options”
– Select “Host Routing Table”
– Hit the Menu key and select “Register Now”
– The phone will re-register with the provider, who will send new Service Book data to the phone.

Obviously, EDGE has to be operational for the data to be sent, so this fix only works if EDGE is broken in certain locations but you can still make the registration request elsewhere.

Hope this helps someone.