Rss

Buggy Whip Manufacturer Calls on Apple to Add Buggy Whip App to CarPlay

From MacRumors, National Association of Broadcasters Again Urges Apple to Add FM Radio to iPhones:

Following Apple’s clarification that iPhone 7 and iPhone 8 models do not have FM radio chips or antennas designed to support FM signals, the National Association of Broadcasters (NAB) has expressed some doubt about Apple’s statement and has called on the company to add FM functionality to its future iPhones.

[…]

In its blog post, the NAB appeals to Apple CEO Tim Cook, highlighting the number of hurricanes experienced in Mobile, Alabama, Cook’s hometown, since 1969, and calling on the company to introduce FM support as a way for customers to get news alerts during disasters.

If your concern is access to news during disasters, may I suggest concerned families simply buy a dedicated portable AM/FM radio? Among its advantages:

  • Such radios start at under US$10, and the product line as a whole is 1 to 3 degrees of magnitude less expensive than iPhones.
  • AM/FM radios last longer on a fresh set of batteries than iPhones do on a charge, and can be recharged indefinitely during a power outage, so long as more batteries are available.

It’s a sad scene between this and the FCC Chairman cluelessly calling on Apple to magically activate FM features that either aren’t physically connected or don’t exist at all.

It also speaks volumes that the NAB needs to rely on either national disasters or Federal bullying to get broadcast radio devices into the hands of consumers. Usually when consumers are forced to buy something, it’s a pretty good sign that what’s being sold is crap. Try listening to US terrestrial radio — dominated by ClearChannel bots playing the same songs over and over, and asshole blowhards going on hours-long conservative rants — and it’s little surprise that fewer Americans have any interest in the technology anymore.

No wonder the NAB wants to ride piggy-back on Apple’s popularity and the hundreds of millions of iPhones out there. But I think they ought to get their own house in order first, before they start talking crap about Apple.

A Perfectly Lazy Solution

Something nifty with Swift came up the other day, not a big deal, but worth blogging before I forget it again.

Basically it involves the interaction of three things:

  • lazy variables – Variables that are not created until they’re first accessed, typically because their initialization is an expense you’d like to put off (or not perform at all, if the variable is never used).
  • Instantiating variables with closures – When you need to perform multiple statements to set up a variable, you can do something like:
    
    let foo = { ... } ()
    

    which means you’re creating a closure, executing it, and assigning its return value to foo.

  • Delegates. Hoo boy, do we love our delegates…

Continue Reading >>

Late 2017 Speaking Update

[Notice how I said “Late 2017” and not “Fall 2017”? You’re welcome, southern hemisphere.]

So I just have one speaking spot lined up for the rest of the year, at least as far as developer talks go(*). I’ll be at the all-new Swift by Northwest, the new conference by the CocoaConf folks, in Seattle in late October.

(* – as for anime talks, I’m wait-listed for Crunchyroll Expo in Santa Clara in August, and need to send in a proposal for Youmacon in Detroit in November)

Continue Reading >>

Begun, The Codec War Has

I just got back last night from WWDC 2017 week — I was speaking at CocoaConf Next Door — and here’s an obligatory selfie to prove it.

Selfie outside WWDC 2017

Continue Reading >>

Brain Dump: v3 Audio Units

Thanks to the power of unemployment freeing up my daily schedule, I was able to put a lot of work into my talk about Media Frameworks and Swift. The first version of this debuted at Forward Swift in March and was limited to 30 minutes. With an hour to fill at CocoaConf Chicago last weekend, I needed a second demo. And the obvious place for it was to stop talking about v3 Audio Units and actually write one.

Audio Units logo

Background info: audio units are self-contained modules that do something with audio. There are several distinct types: generators that produce sound (like by synthesis or playing from a file), effects that take incoming sound and change it in some way, mixers that combine multiple sources, etc. These units are available in any application that supports the audio unit standard, so they’re seen in things like Logic and GarageBand. Prior to El Capitan and iOS 9, audio units were a Mac-only technology: the closest approximation on iOS was to have some other audio unit set up a “render callback”, meaning you’d provide a pointer to your own function, to be called whenever the downstream unit wanted to pull some samples, and you’d put your audio processing code in there.

We covered using audio units in chapters 7 and 8 of the Learning Core Audio book, but didn’t actually cover creating them. We didn’t do that for a number of reasons: the documentation and base C++ class from Apple was outdated and appeared to be broken, making your own AU was Mac-only, we’d already spent two chapters on audio units, and our editor was leaving and we decided to go pencils-down and ship the damn thing. So, wouldn’t you know it, the first review on iBooks basically ripped us for not covering how to create audio units and dismissed the rest of the book as one-star garbage (and in my own defense, that’s an opinion not shared by any of the other reviews on iBooks and Amazon).

But still, it has bugged me for years that I had never actually written an audio unit of my own. So if one good thing comes from my current flirtations with insolvency, it’s that goddammit, I’m finally writing a working audio unit.

So, iBooks reviewer whichdokta, this one’s for you. And in the immortal words of Elvis Costello, I Hope You’re Happy Now

Continue Reading >>

Seven Percent of Nothing Equals Nothing

Participants in Apple’s affiliate advertising program got an email yesterday announcing that the commission for apps and in-app purchases is being cut from 7% to 2.5%, effective next week. As usual, Michael Tsai’s blog has the most convenient roundup of reporting and reaction. There’s quite a bit of head-scratching, along with some hope the move presages a change in Apple’s 30% cut of App Store revenues (given the relative sizes of the affil program and the App Store as a whole, I suspect that’s wishful thinking).

I’m in the affiliate program myself. The iBooks link in the right nav on this blog is from the affil program. And over on Invalidstream, the show notes for every episode are rife with iTunes links to videos referenced in the preshow, games from the App Store that I demo, and there’s even an iTunes banner in the sidebar with music from the pre-show waiting room (which I’m attempting to reproduce here, wish me luck, and reload if it doesn’t work:)

I’m not going to play Devil’s Advocate or mindlessly defend Apple, but I think if you wargame this from Apple’s POV, this move actually makes some sense. Let’s put ourselves in their shoes and play this out.

Continue Reading >>

The 2013 That Never Ended

So, about that Mac Pro…

As a reminder, I’d been agonizing about a replacement for my Early 2008 Mac Pro for a while (particularly because it couldn’t run Sierra, and thus Xcode 8.3), finally gave in and bought the Late 2013 Mac Pro in late 2016, and posted a few weeks back that despite obviously over-paying for it, I’m quite happy with it so far.

Yesterday’s news really doesn’t change any of that.

Continue Reading >>

Next Door

So, we’ve had to keep this under our hats for a little while, but yesterday Apple posted their Beyond WWDC page, revealing the co-located conferences Layers, AltConf, and CocoaConf Next Door. The first two of these have taken place the same week as WWDC for a few years now, but CocoaConf making an appearance that week is new.

As a CocoaConf regular, they asked me to participate in CocoaConf Next Door, and so I’ll be doing three sessions (and likely some other events). We’re still working out what those will be, as it’s a little tricky to strategize a conference talk the week of WWDC and minimize the chance of it being rendered obsolete by changes to iOS and macOS revealed at WWDC. I mean, it’s not like you’d want to build a talk around view controller rotation-handling for that week, since the “right way” to do that seems to change every couple years. But you also don’t want to do something that’s so evergreen that it’s boring either.

Chris Adamson - Stupid Video Tricks

I will probably reprise my talk about media frameworks and Swift from Forward Swift and CocoaConf Chicago, because it’s the best one I’ve done in years, and it does get into some pretty interesting areas about the Swift language itself and where it struggles to live up to its ambitions (I blogged about some of this in Render Unto C-sar). I’ll be putting more work into the talk — maybe by June, I can actually get my custom AUAudioUnit working (I’m pretty stuck at the moment, and a DTS support incident did not unblock me).

It’s possible that for the last day of the conference, I’ll have a new talk based on things that get revealed on Monday. That would be a great way to keep things fresh, though I want to avoid Janie Clayton’s “First to pee on Mount Everest” syndrome, i.e., being the first to try out some new feature or API, but not enlighten or bring away anything from it except to basically yell “first post!” So, still thinking about how to make sure that’ll still be valuable to attendees.

CocoaConf’s blog has details about how they’ll schedule their time around the WWDC keynotes so we don’t miss out on the good stuff (or, god forbid, another 30-minute Apple Music presentation). Early Bird registration is open. It’s $999, which seems pretty reasonable for a four-day conference (CocoaConf is usually like $600 for two days, and across the street, Layers’ early bird price is $850 for three days, to say nothing of WWDC costing $1600). Maybe we’re going to be somebody’s Plan B if they don’t win the WWDC ticket lottery but still want to be in town that week; we’ll make it a pretty damn worthwhile Plan B. Plus, CocoaConf registration includes tickets to the James Dempsey and the Breakpoints concert on Wednesday night.

The other thing that’s exciting about this week is the degree to which it represents a real, ongoing change in Apple’s openness and its attitude towards the larger iOS/macOS/tvOS/watchOS developer ecosystem. As Daniel Jalkut reminded us yesterday:

So, I’m looking forward to doing some new talks at CocoaConf Next Door, meeting up with friends in the evening, and certainly hoping that App Camp for Girls’ Jean McDonald finds a suitable karaoke place for her “Core Audio” group of developer-singers (if they have it, I’m calling dibs on “History Maker”).

Render Unto C-sar

A few weeks back, I did a presentation at Forward Swift, the idea of which to explore how the media frameworks reveal some really interesting pain points in using Swift, and what this tells us about the language.

Slides are already up on Slideshare, and can be viewed here:



I’ll be doing this talk again at CocoaConf Chicago and an NDA event that will probably be announced next week. Forward Swift usually posts its videos eventually, and I’ll blog here once mine is available.

But I want to dig into one of the key points of the talk, because it came up again earlier this week…

Continue Reading >>

So, How’s That Mac Pro Working Out For You?

It’s been a little over two months since I became that guy who actually bought a three-years-old-out-of-the-box Mac Pro. My reasoning and agony over the purchase has already been detailed on this blog, but now that I’ve used it for two months, let’s take a look back at how it’s working out.

The thing that surprises most people when they see the trashcan Mac Pro is how small it is. Remember, the computer is not even a foot tall (um, 30 cm for those of you in civilized parts of the world), so on my desk, it is barely taller than my speakers, and is actually kind of dwarfed by my microphone and pop filter.

Mac Pro on desk

Continue Reading >>