3 posts with tag “tutorial”

Upgrading Ubuntu through a Mirror

I’d begun my upgrade to Jaunty last night around 7pm, and woke up this morning to find that the package downloads had hardly made any progress. This because the main Ubuntu servers are being hammered due to Jaunty’s release yesterday morning.

I followed one tutorial that should have set me up to download (and upload, I assume) all the packages through a peer-to-peer protocol, but that didn’t seem to help at all. It did make me more comfortable editing my /etc/apt/sources.list file, however, so I thought I’d try sticking some mirrors in there, rather than using the generic us.archive.ubuntu.com servers.

I found this list of mirrors, and noticed that there was one at MIT, only several blocks away from my apartment. I went into sources.list

sudo gedit /etc/apt/sources.list

…and did a search/replace on all instances of us.archive.ubuntu.com/ubuntu/ with ubuntu.media.mit.edu/ubuntu/. Re-ran the upgrade through update-manager, and I was downloading at blazing speeds that completed in just about five minutes.

If you’re having a rough time getting your upgrade to complete, find a nearby server from this list and stick it into your sources.list file.

Looking forward to using 9.04!

Leave a Comment

Ubuntu, Font Hinting, & You: A Cautionary Tale

This post was written regarding Ubuntu 8.10, Intrepid Ibex.

This isn’t the first time I’ve encountered hinting; I’ve seen it before in GIMP, even when I was using it in Windows, this font rendering option that was inexplicably on by default, and resulted in horrible kerning and misshapen letterforms. I don’t claim to know a lot about the technicalities of hinting, but everything I do understand about it agrees that it is meant to improve the shapes of letters. If this is the case, somebody is doing something very, very wrong. I haven’t seen a hinted font that looked anything other than sickly and disheveled.

I’ve complained before about the typography in Ubuntu, but my contention then was with the fonts that were in use by default, not with the way they were rendered. What I didn’t realize at the time is that the rendering is the bulk of the problem.

applicationsmenuI found this image on the Ubuntu site, and I am still in disbelief that they choose to represent themselves with font rendering like this. Look at that capital ‘A’ and ‘V’; look at the way that lower-case ‘l’ towers over its neighbors, nothing more than a single-pixel-width vertical line; look at the kerning in the ‘Rem’ of ‘Remove’ – it’s no wonder Ubuntu has about a 2% worldwide market share. They expect people to want to look at that every day of their lives? I know these are relatively subtle details, but their effects are subliminal and, I believe, psychologically hazardous.

~/.fonts.conf

Of course, when it comes to Linux, for every problem there are a few dozen solutions – or one very, very complicated solution. GNOME, the default desktop for Ubuntu, arrives with a “Font Rendering Details” dialog box in its appearance settings, to placate the mouth-breathing philistines who need a GUI to get things done. And it doesn’t really help much. I knew I’d have to get my hands dirty in ~/.fonts.conf, this XML file that is capable (and only capable) of incredibly fine-tuned font tweaking.

[Fonts are] the #1 reason why Linux hasn’t seen any significant adoption on the desktop/laptop yet. Robert Scoble

The trouble, as is the case with most Google results you get when looking for help with Linux, is that there is a glut of quick fixes, blocks of code directed towards one specific person and their specific system, that they are then told to paste into a file or save into a directory, with little to no explanation about why this solution is going to work. Or there’s the technical documentation that isn’t geared towards users. There’s no middle ground (unless you count the occasional, skeletal wiki that hasn’t been updated since 2004).

Only after looking at countless ~/.fonts.conf examples was I able to glean what was going on inside them. The full power of this file allows you to target with amazing precision any variant or size of any font your system might display and give it its own unique properties; but there are really only three(ish) of these properties that you need to know about, and I am going to explain them here.

antialias

Anti-aliasing is the trick that makes your pixels not look like pixels. You’ve noticed this when you’ve seen poorly resized images with jagged edges – they’re not properly anti-aliased. Similarly, if fonts are not anti-aliased, they look like black Tetris pieces on a white background. Anti-aliasing is going on all the time without you knowing about it, and you’d really have to make an effort not to have it, but it’s worth putting in your ~/.fonts.conf file for good measure. You’ll want to apply it to all fonts on your system, so the syntax would be:

<match target="font">
 <edit name="antialias" mode="assign">
  <bool>true</bool>
 </edit>
</match>

You can probably figure out what these things mean, but I will link to a complete manual for ~/.fonts.conf syntax at the end of this post.

rgba

This one is a matter of personal preference, I guess. I don’t see how anybody of sound mind could stand to have pink, beige, and turquoise pixels sprinkled around the edges of their letters – the result of “sub-pixel rendering” – but I guess the argument is that it allows them to be sharper. Whatever.

Trust me when I say that things look best if you tell ~/.fonts.conf to disable sub-pixel rendering, which is done like so:

<match target="font">
 <edit name="rgba" mode="assign">
  <const>none</const>
 </edit>
</match>

If you happen to be schizophrenic, or colorblind or whatever, then yes, fine, you can turn on sub-pixel rendering by changing none to rgb, to reflect the composition of your monitor’s subpixels (which are almost certainly in the order Red-Green-Blue, from left to right). Have fun scratching your eyeballs out.

rgba=rgb

rgba=rgb

rgba=none

rgba=none

Admittedly it would be nice if there were some antialiasstyle property you could set to antialiasslight or something, to lighten up those gray pixels a little bit.

hinting / autohint / hintstyle

Put it on my tombstone: Turn Off Hinting. I’m begging you. If somebody tries to tell you that this is a matter of preference, they are lying to you, and are not your friend, and are probably banging your girlfriend. If you leave hinting on, Georgia will not look like Georgia, Lucida will not look like Lucida, and Nimbus will not look like Helvetica.

hintstyle=hintnone

hintstyle=hintnone

hinting=true, autohint=true

hinting=true, autohint=true

Here is how you Turn Off Hinting®:

<match target="font">
 <edit name="hinting" mode="assign">
  <bool>false</bool>
 </edit>
 <edit name="autohint" mode="assign">
  <bool>false</bool>
 </edit>
 <edit name="hintstyle" mode="assign">
  <const>hintnone</const>
 </edit>
</match>

Alternatively, if you positively demand more “crispness” from your fonts, even at the expense of aesthetics, you might want to give slight hinting a try. From the above code, change hinting and autohint to true, and hintstyle to hintslight:

hintstyle=hintslight

hintstyle=hintslight

That’s it, roughly speaking. It’s my understanding that some specific fonts do look better if specifically targeted and adjusted with maybe slight hinting. But that’s for another day. If you do as I’ve instructed, things will be so much better for you. Leave a comment if you want my PayPal address.

This post would not have been possible without the help of these sites:

  • ArchWiki: I know nothing about Arch Linux, but this wiki page has a lot of good info.
  • fontconfig.org: the most complete and recent ~/.fonts.conf reference I’ve found.
  • Ubuntu Wiki: contains an example of a very comprehensive (if dated) ~/.fonts.conf file. Study it and learn how to do other stuff.
  • The Masterplan: another sample ~/.fonts.conf file, and the only other one that I know of that turns off hinting and subpixel rendering.

34 Responses

How to Save One, Many, or All Items from a Google Reader Feed Locally

Google Reader, employing Google’s petabytes of storage, archives every feed item it’s ever pulled for you. This has always amazed me, as I’m sure I and everyone else must be using far more in Reader than the 5 gigs we get from Gmail. Still, they don’t have much of a choice; it wouldn’t do anybody good if you could only see the 10 or 20 items present on a feed’s XML file at any given time. And even though they’re probably clever enough to only have to store one copy of every item for that item’s hundreds of thousands of readers, they’ve practically built a third copy of the internet (after their cache).

A nice fallout of this archiving is that whenever content you’ve subscribed to disappears from the web, you’ll still be able to access its (admittedly homogenized) Reader copy, forever; “forever” here meaning “presumably for as long as Google is around.” When (if?) Google dies, will its data die with it? Despite my intuition that Google will long outlast current notions of what computers are and how they work, I still don’t like entrusting important data to other people, not to mention data that is accessible only through the web. I want a local copy.

But they don’t make it easy for you. Reader is all AJAXed out, so even simple page saves don’t work. Copying/pasting would be a nightmare. Screenshots? Too sloppy. Emailing copies of each item? Too time-consuming. Tagging them with a special tag, making that tag’s feed public, then subscribing in, like, Thunderbird or something? Even if that weren’t absurdly roundabout, the public feeds only have twenty or so items.

I’m talking specifically about a blog I loved, but that up and disappeared one day, completely, leaving the only copies of the lost data scattered throughout Netvibes, Newsgator, Bloglines, and Reader. Google searches turned up nothing like a straightforward guide to saving from Reader, which surprised me. But there were clues, and using only a couple tools, I finally got it. It’s actually pretty easy, I was able to save 118 items in about ten minutes with this method. Let me show you it.

You need Firefox, the two plugins Greasemonkey and ScrapBook, and the Greasemonkey script Google Reader Print Button. Then it’s just a matter of clicking “Print” for each item you want to save, which opens it in its own tab, then using ScrapBook’s “Capture All Tabs…” function, which automatically does a “Save Page As, Web Page, complete” into your %AppData% folder for each tab, then finally optionally using ScrapBook’s “Combine Wizard” (in the tools menu of the ScrapBook sidebar [Alt+K]) to put all the items into a single folder with a single index.html file.

The “printing” part is the most cumbersome, but goes by pretty quickly with the repetition of a series of clicks and keystrokes:

  1. Click “Print”
  2. Press Esc (to close the print dialogue)
  3. Press Ctrl+Tab (to get back to Reader)
  4. Press J (to go to the next feed item)

Do that mindlessly for a couple minutes, and they’ll all be there, waiting to be saved. I’m gonna put the word “disk” in here too so that anybody Googling for a solution might find this.

6 Responses