Archives for : speaking

CocoaConf DC 2013: The Usual Follow-Up Links

For CocoaConf DC, I freshened up the HTTP Live Streaming talk with a demo of the streams created for the iOS app working as-is with a Roku HD purchased the night before at Target (because I forgot my Roku XS back in Grand Rapids). Actually, only the basic and variant streams work – I didn’t try getting encrypted streams to work, but Roku apparently supports it, so that’s something to work on for next time.

For CocoaConf San Jose on April 18, I’m bringing back the All-Day Core Audio Workshop for one more go-round, so get in on that if you’re interested.

I also had time left over at the end of my regular Core Audio session in DC… with a few judicious cuts, I could carve out 10 minutes or so for an introduction to AudioBus. Anyone interested in that?

CocoaConf Chicago 2013: The Usual Follow-Up Links

OK, let’s do this thing.

Attendees of the iPad Productivity Workshop — an all-day class I did for the first time, following a poll here on [Tc]; about new tutorial topics — have already written all the code, but for DC students who want an advanced peek (or anyone else who’s interested), here’s a zip of the project in its various stages.

The “staged examples” is an idea I got from Daniel Steinberg, who swears by it for his classes. The great thing about it is that if someone falls behind, they don’t get lost: they can just skip ahead to the next checkpoint in the code’s progression. In this class, we build an app that can search iTunes, put results in an UICollectionView, and then allows the user to build their wishlist of items as a UIDocument. Along the way, we add in:

  1. Copying an item to the clipboard, to paste into other apps
  2. Document persistence, with iOS background saving
  3. Add to / delete from list
  4. Undo of add/delete
  5. Save document to iCloud
  6. Import documents from other apps (e.g., receive a wishlist as an e-mail attachment or Safari download)
  7. Export wishlist to PDF and send it to mail, printer, other PDF apps

It turns out to be more than I can teach in 8 hours, so with the stages, we just skip ahead to a good starting point. In Chicago, we started at stage 3, with the search feature working and the split-view for wishlist browsing set up in the storyboard but not yet implemented. The code might get a few tweaks before DC — possibly sorting the .wishlist files in the master table, and supporting pasting into the wishlist — but overall things are in really good shape.

As for my other talks, I did Core Audio in iOS 6 and Mobile Movies with HTTP Live Streaming again. They’re good talks and pretty polished at this point, but they were in some ways meant as a placeholder in case Apple gave us something new to play with in time for CocoaConf. Obviously that hasn’t happened… it’s been a real boring Q1 in Apple-land.

If you’re here for the Core Audio, note that this is the corrected, works-on-iOS-6.1 code that I discussed in a previous blog entry.

Conferences: CodeMash, Detroit Mobile City, CocoaConf


CodeMash 2013 just ended; in fact, I’m in the hotel room at the Kalahari, waiting for my family to arrive so we can turn this trip into a weekend of indoor waterpark fun. That’s the upside of CodeMash. The conference itself was pretty much the usual, although this time they finally had enough iOS talks to allow for a single all-iOS track running through the entire conference. It also featured Jeff Kelley of Detroit Labs open-sourcing his AmazeKit library for iOS image trickery as the final reveal of his presentation.

I did a half-day tutorial on iOS productivity APIs, and ended up with about 16 hours of material for a 4-hour session. Not a complete disaster, because the attendees (most of whom were first-timers) got to work through downloading JSON from a REST API and building a UITableView out of it, and that’s honest-to-goodness useful stuff… but I’ll still want to reconsider my scope and ambition before turning this stuff into the all-day iPad Productivity API’s tutorial for CocoaConfs Chicago and DC.

Oh, and can I also say… wrapping up CodeMash with a trivia show from the .NET Rocks! guys? Painful. I walked out when they got to the question “why do you have to program the iPhone with Objective-C”, and the answer was something something Steve Jobs something. Why do you have to use Obj-C? I don’t know… maybe because when Apple bought NeXT, that’s what they had built all their stuff with? And you know what? It’s worked out pretty well for them, hasn’t it? Heck they even tried to offer Java as an alternative and it flopped. Guys, sometimes when you joke about stuff you don’t understand, you just sound stupid, and you waste my time. So… .NET Rocks, as it turns out, kind of sucks.

Continue Reading >>

2012: Three Things

I usually don’t have much use for year-ender type pieces — not sure if I’ve ever done one on this blog — but I’ve got an accumulated bunch of thoughts that I might as well just work out in one big brain-dump. With luck, some of it will actually tie together.

Gonna talk about three things:

  1. No politics
  2. iOS Development
  3. Anime

It’s about 4,000 words. Grab a pop/coffee/beer if you need to.

Continue Reading >>

2013 CocoaConf Tutorial Survey

Earlier this year, I wondered aloud about the habit of tech conferences to have a beginner-oriented all-day tutorial, and whether it would make sense to also have something for intermediate-to-advanced developers. Among the benefits of this approach would be to prevent a bifurcation of the attendees, where the beginners have started to know each other after the first day when suddenly “everyone else” arrives (and they all know one another anyways). Plus, it’s good for the conference and the hotel to sell an extra night of rooms. So, in the spirit of that, we did an all-day Core Audio tutorial at CocoaConf in Columbus, Portland, and Raleigh.

The first two were well attended, particularly Portland, where we had one attendee who’d come all the way from Denmark to attend. Raleigh was much smaller, possibly for any or all of the following reasons:

  • Overall turnout for CocoaConf Raleigh was lower than the other 2012 CocoaConfs
  • Competition for advanced developers from Bill Dudney’s Core Graphics all-day tutorial
  • Exhaustion of the small pool of developers seriously interested in Core Audio development

If it’s mostly the first two, then it may be worth doing Core Audio again in the early 2013 CocoaConfs, for the benefit of those who missed it this time. On the other hand, if the demand has already been sated, then maybe it’s time to put the Core Audio tutorial away and try something else.

But what else? As an iOS media programming guy, AV Foundation seems like an obvious choice. The downside is that I haven’t used AVF in anger (ie, for a paying client), so my depth of knowledge is basically what I’ve learned to do sessions on the topic and write some experimental code of my own. I got dinged on a CocoaConf Raleigh feedback form in 2011 for sounding like I was mostly repeating the developer documentation, and that’s not entirely unfair (and I hate the thought of just repeating the official line on a technology… why bother?). Now what I do bring to AVF is an understanding of the problem domain, expertise in encoding and production and stuff, and a deep knowledge of the QuickTime concepts that have carried over to AVF. In fact, I think what I don’t like about AVF are the places where it’s more limiting and less imaginative than the wild-and-wooly QuickTime. Put another way, void*‘s actually make me happy in a media API — because they’re placeholders for future functionality — and AVF doesn’t have as many of them.

What else could I pitch? The client work I’ve done for the last two years instead of AVF is all about iPad productivity, something I’ve wanted to try to push in 2013, as I think we’ve lost the thread of “iPad as creative device” a little bit. So, documents, files, inter-app communication, copy/paste, undo/redo… good useful stuff there, though none of it is necessarily stuff you couldn’t figure out yourself (ie, it’s not a problem domain like media where there’s knowledge you have to master outside of the APIs).

And of course, I’m on this livestreaming kick now, so maybe an all-day tutorial on livestream production, which would be part programming, part video production tutorial: competent lighting and sound, compression and bandwidth concerns, production software, server-side strategies, business concerns, client playback APIs, etc. About half of it would be like my grad school days, TA’ing the introductory video production class. So that would be very different and probably very nichey, but also probably crazy fun.

So those are the ideas I’m kicking around now. What I need is some idea of which of these — or something else — would sell enough seats to be worth my time and CocoaConf’s. What would the readership of this blog and Twitter/ADN feed be interested in? Let’s find out:

[iframe src=”” width=”475″ height=”700″]

Streaming the Streaming Talk (CocoaConf Raleigh, Dec. 2012)

Since Jeff Kelley demanded it, here’s a dump of the setup I used to livestream my CocoaConf Raleigh session about HTTP Live Streaming (and the Core Audio session before it). Attendees of these talks are welcome to skip to the bottom of this blog for promised links to code and slides.

First off, links to the recorded livestreams on UStream:

  • Core Audio in iOS 6 – stream
  • Mobile Movies with HTTP Live Streaming – stream pt. 1, pt. 2

The second talk is split in two parts because Wirecast crashed partway through the session, breaking the stream and forcing me to start the broadcast anew. And that speaks volumes about what a seat-of-the-pants operation this was.

Continue Reading >>

The Sound of Plaid Friday

CocoaConf Plaid logoOh, this is nice. In the spirit of all these aggressive Black Friday offers, CocoaConf has announced a substantial deal for what they’re calling Plaid Friday. On November 23 only, you can score a registration to next week’s CocoaConf Raleigh for $50 off and get free admission to my Thursday All-Day Core Audio Tutorial (or the introductory iOS Tutorial taught by Walter Tyree).

In another fit of geeky Black Friday goodness, Telestream is offering 30% off all their products, including the screencast recorder ScreenFlow (which I use), and the livestream production suite Wirecast, which I’ll be getting for $!50 off, thankyouverymuch.

And that takes us back to CocoaConf, actually, because I’m going to be livestreaming my two Saturday morning talks from there on UStream. The events are now scheduled on the invalidstream: Core Audio in iOS 6 at 9:00AM EST (14:00 UTC), and Mobile Movies with HTTP Live Streaming at 10:45 (15:45 UTC). Apparently, I can’t deep link into the scheduled events on Ustream, so please visit the invalidstream channel and sign up for a reminder if you like. And yes, the live streaming talk will itself be streamed, and that stream will discuss how the stream is created and played (on OS X and iOS devices). So that’s ridiculously meta, at a minimum. Also, I’m bringing a camcorder, tripod, and 15′ FireWire cable, so I should be able to get a halfway decent longshot for the talks that can capture both me and the screen (and the audio we’ll create in the Core Audio talk).

CocoaConf Portland ’12 and the AudioQueueProcessingTap

CocoaConf Portland was this last weekend, and the conference continues to grow in scope, prominence, and depth with each installment. Visiting the US west coast for the first time, it picked up Brent Simmons (famous for NetNewsWire, Glassboard, and MarsEdit) and Daniel Pasco of Black Pixel as keynoters, plus James Dempsey playing some of his famous WWDC developer-oriented songs, such as the timeless luau of Cocoa memory management, “The Liki Song”.

For my stuff, I kicked off Thursday with a second run of the all-day Core Audio tutorial, which I’ll be doing again at CocoaConf Raleigh. It’s nice to teach these advanced classes, because I keep learning things about Xcode and Obj-C from the attendees as we work through the projects together.

Continue Reading >>

Fall Conferences 2012

OK, quick conference update:

  • I’ll be at CocoaConf Portland from October 25-27, doing the all-day Core Audio workshop that went over quite well (and was well-attended) in Columbus. There’s also enough new Core audio stuff in iOS 6 to make that worth doing its own session for, but of course we can’t talk about it until the NDA drops (and no, it’s not just the stuff in the WWDC session).

    I’ll also be doing the HTTP Live Streaming talk again (link goes to Columbus site), although the feedback on that from both DC and Columbus has been weirdly demanding of more client-side iOS code, despite the fact that getting a player going is like a 5-liner with the MediaPlayer framework. The things you need to learn about about HLS is in the encoding, tooling, and deployment.

    Also Reverse Q&A again, which went better in Columbus than DC. It works best when the panelists drive the conversation and are quick to follow-up, and we don’t let it turn into an App Store policy bitch-fest, since those things are endless.

  • CocoaConf Raleigh… not sure. Probably? Anybody in the South or on the Eastern Seaboard up for a day of Core Audio?

  • And then there’s CodeMash 2013. I’ve had somewhat mixed feelings about CodeMash. A tweet from walterg2 in June asked if I’d do the HTTP Live Streaming talk again at CodeMash. I replied that CodeMash has never gone for media topics in a big way — none of mine have ever been accepted, nor have I ever seen any audio or video stuff on their program — and that CodeMash seems to treat iOS as something of a red-headed stepchild. Nevertheless, I got a reply from CodeMash organizer and colleague Dianne Marsh suggesting I submit it.

    That led to an offline discussion about whether CodeMash even wants iOS content. Last year, iOS — despite being the mobile platform that everyone seems to have spent the last five years chasing — was a third (and, frankly, the least third) of a mobile track that also featured Windows Mobile (note that Microsoft is a top sponsor of CodeMash) and Android (presumably more palatable to the sizable Java crowd that CodeMash always draws). And as a colleague noted, CodeMash seems eager to take these sort of “how to write iPhone apps without using Apple’s tools or frameworks” talks, which is at best a backhanded compliment, if not a disavowal of the platform. Taken together, I had to ask myself if I and my core platform were even wanted there anymore; I don’t want to overstay my welcome if I’m no longer compatible with where CodeMash wants to take their content catalog.

    What I heard back from CodeMash is that they’re not deliberately dissing iOS or OSX, but that they have received few submissions for iOS/OSX talks, and taking the best of those only amounted to 2-3 talks last year.

    So, that’s why I’m putting this out there… are there other Midwestern iOS/OSX people who’d like to bolster the platforms’ presence at CodeMash? Considering CocoaConf had enough content for a three-track conference down in Columbus, it seems like there must be plenty of potential speakers who could spare a couple days for a January conference at an indoor waterpark. Submissions opened this week, explicitly list “iOS” (and “iPhone/Mac”[?]) as a topic, and are open through September 15.

    So for the time being, I’m going to take CodeMash at their word in saying that they’re interested in iOS/OSX talks and pitch them some new stuff. Maybe I’ll even propose an audio/video/streaming talk. One of these years, they just might bite…

My CocoaConf Columbus file-dump

I spent too much time away from sessions (readying my sessions, revising the book for iOS 6) at CocoaConf Columbus to do my usual “What You Missed…” style blog entry. I guess you could say I missed it too. But at any rate, I still owe the attendees some files.

Everyone in the all-day Core Audio tutorial should already have the five sample apps that we built in class, and a fallback zip was given to the group first thing in the morning, but if you some how missed it, here you go:

The HTTP Live Streaming talk is little changed from its CocoaConf DC version, but for the addition of a few new slides that show off more HLS apps (like NBC’s Olympics apps) and some off-the-shelf encoding boxes that’ll set you back $25,000. Here are the updated slides; sample iPad code is the same as DC’s:

Twice now, I’ve tried to show actual live broadcasting, and been thwarted both times. There’s actually nothing in Apple’s toolchain that provides the MPEG-2 transport stream needed by the mediastreamsegmenter tool. There is a trick on Stack Overflow that gets a seemingly-suitable stream out of VLC, but while the .ts segment files and the .m3u8 files are created and look correct, QuickTime X is unable to open the resulting stream. It doesn’t help matters that VLC can only capture from the webcam and can’t do audio capture, nor can it use screen:// as an input in Lion or later, which breaks Erica Sadun’s HLS screencast trick of a few years ago.

I’m going to do the all-day Core Audio tutorial and the HLS talk again at CocoaConf Portland in October, possibly something new too. Hope to see some west coast media developers out there.