Categories
Uncategorized

Where will Bill Simmons Land?

M.G. Siegler [500ish Words]: “Simmons has a seemingly odd relationship with Twitter. He gets it, but he also often gets himself in trouble using it. But that’s only because his usage is genuine. And as that platform continues to evolve, he may be able to help shape it. In-line podcasts. Real-time Periscopes. The only problematic thing may be his wheelhouse: writing extremely long columns. Hard to see how you do that on Twitter without some new ultra textshotting tool.”

Textshotting is such an ugly hack. With weblogs, Tumblr, and the emergence of Medium, there is no reason to post unreadable blobs of text to Twitter as images. Just give your piece a nice photo (apparently people like Twitter posts with pictures) and provide a link to the long form piece on your site. It’s “DUH!” simple.

Anyway. Since Bill Simmons gets new media and understands Twitter it does seems a natural fit, however, how does Twitter deal with long form writing? They don’t. I can’t imagine a Tweet storm of 2000 words on a subject, people would drop that like a hot rock. No, Simmons needs a place built for long form writing. I’m thinking Medium, or even Tumblr (hey, Yahoo! has folks dedicated to sports, remember?) Either place could accommodate long form writing and handle publishing to Twitter. 

Another weird thought that popped into my head. I loved reading American McCarver. It’s gone silent. Give it to Bill Simmons, if he’d have it?

Categories
Development Uncategorized

Build 2015

Fortune [hat tip @rptony]: The so-called ‘bridge’ he was referring to was the company’s new plan to allow Android and iOS developers to take existing mobile apps and port them over to Windows devices, with little effort. Developers will be able to use software development kits (SDK) to reshape their existing code to suit Windows devices. The SDK will allow Android coders to use Java and C++ while iOS developers can use Objective C to optimize applications.

Microsoft has always created excellent development tools. I’d never poo-poo this effort. Will it be as good as Apple’s Objective-C compiler? It doesn’t really matter, if it works. If the end product is good enough to bring an iOS App mostly to Windows they’re on to something.

I haven’t tried any of these tools yet, but I will. In the meantime think about this for half a second. Microsoft is giving us a way to put UIKit apps on another platform before Apple did. It feels like the roles have reversed in some way. Apple is the 800 pound gorilla and Microsoft is the nimble competitor clawing its way up the hill. It’s easier to take big chances like this when you’re a bit down.

One more thing. Rumor has it Microsoft wants to build a Swift compiler to do the same thing.

 Strange times.

Categories
Uncategorized

Faith in Humanity

Steven Vore: “Hilary and I looked at each other, knowing that all the other theaters would be just as sold out this weekend, and didn’t even have to say anything. We just turned to the man and gave him our tickets and told the boy to have fun.

With all the hate we see, each and every day, in this country it’s easy to lose faith in humanity. 

You’re a class act Mr. and Mrs. Vore. Thanks for giving me some hope.

Categories
Government

Paranoia Runs Deep in the Heart of Texas

The Dallas Morning News: “Abbott has ordered the Texas state Guard to monitor a large-scale, eight-week military exercise this summer of special operation forces. Social media has pushed the conspiracy notion that the exercise, called Jade Helm 15, is a ruse to confiscate guns and declare martial law in hostile states.

Nutters.

Categories
Uncategorized

Thanks, John

A wonderful bouquet of flowers.

John Siracusa: Right now, I’m looking forward to my first summer in many years that won’t be dominated by stolen daytime minutes and long, sleepless nights in front of a screen with a noisy air conditioner blowing behind me. I’m content to have reviewed 10.0 through 10.10. Someone else can pick up the baton for the next 15 years.”

Here’s to the next 15 years, may they be fruitful.

Categories
Life Movies

Rob’s 2015 Summer Blockbuster Must See List

Man, this kind of snuck up on me. Time to put together my Summer Movie Must See List.

Avengers: Age of Ultron May 1
Maggie May 8
Mad Max: Fury Road May 15
Tomorrowland May 22
Poltergeist May 22
San Andreas May 29
The Stranger June 12
Jurassic World June 12
Big Game June 26
Terminator Genisys July 1
Minions July 10
Ant-Man July 17
Dark Was the Night July 24
Southpaw July 31
Mission: Impossible Rogue Nation July 31
Fantastic Four August 7
Pan August 27

Unlike last years list, this one is short. The mini list for me includes: Avengers: Age of Ultron, Maggie, Mad Max: Fury Road, Jurassic World, Terminator Genisys, Southpaw, Pan.

Prior years 2014, 2013, 2012, 2011, 2010 and 2009.

UPDATED 05/15/2015: Added The Stranger.
UPDATED 05/18/2015: Added Dark Was the Night.

Categories
Development iOS Mac

Swift, REST, and JSON

I’m fond of a site called The Pastry Box Project. It’s a collection of thoughts and stories by a bunch of great writers, but that’s not why I mention it. I mention it because I noticed they had a nice, simple, REST API. Nifty!

PastryKit

Since I really enjoy writing code that communicates with services, and I needed a little project to learn some Swift, I thought I’d write a couple classes, I call PastryKit, that implement the Pastry Box REST API in Swift.

PastryKit is just two classes:

  1. PastryKit – Allows you to communicate with the Pastry Box REST API.
  2. Pastry – This is an entry returned by a call to PastryKit.

You can read more about The Pastry Box API on their site.

private func showPastryBaker() {
     var pastryKit = PastryKit();
     pastryKit.thoughtsByBaker("mike-monteiro", completionHandler:{(pasteries, error) in
          if (nil != error) { println(error) }
          if (nil != pasteries) { println(pasteries) }
     });
}

The Heavy Lifting

Most of the “heavy lifting” is performed in one place in PastryKit.swift in the private getWithIngredient function. It makes use of NSURLSession, which was introduced in iOS 7. Go find that function if you’d like to see how to do an HTTP GET in Swift. This is a simple case, it doesn’t require any authentication, or messing around with headers, and it only does GET’s. Doing a POST, PATCH or DELETE would, of course, require some changes, but you get the idea.

    /// getWithIngredient - worker method that does all gets
    private func getWithIngredient(ingredient: String?, completionHandler: (([Pastry]!, NSError!) -> Void)?) {
        let url = ((ingredient) != nil) ? NSURL(string: PastryBoxUrl + ingredient!) : NSURL(string: PastryBoxUrl)
        let request = NSURLRequest(URL: url!)
        let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
        let session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil)
        let task : NSURLSessionDataTask = session.dataTaskWithRequest(request, completionHandler:{(data, response, error) in
            if (error == nil) {
                var conversionError: NSError?
                var ingredientsArray: NSArray = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.AllowFragments, error:&conversionError) as NSArray
                if (conversionError == nil) {
                    var pasteries = Pastry.pastryArrayFromNSArray(ingredientsArray)
                    if (completionHandler != nil) {
                        completionHandler!(pasteries, nil)
                    }
                }
                else {
                    println(conversionError)
                    if (completionHandler != nil) {
                        completionHandler!(nil, conversionError)
                    }
                }
            }
            else {
                println(error)
                if (completionHandler != nil) {
                    completionHandler!(nil, error)
                }
            }
        });
        
        task.resume()
    }

Go Get It!

The code is available on GitHub if you have need to get stuff from The Pastry Box Project in your Swift or Objective-C app.

Enjoy!

Categories
Life

That’s Life

Medium [“Broken Men And Their Broken System” by Chris Kluwe]: “But why, if the powers that be know that every player is going to transition out of the league at some point; if they know that the odds are against those players, and that almost all of them will end up a tragedy instead of a triumph; why, then, haven’t these multibillion-dollar leagues created and promoted universal support systems to help all players transition from their old lives to their new ones? Why is there no required series of steps upon exiting the game?”

While I was reading this article I caught myself shaking my head, thinking shame on the NFL. Then I caught myself. No doubt the NFL should do something more to teach these guys how to prepare for retirement, but the rest of us Everyday Joe’s have to deal with this too. Nobody takes us through a program designed to prepare us for our eventual retirement. I can’t imagine how tough it must be like to earn millions of dollars over the span of a few years. I wish I had that opportunity. Maybe it’s good to struggle your entire life, then you don’t end up having to deal with this problem.

As for my retirement plans? Easy, it will be a pine box.

Categories
Development Objective-C Work Note

Work Note: Conditional Breakpoints in Xcode

If you’ve been developing for any period of time you’ll understand that the debugger is your friend. This tip is probably not new to a lot of folks, but I thought I’d share for anyone new to Xcode, Cocoa, and Objective-C development.

The Conditional Breakpoint

We’ve all set breakpoints in Xcode while debugging, but did you know you can set conditional breakpoints? Let’s say you’re processing a large quantity of data and you say to yourself “Man, I wish I could break right here when the value of this string is ‘labs'” Guess what, you can. Two easy steps

Step #1: Right click (Command-Click) on the breakpoint and select Edit Breakpoint…

Edit Breakpoint in Xcode

Step #2: In the popover type “(BOOL)[documentName isEqualToString:@”labs”]” into the Condition field.

Xcode Breakpoint Condition
That’s all you need to do! In this case the breakpoint will be skipped until documentName is “labs.”

Categories
Uncategorized

My TV Favorites

I am addicted to a few television programs, three to be exact.

AMC’s The Walking Dead

I have been a dedicated fan since day one. Haven’t missed an episode and until a mishap with our DVR I had every episode recorded. The last two seasons are locked on the DVR. I don’t know why I keep them, I just do. I need to buy them from Amazon so I can watch from our Fire TV whenever I feel like it. 

A couple years back AMC and Dish Network had a little spat. Ask my wife how bummed I was about that. I bought the season on XBox Live, watched the first episode, and the AMC/Dish spat was reaolved so I could go back to watching without the need for the XBox.

My favorite season to date is season two, on the farm. Dale is still one of my favorite characters. He brought a sense of humanity to a mad, mad, world. They could use that humanity in season five. Our beloved group has become feral, unable to live in a civilized setting (with good reason, of course.)

Longmire

I think deep down inside I’d love to live a rugged life. Walt Longmire reminds me of my grandfather; J.R. Johnson, tough as nails, but fair and forgiving. The kind of man that would do anything for his friends and family. Couple his sensibilities with the dangerous beauty of Wyoming and I’m sold. 

It looks like forward thinking Netflix has picked up season four. Fantastic!

Penny Dreadful

The commercials were enough to prompt me to become a Showtime subscriber last spring. This show is chock full of powerful actors that don’t disappoint. It manages to bring together every horror story ever told in a new, cohesive, way. And that was just season one!

Season two starts soon. Not soon enough for this guy given the season finale of The Walking Dead airs tonight.

I’m Looking forward to some great summer television.