Too Much About Paul

Various things I'm saying and doing in various places

Looking for music, show schedule, videos? That's just a click away at

September 03, 2015

Work Blog

So You've Decided to Roll Your Own Mobile Sync Solution (part 1)

From time to time, we hear from potential customers that they’re planning to (or have already tried to) “just roll their own sync solution”.

Excellent. It’s challenging, exciting, and — for a certain type of nerd — fun. Lets think through some of the challenges you’ll face along the way. It’s difficult to backfill gaps in your sync strategy once you have live apps out in the world.

All sorts of things can go wrong during sync, of course: network dropouts, client crashes, server crashes… but let’s save those for another day. Today, we’re working in an ideal universe, with completely reliable communications.

The Problem

Back at the office (or warehouse, or data center, or virtual cloud-based thing that you know exists somewhere), you have your data. You have applications that read, update, analyze, tend to, and generally use that data.

You want some of that data to escape the office, and live on the phones (or scanners, or tablets, or laptops) of your colleagues (customers, users) out in the field (on the road, in the aisles of Warehouse 57, up in the sky, at the wind farm or oil rig).

And you don’t want to require them to connect to your servers when they’re out in the wild.

You need to sync that data to those devices.

What do we mean by “sync”, anyway?

For our purposes, let’s define it like so: We want to maintain two copies of one or more tables: one copy on a server, one on a mobile device.

Q: So, is this a one-way sync?

Let’s start with the simplest case, and say “yes”. One way. The server owns all of the data, the client gets a copy and changes nothing. No deletes, no inserts, no updates from the client.

A single ideal-world client, making one reliable, successful request at a time.

Excellent. This one’s easy! We just send the whole dataset down from the client to the server whenever anything’s changed. That warehouse-management database fits nicely on your average tablet.1

Q: How do we know something has changed?

Easy! The row count is larger on the server.

Or smaller. Or the same, but some of the fields have changed. Or rows have been replaced.

OK, not exactly “easy”.

☐ TODO: Devise a way to know that changes have happened at all

Should we track server changes as they occur? Or examine the entire dataset on every sync request? One’s more intrusive, one’s slower.2

Examining the entire dataset could work. We could hash everything on both sides. That’s assuming the data are represented identically on both sides.3

Oh, wait: we can include the server’s idea of the hash when we send the data. The client stores it, and we compare that next time.

☐ Definitely need some housekeeping data on the server side. Where should that go?

Of course, we’re still sending the whole dataset. That seems… insane. Maybe don’t do that.

Q: So what do we send?

Changes, of course. Maybe row-by-row deltas. Maybe the full contents of changed rows. And a list of rows to delete. Oh, and “changed” rows also includes “new rows”.

And be sure to apply the updates in order.

  1. Delete the row with primary key ‘foo’
  2. Insert a new row with primary key ‘foo’

…does not want to be replayed out-of-order.

☐ more housekeeping data
☐ we’re almost certainly tracking database activity now

Q: How does that fit in with our “just keep a hash” strategy?

Awkwardly. We know we have different data than the client, but that’s a binary answer. Which updates does the client need?

Thankfully we just have the one client, so we could add some per-row housekeeping, or per-change housekeeping, and mark each change as sent after it’s been synched.

That’s gonna get larger than we want, faster than we’d like.

What if we keep a list of unsent changes, and delete them as they’re sent?

That’s better, as long as we have just the one client. Multiple clients (dont worry, we’re not going there today) would require a client->updates linking table, with some sort of delete-as-we-go reference counting.

And (of course) all of our clients will check in at reasonable intervals, and none of them will ever be decommissioned, and we’ll eventually clean out that whole “unsent” table. It’s a perfect world, remember?

I’m starting to dislike this “server keeps track of clients” strategy.

Q: What if the clients helped with the housekeeping?

That might work. The client knows when it last synched. The server knows when a change occurred. We could send recent updates based on that.

☐ include dates in the housekeeping data

This will work perfectly, since there will never be two syncs going on from different clients at the same time. No datestamp-overlap issues at all. Ideal worlds are so helpful.

Q: How do we track these changes, anyway?

Triggers, obviously. And let’s assume there are no other triggers to contend with, here in our perfect world.

Every time there’s any change, we drop all the rows-in-question into our (ideal) contention-free “unsent” table.

Q: How does the client know the database schema?

Simple: it’s hard-coded. Schemas don’t change in perfect worlds. Just ship it, pre-created.

Our progress so far

We have a very workable concept, given a few minor assumptions:

  • One client…
  • With server-sized storage…
  • That only receives updates…
  • Into a single, predefined schema…
  • From a faultless server…
  • Over a faultless connection

We’re golden, and this barely cost us any person-days at all! Break for lunch!

  1. No? Hmm. We’ll have to revisit that.

  2. Oh, yes, speed. Remember that perfectly-reliable network? It still has a finite speed. You’re not really going to send the whole dataset down every time, right? More on that in a moment…

  3. Because floating point numbers are perfectly consistent across all platforms.

September 03, 2015 02:20 AM

August 18, 2015

My Upcoming Gigs

Open Mike's, Saturday August 22, 2015

Open Mike's, Saturday August 22, 2015

454 N Harbor City Blvd
Melbourne, FL

Back to my favorite spot, solo this time, kicking off Open Mike's new regular Saturday night thing....

by Paul Roub at August 18, 2015 03:32 AM

April 03, 2015

March 20, 2015

March 12, 2015

Work Blog

Using Zumero in your Swift project

We’ve received an email or two asking how to use Zumero sync from Swift code. If you’ve used other Objective-C frameworks in your Swift projects, the steps are just what you’d expect. If you haven’t, don’t worry - it’s not that bad.

Create a Swift-based project, as usual.

Now add the ZumeroSync framework - either directly from the Zumero SDK, or – my preferred way – via Cocoapods.

$ cat >> Podfile 
pod 'ZumeroSync'

$ pod install
Analyzing dependencies
Downloading dependencies
Installing ZumeroSync (
Installing sqlite3 (
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `swiftnzum.xcworkspace` for this project from now on.

We’ll now open the workspace as instructed, and it looks like we’re all set:

Except that Swift has no idea what we’re talking about:

To let Swift code know about the Zumero classes, we need a bridging header. I followed Mark Petherbridge’s instructions in How to create an Objective-C Bridging header, like so:

Add a new Objective-C file. Call it what you like:

Yes, we do want to create a bridging header:

Add a ZumeroSync import to that header:

//  Use this file to import your target's public headers that you would like to expose to Swift.

#import <ZumeroSync/ZumeroSync.h>

We can delete the “dummy” Objective-C file (optional, but it serves no purpose here):

And voilà, Swift has heard of Zumero:

As for the actual usage, it’s just a Swift-y version of the Objective-C call:

var syncError: NSError?

let ok = ZumeroSync.Sync("foo", cipherKey: nil,
    serverUrl: "", remote: "dbfilename",
    authScheme: nil, user: nil, password: nil,
    error: &syncError)

March 12, 2015 02:29 PM

February 27, 2015

Find Noodles

New Times - Friends Still Searching for Lisa “Noodles” Hayden Gordon a Month After She Disappeared

“When Fort Lauderdale musician and piano teacher, Lisa ‘Noodles’ Hayden-Gordon, was reported missing, her family, friends, and the South Florida music community quickly responded by launching an extensive search. They posted tirelessly on social media, created, and distributed flyers around downtown Fort Lauderdale asking for any new information on her whereabouts. She was last seen around 1 a.m. on Saturday, January 24, 2015.”


February 27, 2015 05:00 AM

February 19, 2015

Find Noodles

Reward for Information on Lisa "Noodles" Hayden

Crime Stoppers are offering up to $3,000 for information leading to the arrest of the person(s) responsible for the disappearance of Lisa "Noodles" Hayden.

Call Broward Crimestoppers 954-493-TIPS or 866-493-TIPS if you have any information about Lisa's disappearance.

Printable Flyer Please download, print, and share this Crime Stoppers poster about Lisa and the reward.

Crimestoppers poster

February 19, 2015 05:00 AM

February 14, 2015

Find Noodles

Gathering For Friends And Family Of Lisa "Noodles" Hayden

Sunday, February 15th at 2pm. A chance to meet Lisa's family, hug friends, and get some flyers out.

February 14, 2015 03:09 PM

February 13, 2015

Find Noodles

Family Pleads For Help In Search For Woman Who Disappeared After Night Out In Fort Lauderdale - Sun Sentinel

Lisa Hayden-Gordon lived out loud — and now the silence of her disappearance is deafening.

The 51-year-old woman went missing after attending a Keller Williams show at Revolution Live in Fort Lauderdale on Jan. 24. After the concert, Hayden-Gordon went to the restroom at the nearby Poorhouse bar and vanished, police say.


February 13, 2015 01:23 PM

February 12, 2015

February 10, 2015

Find Noodles

Noodles on Nancy Grace Tonight (Feb 10)

February 10, 2015 05:00 AM

February 09, 2015

February 08, 2015

Find Noodles

An Update From Lisa's Family

Lisa's sister Tara shared this on Facebook today:

We want to send out our deepest gratitude to all Lisa's friends and our family for all the efforts and concerns to finding our beautiful sister..we want to give you an update so everyone can understand where we are to date and that we wont stop until we find her.

  • We have three detectives from the ft lauderdale police working around the clock since she went missing two weeks ago.
  • We have a Private investigator that is communicating closely with us and close friends in her town.
  • We are working with the Guardians of the missing who are working diligently to help find her and to make the waterways search continue..they provide services to families of the missing in hopes of finding their loved ones...all volunteers! they are amazing!
  • our beloved Teri Catlin Shandra Hurt and other close friends have been searching on foot at parks, forests, beaches, parking lot and places she frequents.
  • the police have already sent a dive team into the canals near her disappearance and hopefully will do more dives
  • the police have viewed video footage of one of the exit of the parking lot and still searching.
  • we called 8 helicopter companies who agreed to be on the lookout and notify all their pilots to search for her car when on tours and lessons.
  • her cell phone has not been used since 9:30 on the 24th, we have accessed her records.
  • her credit cards have not been used since that evening and our amazing cousin Charlene McClaren Leon is keeping an eye daily on her financials.
  • her sun pass has not been accessed.
  • her Internet, social media and emails has not been accessed.
  • her car has not been found.
  • we had two volunteers with drones to search for her car.
  • Teajay Smith has a new flyer you can print off from her link on her facebook and we encourage everyone to continue to pass out and post everywhere they can!!!

love and glitter, Tara, Suzy, Jennifer, and Jim Hayden

February 08, 2015 05:00 AM

February 05, 2015

February 04, 2015

February 03, 2015

January 31, 2015

Find Noodles

Sun Sentinel on the Rally for Noodles

Friends and family of Lisa Hayden-Gordon, who was last seen Jan. 24, distribute fliers on Friday evening in Fort Lauderdale (Erika Pesantes/Sun Sentinel)

Relatives and friends of missing woman rally in Fort Lauderdale

January 31, 2015 05:00 AM

January 30, 2015

Find Noodles

Rally for Lisa “Noodles” Hayden tonight (Friday, January 30th)

5:30 pm Friday January 30th across from the discovery center in downtown Fort Lauderdale.

We need to organize the search for our sister and her car. Today marks the 6th day she has been missing. Please share this message with all your friends. Post and repost and post again.

We need your help to get her picture out.

January 30, 2015 05:00 AM

January 29, 2015

Find Noodles

More Photos of Noodles and her Car

Lisa "Noodles on Jupiter" Hayden is still missing, as is her car - a 2003 Hyundai with stickers on the hood and bumper, Florida license plate 303 IEQ.

The car is distinctive - please share these photos of Lisa and her car, and please call the Ft. Lauderdale Police Department at 954-828-5700 if you've seen Lisa or the car.

Hood of Lisa's car, showing glitter decals

Lisa photographing her handiwork

One of the glitter decorations, close-up

The rear of Lisa's Hyundai

(source: Ed Ethridge, Facebook)

January 29, 2015 05:00 AM

January 28, 2015

October 13, 2014

My Upcoming Gigs

Church at Viera, Friday November 7, 2014

Church at Viera, Friday November 7, 2014

9005 N Wickham Rd
Viera, FL

Songwriter Showcase.

by Paul Roub at October 13, 2014 03:35 PM

Hogan's Irish Bar, Saturday November 8, 2014

Hogan's Irish Bar, Saturday November 8, 2014

6600 N. Atlantic Dr.
Cape Canaveral, FL

With The Civil Ties.

by Paul Roub at October 13, 2014 03:33 PM

September 26, 2014

My Upcoming Gigs

Vinyl Request Records, Saturday September 27, 2014

Vinyl Request Records, Saturday September 27, 2014

604 E New Haven Ave.
Melbourne, FL

This is probably the last weekend of shows EVER at Vinyl Request, so please help us take things out with a bang..

With Konglom, The Civil Ties, and My Dearest Friend.

by Paul Roub at September 26, 2014 01:48 PM

September 24, 2014

August 10, 2014

My Upcoming Gigs

Vinyl Request Records, Saturday September 27, 2014

Vinyl Request Records, Saturday September 27, 2014

604 E New Haven Ave.
Melbourne, FL

With Konglom, The Civil Ties and My Dearest Friend.

by Paul Roub at August 10, 2014 04:36 AM

Open Mike's, Saturday August 23, 2014

Open Mike's, Saturday August 23, 2014

454 N Harbor City Blvd
Melbourne, FL

With Steve Hodak.

by Paul Roub at August 10, 2014 04:32 AM

July 20, 2014

My Upcoming Gigs

Inlet Wines & Brew, Saturday July 26, 2014

Inlet Wines & Brew, Saturday July 26, 2014

13401 US Highway 1
Sebastian, FL

by Paul Roub at July 20, 2014 02:11 PM

July 18, 2014

My Upcoming Gigs

Vinyl Request Records, Saturday September 27, 2014

Vinyl Request Records, Saturday September 27, 2014

604 E New Haven Ave.
Melbourne, FL

by Paul Roub at July 18, 2014 02:43 PM

Open Mike's, Saturday August 23, 2014

Open Mike's, Saturday August 23, 2014

454 N Harbor City Blvd
Melbourne, FL

With Steve Hodak.

by Paul Roub at July 18, 2014 02:42 PM

July 11, 2014

My Upcoming Gigs

Vinyl Request Records, Friday August 15, 2014

Vinyl Request Records, Friday August 15, 2014

604 E New Haven Ave.
Melbourne, FL

$5 Cover.

With Tall Bob Smoke.

by Paul Roub at July 11, 2014 09:27 PM

Inlet Wines & Brew, Saturday July 26, 2014

Inlet Wines & Brew, Saturday July 26, 2014

13401 US Highway 1
Sebastian, FL

by Paul Roub at July 11, 2014 08:33 PM

July 09, 2014

May 04, 2014

Personal Blog

Here, Look

If I Show You a Picture On My Phone... Don't Swipe Left, Don't Swipe Right, Just Look

Yes, I started with a meme1. But shorthand can be helpful — if you relate to the above, read on. Otherwise, this post is probably not for you.

I’d had this happen one-too-many times, and wished there was an app to let you show someone just a few photos. Turns out, as far as I could tell, there was not. So I wrote one.

It’s called Here, Look and it’s available now in the App Store2.

Apart from the “hey, look at this bird I saw this morning… no, wait, those weren’t selfies, I was just… um…” problem, I often want to show someone just my favorite few photos from recent days. Here, Look solves that nicely. Just tap this one, and that one, and these two, then hand the phone over to your friend.

I personally use the app several times a week, and am happy (and relieved) to have it around. It does one thing, does it well, and stays out of your way. No ads, no popups, no notifications, no nothin’.

Have a look, and if you do like it, please leave a review behind in the App Store (the app itself will never ask you to leave a review, because, ugh).

  1. Except not really. A meme is a whole different thing but I’ll stifle my nerd-rage, and bow to the colloquial, for the moment.
  2. iPhone/iPad/iPod Touch-only, for the moment. Expect an Android version in the future.

May 04, 2014 07:03 PM

March 17, 2014

That Thing I Was Telling You About

merlin: “Hi. We wrote something and then deliberately...


“Hi. We wrote something and then deliberately pooped on it. You can kind of see what it was before the poop got put on it. Sure, if you take a survey, we’ll wipe the poop off and show it to you. If you don’t feel like taking a survey, just dismiss the popup window, read the two poopless sentences, then treat yourself to half a dozen ads. You’re welcome.”

March 17, 2014 04:24 PM

January 08, 2014

My Upcoming Gigs

Inlet Wines & Brew, Friday February 7, 2014

Inlet Wines & Brew, Friday February 7, 2014

13401 US Highway 1
Sebastian, FL

This is going to be a very special night. Not to play favorites, but I'd really try to make it to this show..

With Diane Ward and Jack Shawde.

by Paul Roub at January 08, 2014 02:20 PM

January 04, 2014

January 02, 2014

December 19, 2013

Personal Blog

It Almost Seems Like Christmas

It Almost Seems Like Christmas by Paul Roub

The Short Version

That’s a new song, a Christmas song. Click the Buy link, and all the profits from your dollar (or more) will go to a wonderful organization called The Haven For Children.

The Long Version

I hadn’t written a Christmas song before, and hadn’t particularly planned to. Other people seem to do it very nicely, I’ll just play those if need be.1

Then I was invited to play in a Writers’ Night, in-the-round with other local songwriters (and also a benefit), a few weeks back. The advertising was Christmas-themed, I knew others would be bringing Christmas songs, and I was gently asked if, you know, maybe I might have one?

I didn’t, and decided to be OK with that. But a week before the show, the germ of an idea showed up. It bounced around as these things do, and the night before the show, I sat down and made myself write some verses. Normally I’ll be all “I have to wait for the muuuuuuse”, but what did it hurt? If they were terrible, I already didn’t have a song. No harm done.

They weren’t terrible. I liked them a lot. It was funny, but also wistful. My song, my rules. And I love me a power-pop melody and a big singalong chorus.

The day of the show, in lieu of lunch, I wrote the middle. I made myself a little demo, something to listen to in the background the rest of the day, so that I might remember it. I posted that demo to Facebook for a really small group of friends - mostly other writers - to hear; basically, I was surprisingly proud of the song. Here’s that demo:

The show went really well (although I think I seriously flubbed the middle — we’ll see when the DVD is available2).

The next day or so, my friend Pete sends me back my demo, but he’s added drums. Tricky, considering the demo’s rather flexible approach to timing.

But it sounded really cool. I sent Pete a new demo, this one with a click track, and a sample sequenced drum part which I hoped he’d ignore. A couple of passes later, and there were drums. Good ones, alongside my little guitar/vocal guide track.

I spent much of this weekend adding bass, guitars, and real vocals. I mixed, and mixed, and re-mixed, and basically learned a lot more than I’d known before about home recording.

For example, I learned that my closet makes a nice, dry vocal/acoustic booth.

recording in the closet

Monday night, up the song went to my music page, where you can buy it right now. It’s $1.00, but you can spend more. All profits (that is, every penny I actually see, after PayPal and Bandcamp fees) will go to charity.

I knew, when I decided to work in earnest on this track, that I wanted it to be for a cause. The choice for Pete and I was obvious: The Haven For Children. It’s a local charity, run by people I admire - and both my mom and Pete’s late mother have given countless hours volunteering and fundraising for them.

Why the Haven?

In their words:

We are licensed by the Department of Children and Families (DCF) of the State of Florida to provide therapeutic shelter care in a homelike environment for children from birth to age ten at admittance who have been removed from their homes because of neglect, abuse or abandonment. The Community Based Care of Brevard County and other community based care groups in Central Florida refer children to The Haven.

The Haven for Children, Inc. program’s goal is to nourish and protect the children in its care and guide them toward positive self-growth. Currently, we have three homes that serve an average of ten children each. Three shifts of trained staff provide 24/7 care 365 days per year. We also receive the services of a nurse practitioner from the Brevard Health Alliance who provides on site medical care to our children.

I’ve seen first-hand the dedication of these people, and the incredible change they make in the lives of children who desperately need that change. They’re superheroes, as far as I’m concerned. If we could help in some small way… no, it didn’t take a lot of thought.

If you like the song (I do!), please download it for a buck or two. If you don’t (I’ll be okay!), you can donate directly to the Haven at this page; or you can send a check to:

The Haven for Children, Inc.
P. O. Box 327
Melbourne, FL 32902-0327

Merry Christmas. Happy Holidays. Have a joyous January 17th, if that’s when you read this. The Haven will still appreciate your help.

  1. Don’t think I can’t summon up any Jonathan Coulton Christmas song on demand.
  2. Watch this space.

December 19, 2013 03:44 AM

December 17, 2013

New Music Downloads

It Almost Seems Like Christmas

track art

All profits from sales of "It Almost Seems Like Christmas" will be donated to The Haven For Children.

This charity is near and dear to Pete's and my heart; it's an organization run by amazing people, dependent on donations to continue their work, providing a safe, nurturing home for kids who truly need it.

December 17, 2013 12:00 PM

December 16, 2013

Work Blog

Using Zumero for SQL Server with FMDB and SQLCipher

Recently, I described how to use SQLCipher with Zumero to encrypt your locally-synched DBfiles. That was all fine, except:

  1. This was before the advent of Zumero for SQL Server.
  2. The ZSS framework includes a stripped-down, synch-only object model, allowing you to use your iOS SQLite wrapper of choice (I choose FMDB)
  3. There’s a lot of “install this”, “drag this to that”, “install the other thing”… Tedious to describe, tedious to follow.

These days, the smart and sane are using Cocoapods to manage the components they’re using in their Xcode projects. There’s a pod for FMDB, one for SQLCipher and now, a Zumero for SQL Server Cocoapod.

How do we combine all the pieces? Head to your XCode iOS project’s folder, and make sure you have a Podfile. In that Podfile, mention Zumero and FMDB, using the SQLCipher variants of both pods:

platform :ios, '7.0'
pod 'ZumeroSync/SQLCipher'
pod 'FMDB/SQLCipher'

No need to specify SQLCipher itself — it’s already noted as a dependency in both the Zumero and FMDB pods.

Now run pod install (or pod update if other pods are already in place):

$ pod install
Analyzing dependencies
Downloading dependencies
Installing FMDB (2.1)
Installing SQLCipher (2.1.1)
Installing ZumeroSync (
Generating Pods project
Integrating client project

[!] From now on use `EncryptedDBApp.xcworkspace`.

Do as the nice program says, and open the workspace it’s created for you.

Look! Pods!

FMDB, SQLCipher, and Zumero pods installed in project

Include paths are all taken care of:

autocomplete on Zumero inclusion

As for actually using the three?

// you'll think harder about this
NSString *dbpath = @"/tmp/foo.db";

// creates the local database, if needed
FMDatabase *db = [FMDatabase databaseWithPath:dbpath];

NSString *key = @"shhhh! secret!";
[db setKey:key];

// No networking on the UI thread. Your app thanks you.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSError *err = nil;

    // synch local/remote changes
    // initialize the local db if needed
    BOOL ok = [ZumeroSync Sync:dbpath
                          user:nil  // again, you'll think harder

    if (ok)
        ok = [db open];
        // and off you go

Easy to blog, easy to follow.

December 16, 2013 10:04 PM

November 29, 2013

November 25, 2013

My Upcoming Gigs

Studio Theatre at the King Center, Thursday December 5, 2013

Studio Theatre at the King Center, Thursday December 5, 2013

3865 N. Wickham Rd
Melbourne, FL

Some of our best local songwriters performing in-the-round; all proceeds benefit the Space Coast Cancer Foundation. Tickets are $17 at the box office or online, or contact me for $15 advance tickets..

With Brant Christopher, Ashley Breaux, Dave Miller, Debbie Barnes, Megan & Kelly Hazlett, Dave Petit and Sheryl Paige.

by Paul Roub at November 25, 2013 02:13 AM

November 24, 2013

Personal Blog

Do Not Disturb, or "How to Use Your iPhone as an Alarm Clock and Remain Sane"

This is one of those things that us nerdy types already know about; but three times recently, I’ve explained it to normal human beings (you know, the ones whose actual lives get in the way of exploring every menu on their phones). They either didn’t know that “Do Not Disturb” existed, or weren’t sure it would work for them.

Spoiler: it will probably work very nicely.

  • The Goal: Use your iPhone as your alarm clock, at home or abroad.
  • The Annoyance: 3am dings and bright-as-the-sun screens when someone tags you in an adorable cat photo.
  • The Worry: If you could turn off that stuff, what if someone really needed to call you?

Enter “Do Not Disturb”, which is a not-that-new iOS feature that most likely does just what you want.

No noises, no midnight home screen lights — but your alarm will still work.

Where does Do Not Disturb live?

On iOS 7, it’s right there in the Settings menu:


On iOS 6, it’s hiding under the Notifications menu.1

On iOS 5, it’s worth mentioning that your carrier probably offers an iPhone 4 as a free upgrade.

Manual vs. Scheduled

Do Not Disturb, disabled

“Manual” is for when you’re heading into a meeting, etc. and don’t want your phone vibrating, ringing, lighting up, etc. unless it’s actually urgent. Turn it off when you’re done.

“Scheduled” is the thing you’ll set once and never think of again. Click that to turn it on.

Do Not Disturb, scheduled

Here I have my phone set to shut up between midnight and 6am.

Want to change that? Click the times and do so.

Setting the Do-Not-Disturb schedule

I recommend leaving “Repeated Calls” on - if anyone calls you repeatedly, assume it’s urgent and let it through.

Also handy: silence “Only when iPhone is locked”. If you’re actually up and using your phone, go ahead and ring.

Repeated / Locked Settings

Those calls you always want to receive

No matter the time of day, or the urgency of the meeting, some calls you always want to take (or at least hear about).

Maybe it’s your kids. Maybe it’s your parents.

Maybe it’s Batman.

I'm Batman

Tell “Do Not Disturb” to always allow calls from your “Favorites” list (or another list, just for this purpose)

Allow Calls From… menu

Then open up those contacts and add them to that list:

Choose a phone number:

Choosing the number to add

“Voice Call” is the right answer in this case:

Use that number for voice calls

There you go. When Bats wants to call and complain about how hard it is to keep Robins around these days, you’ll be there for him.

But what about the Alarm? Will I still wake up?

Alarms still go through. That’s not someone else disturbing you - that’s you disturbing you, as is your right.

  1. Sorry, no iOS 6 screenshots, but they’d be largely the same.

    If you’re using a 4S or later, upgrade to 7. Seriously. When someone complains about how Apple “broke” iOS and everything’s different, I recommend hearing that as a toddler angry about having to eat Mac and Cheese out of the wrong bowl. A much better bowl, in fact.

    But, you know, toddlers, what can you do?

November 24, 2013 07:19 PM

October 26, 2013

My Flickr photos

2013-10-21 10.44.58

Paul Roub posted a photo:

2013-10-21 10.44.58

Fascinated by the old cemeterynear the hotel.

by Paul Roub ( at October 26, 2013 06:09 PM

2013-10-23 15.23.16

Paul Roub posted a photo:

2013-10-23 15.23.16

What happens when you unknowingly sit in the caricaturists chair (while he's on break), and fall asleep? The caricaturist returns and gets to work.

by Paul Roub ( at October 26, 2013 06:08 PM

2013-10-24 11.22.30

Paul Roub posted a photo:

2013-10-24 11.22.30

One of the original "Bombe" computers, designed by Alan Turing, used to break German Enigma encryption,

by Paul Roub ( at October 26, 2013 06:08 PM

2013-10-24 13.47.07

Paul Roub posted a photo:

2013-10-24 13.47.07

Colossus - the machine that arguably won the war in Europe.

by Paul Roub ( at October 26, 2013 06:08 PM

2013-10-24 14.26.28

Paul Roub posted a photo:

2013-10-24 14.26.28

Walking around Bletchley Park isn't a terrible experience.

by Paul Roub ( at October 26, 2013 06:08 PM

October 14, 2013