Archives for : July2012

13½th Mac

Before I’m even done updating all the copies of my bio to say I’ve owned 12½ Macs over the years, now I’m up to 13½.

I have a Mac Mini that’s on 24/7 to perform various server duties — most importantly, it’s an in-house Subversion server, but it has also been a Time Capsule remote backup and a public web server (when I feel like messing with port mapping on the DSL modem and wifi router). Since it’s on all the time, I don’t mind the kids playing their stuff on it, and they complained a few times over the past month that it got hung up on login. I figured it was the usual disk issues that come with time, but when I found that it took four tries to boot from DVD, I started to suspect that the logic board or memory was about to go, and I needed to move.

So, here’s the new Mini getting set up:

Migrating from old Mini to new

Note that the old Mini started life in 2006 as a Core Solo, and is the one that I levelled up with a Core 2 Duo in 2007. So my crappy thermal paste job held up for five years… not bad.

The new one seems really slow for a brand-new i5, but that may be my being spoiled by SSDs on my Mac Pro and new MacBook Air. Also, this is the bottom-of-the-line machine with integrated graphics that uses system RAM for graphics memory, so it’s a no-brainer to head over to Crucial or NewEgg to get 8GB tout suite.

Speaking of the Air, funny story there… remember, this is a 2011 Air that I bought the week before WWDC in order to teach a class, because I believe in buying what you need when you need it, and not trying to game retailer’s return policy when a new machine comes out. Thing is, the Air had some sort of severe problem where it would just black out — not shut down, not kernel panic, just entirely turn off — and come back up from a cold boot with the clock set to 1/1/12 00:00:00 GMT. That’s either a bad SMC, bad battery, or something else seriously wrong.

I took it to the Genius Bar in Grand Rapids, perhaps fortunate that it had blacked out with the lid closed on the way home from last week’s class in Detroit. I knew that from the system log, where there was one last entry from around 10:30 PM Monday (which would have been while I was driving home), and the next one was a boot at 1/1/12 00:00:00 GMT. Problems that come and go are a bitch to demonstrate to a seller, but this one could be documented, and once the geniuses hooked up the diagnostics, the battery test failed. In the end, they decided it was more trouble than it was worth to fix, and called me the next day to send me home with a new Air. I’d have been happy with a refurb 2011 Air — all I need is something that works and is equivalent to what I bought — but it turns out I came home with the 2012, with all its USB 3 goodness. I’ve heard of stories like this, maybe a little concerned that Apple has set customer expectations of special treatment, so I set my own expectations lower.

After all, optimists can never be pleasantly surprised.

Naming scheme update on the Mini: the old one was Dagger, with external partitions Eiko and Freya. Rather than using the next name in the well-established series — Yuna is already in use, and I’d like to save Ashe for a new Mac Pro someday — I switched to Dagger’s other name, Garnet. For anyone who doesn’t understand (and actually wants to), here ya go.

Midsummer streaming

So for some reason, I’ve got an itch to experiment a little more with streaming. My talk at CocoaConf DC went well enough, but the sight of seeing mediastreamsegmenter dutifully dropping off webcam captures as 10-second HTTP Live Streaming segment files into my web server Documents folder, or the fact that I could turn my Dropbox public folder into a streaming video server, has me thinking about getting deeper into this stuff.

That, or the fact that I’m looking for an excuse not to get depeer into AV Foundation.

Personal broadcasting seems a bigger deal with the younger people in my circles; my college peers have largely never heard of it, while my anime tweeps are all happily streaming away with their video reviews and retro-gaming sessions on UStream,,, etc. I’ve dropped by JesuOtaku’s show a few times and she’s got over a hundred anime fans in her chat room (it helps that she’s well known and quite entertaining). In my HLS chat, I showed a screenshot of some dude playing Diablo III to a stream with over 1,000 viewers. Watching someone else playing games! And in the screenshot from the Twitch.TV app below, nearly 3,000 people are watching a speed run through The Legend of Zelda: The Wind Waker.


So anyways, research project for the next month or so is going to be evaluating the various services in terms of Mac and iOS compatibility, technical feasibility of producing something more than just a headshot, how good a stream I can get out with 1.5 Mbps of upstream bandwidth, etc. Streaming Media’s Jan Ozer published a nice comparison of UStream, Justin, LiveStream, and Bambuser in the latest issue, so that’s one place to start. I think I also need to figure out some of the Mac software packages (CamTwist and EvoCam, I think) that convert a video input (perhaps mixed from screen cap and webcam) into the Flash stream needed by these services.

Another option would be to host my own HLS-only stream, which is highly appealing (no ads!), but there seem to be few free or cheap options for generating the MPEG-2 Transport Stream over UDP (or a pipe) that mediastreamsegmenter wants as input. I asked about this on the devforums and word from Apple is that none of Apple’s tools provide this, although there are nice third-party products.

Surprisingly, VLC is capable of producing the input transport stream, although the resulting HLS stream wasn’t playable when I demo’ed it in DC. Maybe I’ll get it working for Columbus.

Speaking of CocoaConf Columbus, Friday is the deadline for early bird registration. I’ll be doing HLS and an all-day intro to Core Audio (which is an add-on to the main conference), which is my chance to do a really substantial run at Core Audio teaching, even covering a few things that aren’t in the book, like network streaming.

What You Missed at CocoaConf DC 2012

…a big freakin storm, strong enough to spin the A/C fan backwards and blow wind and rain back into the room, but that’s neither here nor there.

So, I spoke at CocoaConf DC 2012, presenting a new talk, “Mobile Movies with HTTP Live Streaming”. It was a good excuse to get me off my ass, download the tools, and build a few of my own streams. They’re in the demo, so here ya go with some links:

HTTP Live Streaming demo app playing encrypted stream
I also did my iOS-5-oriented “Core Audio Cranks It Up” talk again, which focuses on the effect audio units and the AUSampler that we got in iOS 5. It ‘s still good and still gets high marks, but with iOS 6 on the way, it can’t help but seem like old news before long, so I’m going to retire it at this point. If you want to see it, I think Safari has the original version from Voices That Matter Boston, and InformIT will sell you the 90-minute video, for $15 or so.

Not getting high marks, surprisingly, was the Reverse Q&A session. Some of the feedback rightly dinged me for a somewhat unfocused panel — in Chicago, we had three panelists, but in DC, I did a scattershot invitation which everyone accepted, leaving me with a too-large panel of five. I think it works better with a small number of panelists who are willing to interrupt and steer the conversation. As it was, I let it linger too long on App Store grievances (even though that was where attendees wanted to go, rebuffing my first attempt to change topics). I still think the format is superior to the regular panel, at least with a manageable number of attendees (doubt I’d try it with more than 150 or so), but this experience teaches me that the format won’t take care of itself, and that I and the panelists have to own the conversation to a greater degree than might be readily apparent.

Anyways, next up is CocoaConf Columbus on Aug 9-11. This is where I’ll be doing an all-day intro to Core Audio, as part of my de facto 2012 Core Audio tour, and an experiment in doing an opening-day tutorial for advanced attendees. Although I should probably change that title — the tutorial is for advanced developers, but it will presumably be their first time getting really deeply into Core Audio.

Also a little tempted to do a new eyes-forward session if I’m retiring the Core Audio talk, and there are some very advanced video compression bits in [MOUNTAINDACTED] that might be worth shining a light on. Question is whether I’m fool enough to try to prepare the tutorial and a whole new talk over the course of the next few weeks. Watch the schedule, folks…