Keep iTunes From Forgetting Where Your Stuff Is

I keep our "iTunes Media" folder on our Synology for family sharing purposes. Our various computers with iTunes installed all point to this same location on the network. A significant annoyance with this approach is that iTunes SILENTLY reverts to using a local folder rather than the network folder if it's not available. So files can't be found, new files get put in the wrong place, etc. Then somebody finally notices, files need to be moved manually, you have to fix the iTunes preferences, iTunes spins for awhile while it refreshes... ugh. So I tell my family "make sure you check the iTunes preferences first", but of course they forget because nobody should have to remember something like that.

But I think I might have it licked. Time will tell, but I'm encouraged by early results. Here's the deal:

  1. Create an Automator job that connects to the network folder and then launches iTunes.
  2. Save it as iTunesLauncher.app or something.
  3. Change the iTunesLauncher icon to be the iTunes icon (so you don't have to teach your family to look for something different).
  4. Remove iTunes from everybody's Dock, and put iTunesLauncher.app there instead.

Here's how I have the Automator job set up:

automator settings

The trick for changing the icon is this: go to your Applications folder, find iTunes.app, right-click, and pick "Get Info". Then click the icon here:

itunes get info window

... and CMD+C to copy it.

Then do "Get Info" for iTunesLauncher.app, click the icon, and CMD+V to paste. Now your iTunesLauncher.app should have the iTunes icon. Drag it to your family's various Docks and with any luck nobody notices the difference, and iTunes always has the network folder available on startup so it doesn't get lost in the plot.

Stand Up!

Some happy news, my friend Mark and I formed Raised Square, and have taken our first foray into the App Store, releasing a work break reminder app called Stand Up! Follow the link for details; we're pretty proud of it. For a taste, here's a screenshot:

Stand Up! screenshot

5,271,009

On a recent episode of Roderick on the Line the guys has some fun with dentists. I think I will forever associate dentistry with a bit from one of Alfred Bester's short stories, "5,271,009", in which our hero is presented with a variety of "last man on earth" fantasies, and must face the flaw in each. You can read the whole thing in Virtual Unrealities, a collection of Bester's short stories (or you can read it here), but the bit I remember is from one of the shortest "last man" excursions:

He was the last man on earth.

He was the last man on earth and he howled.

The hills, the valleys, the mountains and streams were his, his alone, and he howled.

Five million two hundred and seventy-one thousand and nine houses were his for shelter, 5,271,009 beds were his for sleeping. The shops were his for the breaking and entering. The jewels of the world were his; the toys, the tools, the playthings, the necessities, the luxuries... all belonged to the last man on earth, and he howled.

He left the country mansion in the fields of Connecticut where he had taken up residence; he crossed into Westchester, howling; he ran south along what had once been the Hendrick Hudson Highway, howling; he crossed the bridge into Manhattan, howling; he ran downtown past lonely skyscrapers, department stores, amusement palaces, howling. He howled down Fifth Avenue, and at the corner of Fiftieth Street he saw a human being.

She was alive, breathing; a beautiful woman. She was tall and dark with cropped curly hair and lovely long legs. She wore a white blouse, tiger-skin riding breeches and patent leather boots. She carried a rifle. She wore a revolver on her hip. She was eating stewed tomatoes from a can and she stared at Halsyon in unbelief. He ran up to her.

"I thought I was the last human on earth," she said.

"You're the last woman," Halsyon howled. "I'm the last man. Are you a dentist?"

"No," she said. "I'm the daughter of the unfortunate Professor Field, whose well-intentioned but ill-advised experiment in nuclear fission has wiped mankind off the face of the earth with the exception of you and me who, no doubt on account of some mysterious mutant strain in our makeup which it make us different, are the last of the old civilization and the first of the new."

"Didn't your father teach you anything about dentistry?"

"No," she said.

"Then lend me your gun for a minute."

She unholstered the revolver and handed it to Halsyon, meanwhile keeping her rifle ready. Halsyon cocked the gun.

"I wish you'd been a dentist," he said.

"I'm a beautiful woman with an I.Q. of 141 which is more important for the propagation of a brave new beautiful race of men to inherit the good green earth," she said.

"Not with my teeth it isn't," Halsyon howled.

He clapped the revolver to his temple and blew his brains out.

Letterpress Thoughts

There are lots of iOS games I love, but Letterpress is far and away the one that has kept my interest the longest. It launched on October 22, 2012 and I've been playing it ever since. Recently Brent Simmons posted his Letterpress rules, prompting Daniel Jalkut to post his. I only have a couple generally applicable rules:

  • No cheating! No cheat apps, no looking up words during play. Of course, you can work on your vocabulary offline as much as you want.*
  • After a win, pass the first move on the rematch. There's an advantage to going first.

Otherwise, when playing strangers, anything goes. But I have some other house rules I sometimes set up with regular opponents:

  • If you reach 50 moves, the game is a tie. Sometimes the game devolves into trench warfare. Some like this, some don't.
  • Word variations that are the same length or shorter than any previously played works are off limits. So if somebody plays STOPPER you can't play STOPPED, but you can play STOPPING or STOPPERS. This can get hard to manage if you aren't also playing the 50-word cap.
  • Tournament format: a win when you go first is worth nothing, a win when your opponent goes first is a break, and is worth one point. Play to five. Loser of previous game goes first.

As for strategy, definitely read Ted Landau's posts, Win at Letterpress: Start Second, Finish First, Exceptional Letterpress Strategy, and Stealing Wins at Letterpress. (Cool thing, I'm the second victim in the games detailed in "Stealing Wins"! I've played Ted five times now, going first each time, and I've lost 'em all.)

Anyway, those are terrific, and I don't actually have too much to add. He even covers the "trench warfare" scenario (he calls it see-saws). A few additional things I do:

  • When the game starts I don't always try to take the easiest corner to lock up, I try to figure out where the hardest area of the board is, and then I try to take the opposite side. So if the NE corner has bad letters, I'll focus on securing the SW, even if the NW and SE are temptingly easy. If the bad letters are centrally located in the north, I'll try to lock down the south. If I'm right, and the hard tiles are what's open at the end of the game, and I've managed to lock down the opposite, I'll be able to secure a larger base than my opponent in the endgame.
  • If my opponent goes first and it seems like they are going after the corner I want (so the corner opposite the badlands), I'll often emphasize dislodging them rather than trying to lock up a different corner (although doing both simultaneously is ideal). I'll try to lock up a tile as close as possible to the desired high ground and build from there.
  • Scan the board for suffixes at the beginning of the game! See if any can be compounded. I first started playing Daniel when he tweeted that he had ended a game with JOVIALNESSES and I was like, "ooh, I gotta play that guy."
  • I often find that if I content myself with merely flipping my opponents tiles, no matter how big a swing that seems to produce, my advantage will wither away. If you're ahead, you have to keep taking new tiles in addition to flipping. I find when I'm not aggressive about this, I end up in a trench (or worse). Sometimes a move that just flips is too good to pass up, but it's easy to get complacent.
  • Take your time, a better word than what you were considering will come to you.

Anyway, Letterpress, great game! Check it out if you don't already play.

* I've only been learning various Q-no-U words as I've been burned by them, but if you want to be more proactive about it, here are all the Q-no-U words in the Letterpress dictionary. No fair looking at this list during a game, though!

Faqir, Faqirs, Fiqh, Fiqhs, Inqilab, Inqilabs, Mbaqanga, Mbaqangas, Niqab, Niqabs, Qabala, Qabalah, Qabalahs, Qabalas, Qabalism, Qabalisms, Qabalist, Qabalistic, Qabalists, Qadi, Qadis, Qaid, Qaids, Qaimaqam, Qaimaqams, Qalamdan, Qalamdans, Qanat, Qanats, Qasida, Qasidas, Qat, Qats, Qawwal, Qawwali, Qawwalis, Qawwals, Qi, Qibla, Qiblas, Qigong, Qigongs, Qin, Qindar, Qindarka, Qindars, Qins, Qintar, Qintarka, Qintars, Qis, Qoph, Qophs, Qorma, Qormas, Qwerties, Qwerty, Qwertys, Sheqalim, Sheqel, Sheqels, Talaq, Talaqs, Tranq, Tranqs, Tsaddiq, Tsaddiqim, Tsaddiqs, Tzaddiq, Tzaddiqim, Tzaddiqs, Waqf, Waqfs, Yaqona, Yaqonas

If your opponents didn't think you were cheating before, they certainly will after you roll out TSADDIQIM!

Recommended "Watch Instantly" Movies

Here are all the movies I rated either four or five stars on Netflix that are available to stream as of 2/24/14. I compile this list from the Netflix Watch It Again page. The code I use follows this list, if you're into that kind of thing.

I run this code in Firebug to generate the Markdown that Pelican then converts to the HTML you see above. Note that you have to scroll all the way down the Watch It Again page so that all the titles are loaded before running this script.

var movies = [];
var result = '';

function titleSort(a, b){
   var aTitle = a.title.replace(/^(a|an|the) +/gi, ''); 
   var bTitle = b.title.replace(/^(a|an|the) +/gi, ''); 
   return ((aTitle < bTitle) ? -1 : ((aTitle > bTitle) ? 1 : 0));
}

jQuery(".mdpLink").each(function(index) {
   var title = jQuery(this).text().trim();
   var tv = title.toLowerCase().indexOf("episodes)");
   if (tv <= 0) {
      movies.push({
         title: title,
         href: jQuery(this).attr('href').replace(/\?trkid=[0-9]+/gi, ''),
         loved: jQuery(this).closest("td").siblings(".cell-starbar").find("span .sbmf-50").length
      });
   }
});

movies.sort(titleSort);

jQuery.each(movies, function (i, movie) {
   var title = movie.title;
   if (movie.loved) {
      title = '**' + title + '**';
   }
   result = result + ' - [' + title + '](' + movie.href + ')' + '\n';
});

console.log(result);

Instamorph Magnetic Doorstop

Our mudroom door has an annoying tendency to close part way, so I wanted to hold it open, and yet we go behind that door all the time for aprons and mops and stuff so it needed to be easy to open (I didn't want a rock or whatever that I'd have to kick out of the way and reposition all the time). The off-the-shelf magnetic doorstops I've tried have sucked, because they are too strong, make a loud noise when they engage, etc. So I whipped up something with the existing doorstop, some Instamorph, and a couple rare earth magnets I had on hand. It's not pretty, but it's the mudroom and behind a door we keep open, so that's okay.

The hacked doorstop (I removed the existing rubber head, and buried one of the magnets in the new Instamorph head) and door plate with magnet (underside view):

doorstop 1

The door plate installed:

doorstop 2

Engaged!

doorstop 3

I had to heat up the surfaces a couple time to remove extra Instamorph and then reflatten them because they were initially too thick for the magnets to attract enough through. I just set the stove burner (glass cooktop) on low, put down some foil, then some wax paper over that so the Instamorph wouldn't stick, and pressed the piece down on it to melt it.

What About Removing Ratings Entirely?

This post by John Gruber touched off a lively debate on whether and how developers should prod users for ratings. The nag screens sure are obnoxious, but good ratings are pretty important in bringing your app to the surface in a very crowded App Store. Rather than enter the debate, I wonder why users have to explicitly rate apps at all, when they are implicitly rating them all the time? What if, instead of reviews, Apple were to score apps by a variety of criteria, awarding some number of (undisclosed) points, on a per-user basis, for:

  • Being currently installed
  • Being in the dock
  • Being on the first page
  • Being on the second page
  • Being on the same page (or in the same group) with a bunch of other apps that get a lot of use
  • Being regularly updated
  • Time spent in active use (maybe just for games, as it's tricky given the wide range of usage patterns across app types)
  • Having push notifications enabled and sending them with some regularity (it is implicit that the user finds this valuable rather than annoying, and this catches apps that serve a purpose but that the user doesn't launch often, so aren't in a prominent screen location)

And an app would lose points (or at least not score) for:

  • Being on a page or in a group with a bunch of other apps that mostly never get launched and never send push notifications
  • Crashing (maybe?)

This is a half-baked thought, and you'd want to weight these somehow, but it seems to me like this would be a decent measure of ongoing value to the user. Certainly, when I consider my own phone, these criteria give a very accurate picture of current value to me. Sure, there will be users that don't organize their phones at all, but they would be pretty easy to discard (or deemphasize) from the dataset based on usage patterns, I'd think.

Apple could then incorporate this into App Store search weighting, along with category, search keyword, download trends, etc. Maybe they could also start spidering the web (if they don't already) looking at incoming links for an additional weighting factor (in addition to direct links to apps in the App Store they could look at links to developer websites associated with those apps (which they have on file)).

This won't solve the "rich get richer" problem (which does seems pretty baked into capitalism), but Apple could blunt the feedback loop a bit by:

  • Introduce some randomness into the search result ordering
  • Mix in some relative newcomers each time

So the rich will keep getting richer (as they should, in many cases) while still exposing some up-and-comers.

Finally, under a scheme like this developers aren't penalized for updating their apps (currently an update wipes out ratings).

(NOTE: This is mostly a repurposing of a previous post I made during a similar App Store dust-up awhile back.)