Prog rock: the sound of history’s future

It is the combination of the music and the cover that Lake explains is like a cocktail: “You can put certain elements into a glass and nothing happens. If you put one extra element in, the whole thing becomes effervescent.” This is the alchemy of rock and roll, where the songs, lyrics, art, and even the band’s logo can become a whole experience that you can hold in your hand when you hold an album.
Boing Boing: “Prog rock: the sound of history’s future”

I always have been, and will always be, a prog rock fan. Prog was the first genre of music that really captured my attention during my formative years.

The Chocolate Season

A former co-worker of mine used to call the time between Halloween and Easter “The Chocolate Season.” I have no idea where she got it from, but the label does immediately make sense when I think about it. In my world, Halloween, Thanksgiving, Christmas, Valentine’s Day, and Easter all line up in a relentless parade of sweets. Obviously, there is more than just chocolate involved here, but chocolate does provide a handy culinary benchmark with which to characterize these holidays. So, I go with it. It’s an easy joke in conversation.

I am not a health fanatic by any stretch, but I make a point of actively deciding from where my indulgent calories will be delivered, which generally boils down to either sugar or alcohol. If I have one in a given day, or know I will be having one at some point in the day, I won’t have the other. Neither are good for my girlish figure, but they are good for the soul. I see nothing wrong with enjoying either, just never at the same time and always in moderation. I derive relatively more satisfaction from alcohol—insert ill-fitted and inappropriate alcoholism joke here—so my junk food intake is pretty minimal.

Because of this active caloric decision-making, I can walk away from a cookie tray or dessert platter without thinking. But I see one fucking Reese’s Peanut Butter Cup and all of a sudden I get that nicotine “itch” in the back of my brain that causes me to obsess like the little sugar fiend that I know myself to truly be. My paradoxical strength and weakness is, and always has been, peanut butter. Peanut butter is versatile, good for a quick lunch that fills me up but amazing when combined with chocolate. Seriously, I have yet to come across a peanut butter cup that I didn’t like. The problem that has revealed itself is that Reese’s has done an absolutely fantastic job at embedding itself in Halloween and Easter, and I fear that the remaining holidays aren’t too far behind. Though I think Valentine’s Day will be a tough one for Hershey’s if only because there is little romance in anything other than just pure chocolate. Either way, Halloween kicks off six months of testing my will power. As my wife is fond of saying: “Ugh.”

EFF: Adobe Spyware Reveals (Again) the Price of DRM: Your Privacy and Security

The publishing world may finally be facing its “rootkit scandal.” Two independent reports claim that Adobe’s e-book software, “Digital Editions,” logs every document readers add to their local “library,” tracks what happens with those files, and then sends those logs back to the mother-ship, over the Internet, in the clear. In other words, Adobe is not only tracking your reading habits, it’s making it really, really easy for others to do so as well.
EFF: Adobe Spyware Reveals (Again) the Price of DRM: Your Privacy and Security

Adobe collects information about whatever book you happen to be reading using Adobe Digital Editions, which potentially means your entire ADE collection. Then ADE sends that information back to Adobe in the clear, meaning anyone snooping can read it.

Intentional or not, I find none of this surprising.

Sanitizing Strings with NSCharacterSet and NSScanner

Funny how, after all these years, I hadn’t needed to clean a string of an arbitrary set of unwanted characters on a large scale, but I am doing a ton more XML work these days, so it was bound to happen. I don’t remember where I stumbled upon the idea to use NSScanner, but once I saw it, it made perfect sense. I think there’s some excess baggage between the buffer string and the fact that the string is scanned anywhere between O(n)O(n2) (if not worse, actually). But, this is certainly a more elegant solution than doing all the heavy lifting myself between the set and the string.

- (NSString *)sanitizeString:(NSString *)str withSet:(NSCharacterSet *)set {
	NSScanner *scanner = [NSScanner scannerWithString:str];
	NSString *buffer;
	while ( [scanner scanCharactersFromSet:set intoString:&buffer] ) {
		NSRange range = [str rangeOfCharacterFromSet:set];
		if ( range.location != NSNotFound ) {
			str = [str stringByReplacingCharactersInRange:range withString:@""];
	return str;

To use:

NSString *string = "A string that might have funny characters in it.";
NSCharacterSet *set = [NSCharacterSet illegalCharacterSet]; 
NSString *result = [foo sanitizeString:string withSet:set];

Github Student Developer Pack

There’s no substitute for hands-on experience, but for most students, real world tools can be cost prohibitive. That’s why we created the GitHub Student Developer Pack with some of our partners and friends: to give students free access to the best developer tools in one place so they can learn by doing.
Github Student Developer Pack

The list of software and subscription offers is truly impressive. I won’t use half the stuff, but others like Atom, I’ve been wanting to try, but haven’t for precisely the reason they give.

About that “conversational tone”…

I find the conversational tone sometimes found in entry-level technical documentation to be maddening at times. To wit…

[insert technical information]

Now because we are all friends here I’m going to share a secret with you. Come closer. Get in here. Let’s have a huddle. [insert non-intuitive technical information]


Now don’t get too worked up. [insert follow-up technical information]
Laravel: Code Bright

Clearly, I am not the target audience, but I think this is beyond necessary. I would speculate that anyone who is reading about a PHP framework has enough experience with technical material they don’t need their hand held like this. This amount of conversational tone makes using this material as a reference challenging later. There are ways to be conversational without being wasteful of everyone’s time and obstructive. I don’t see this very often where I roam around, but when I do, I cringe for the author every time I read it.

The same goes with including “um,” “hrm,” “erm,” and “well, let’s see…” and language devices of their ilk anywhere outside of an interview transcription. Just write the damn passage already.

Adobe Digital Editions is *still* the worst ebook reader I have ever used.

Somehow, Adobe managed to upgrade Adobe Digital Editions from version 2 to version 3 with absolutely no improvement. This is impressive in its own way. Text selection for highlighting is still a complete disaster. The app still translates my moving the pointer one pixels to jump the selection of a single sentence to half a paragraph, a problem that inarguably plagued the last version.

That the app was allowed to be released with such a major bug in a vital feature of any ebook reader, is astounding to me. Now I get the impression that the app lives in some sort of development backwaters, using version numbers simply to call attention rather than indicating any real improvements (which puts it in line with past Creative Suite upgrades).

For a company that is in the business of making books and wants to be in the business of eBooks, Adobe Digital Editions is just an embarrassment.

I’ll know it when I see it, and this isn’t it.

SILE versus Word

When most people produce printed documents using a computer, they usually use software such as Word (part of Microsoft Office) or Writer (part of Open/LibreOffice) or similar–word processing software. SILE is not a word processor; it is a typesetting system.

SILE versus TeX

SILE is basically a modern rewrite of TeX.

SILE versus InDesign

InDesign is a complex, expensive, commercial publishing tool. It’s highly graphical–you click and drag to move areas of text and images around the screen. SILE is a free, open source typesetting tool which is entirely text-based; you enter commands in a separate editing tool, save those commands into a file, and hand it to SILE for typesetting. And yet the two systems do have a number of common features.

So, essentially, this is a rewrite for TeX. But the reality is that creating complex layouts really, truly requires GUI layout tools. No matter how good the output is for this application, it’s entering into an firmly-established market with a few, large, expensive players, and not a lot of action. Publishing automation tools are nothing new, but one has to give up a certain amount (usually a lot) of control to create a document on the cheap. Even for those workflows that are intensely reliant on templates, designers are still working in InDesign for the initial design, which is then handed off to a person, or more frequently a system, to translate into something to be automated.

TeX has already been done, and automated layouts have already been done. I’m a long-time user of TeX, and I love it, but I don’t feel this has a long road in front of it.

Be careful what you ask for because you are going to get it.

This video has been making the rounds, so I thought I would take a shot at it…

I’m not really sure where to begin with this, so here’s everything that immediately came to mind upon watching this. All of this would apply to any smartphone, not just Apple’s. Choose what you like…

  1. I find your use of the phrase “for Science” offensive.
  2. Learn to take care of your shit. None of what you have done, or are ostensibly simulating, is a good idea. I don’t believe for even one second that placing the phone in your front pocket would require it experiencing this amount of pressure. Put it in your back pocket where it could experience this amount of pressure, however, and…well…you get everything you deserve by doing so. So, learn to take care of your shit.
  3. In other news, twentysomethings learn that shit is expensive when you have to pay for it yourself. Film at 11.
  4. Can we go back to complaining about battery life and antenna performance? Because this video is a waste of everyone’s time.
  5. Be careful what you ask for because you are going to get it.