• Media Diet, First Half of 2016

    A quick review of the various media I’ve enjoyed the first half of the year. Not an exhaustive list, just hitting the high points and where I’ve spent the most time.

    Video Games

    Legend of Zelda: Breath of the Wild: I checked the Switch’s play time: 140 hours. I regret nothing. Takes everything great about the Zelda series, and really harkens back to the original (no directions). Adds in modern gameplay devices. I think I have one or two uncompleted side quests, but I’ve found every shrine, and have almost completed the first DLC. Play with the Japanese audio if you can, or rewatch some of the cut scenes with it. Probably game of the year for me.

    Night in the Woods: I backed this on Kickstarter, and it came out this spring. Fits well into what I enjoy out of indie games: story and character driven. It rewards exploration and talking to everyone. Great music too.

    Final Fantasy XV: First Final Fantasy game I’ve played since 9. Excellent mechanics, good balance of difficulty, and the game keeps things moving along. I never felt like I was grinding. The large open world was fun to explore. Finished it in a little over 60 hours. Very weak with the story, a lot isn’t fully explained in game. The characters are weak, and the “spontaneous dialog” in the car quickly becomes repetitive. Music wasn’t used as well as previous entries in the series. The fact the car stereo is populated with the previous games’ soundtracks was wonderful. And now I want to go back and play Final Fantasy VI.


    Console Wars: Sega, Nintendo, and the Battle that Defined a Generation: I grew up in the generation being described, but I missed most of the media tied to it growing up in Alaska without cable. Absolutely fascinating to hear how the 16-bit generation happened. Very well written, kept me engaged (far to rare with non-fiction).

    Nebula and Hugo nominees: I read most of the Nebula and Hugo nominees. The Incomparable did an episode on them that I’d recommend listening to. I enjoyed All the Birds in the Sky more than them, but it did drag in the middle. However Ninefox Gambit stood out to me. Very different story, with an interesting world. The sequel was equally good, telling the story in a different fashion from the first, keeping it interesting.

    The Caledonian Gambit: Science Fiction spy thriller. That is a weak summary. Good start to Dan Moren’s fiction career. It was a good, quick read. Can’t wait for the next one.


    Your Name.: Beautiful and fantastic. It starts out very much as one movie (and does that well), but becomes something totally unexpected. Also, great soundtrack. I pre-ordered the release of the Japanese Blu-ray (since it still doesn’t have a US release date, and I just need English subtitles).

    Wonder Woman: Very well done. Look, just listen to The Incomparable episode.

    Guardians of the Galaxy: Vol. 2: Fun movie. Played many of the same riffs as the first, to great effect. A couple of absolutely beautiful scenes with great use of color.


    Steven Universe: Not watching much of TV, but Steven Universe continues to keep me wanting more. Cartoon Network’s weird scheduling continues to frustrate. The soundtrack came out recently, and it a lot of fun to listen too. That got me into a slow re-watch I’ve been doing, which has been very enjoyable.

    What I’m Looking Forward To

    A short list: Thor: Ragnarok, Star Wars: The Last Jedi, Mary and the Witch’s Flower, Destiny 2 (The beta was a lot of fun), Mario Odyssey.

  • Book of Bad Video Game Translations ↗️

    This be book bad translation, video games!: A book collecting classic examples of bad translations in video games. Lots of pictures, and examples from a long period of time. A fun read, and given it is just $15, well worth it for anyone who wants a few more examples beyond “All your base”.

  • A Blog Reboot

    Welcome to the reboot of scottr.org. This is the third version of my site. The original is still available. The second was at iosdevelopmentjournal.com, which is now just all the posts before this one.

    This iteration is heavily inspired by kottke.org and Daring Fireball. I plan to post links of things I find interesting, and longer posts about stuff. My personal posts will range from commentary on other stuff online, programming things, games, and probably a burger review or something.

    The site is still very much in development. Posts have tags, but there isn’t a way to view all posts with a certain tag. Link posts’ titles are links to their site, but the RSS and JSON feed don’t respect this (ala Daring Fireball). The design is a modification of Jekyll’s default theme. Code highlighting is lame at the moment.

  • NSURLSession delegateQueue Silently Fails if Passed The Main Queue

    Of important note: If you want your callbacks to come on the main queue, you cannot create an NSURLSession with sessionWithConfiguration:delegate:delegateQueue: and pass [NSOperationQueue mainQueue] as the delegateQueue argument. All requests will silently fail, and never return if you do.

    Instead you must continue to us dispatch_async(dispatch_get_main_queue(), ...) or [[NSOperationQueue mainQueue] addOperationWithBlock:...].

  • Asynchronous Networking with NSURLSession

    iOS 7 introduces an entire new networking stack for developers, NSURLSession. Generally it makes the common tasks simple, and the hard tasks possible. It also drives the new background fetch capabilities as well.

    Like my earlier post, offloading your networking from the main thread is a simple way to help keep an app responsive. Doing this with NSURLSession is actually quite easy.

    NSURL *url = [NSURL urlWithString:@"http://iosdevelopmentjournal.com"];
    NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url
                              ^(NSData *data, NSURLResponse *response, NSError *error) {
        if (data) {
            // Do stuff with the data
        } else {
            NSLog(@"Failed to fetch %@: %@", url, error);
    [task resume];

    This will run the networking off of the main thread, and the callback will come from a system network queue. Generally this is what we want. If you want to have control over what queue the callback comes from, or to be able to handle authentication requests, you should create your own NSURLSession and delegate.

subscribe via RSS or via JSON