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 paulroub.com.

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
772-589-4445
http://www.inletwines.com/

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
321-208-5455
http://www.vinylrequestrecords.com/

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
321-254-5645
https://www.facebook.com/openmikes1

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
321-208-5455
http://www.vinylrequestrecords.com/

$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
772-589-4445
http://www.inletwines.com/

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 pooped...



merlin:

"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
772-589-4445
http://www.inletwines.com/

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 (1.0.0.1556)
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?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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
                     cipherKey:key
                     serverUrl:@"https://myserver.example.com"
                        remote:@"remoteFoo"
                    authScheme:nil
                          user:nil  // again, you'll think harder
                      password:nil
                         error:&err];

    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
321-242-2219
http://www.kingcenter.com/

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:

settings

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 (nobody@flickr.com) 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 (nobody@flickr.com) 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 (nobody@flickr.com) 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 (nobody@flickr.com) 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 (nobody@flickr.com) at October 26, 2013 06:08 PM

October 14, 2013

October 09, 2013

My Upcoming Gigs

The Halfway House, Thursday October 24, 2013

The Halfway House, Thursday October 24, 2013

24 Priests Bridge
London, UK
020 8878 396
http://www.halfwayhousebarnes.co.uk/

Featured Artist at the Halfway House Acoustic Night.

by Paul Roub at October 09, 2013 07:29 PM

September 25, 2013

September 18, 2013

My Flickr photos

P1030065

Paul Roub posted a photo:

P1030065

My kind of bass, in every possible way.

by Paul Roub (nobody@flickr.com) at September 18, 2013 01:42 AM

P1030141

Paul Roub posted a photo:

P1030141

Soundcheck. The only decent shot I was able to grab of Jon Wurster.

by Paul Roub (nobody@flickr.com) at September 18, 2013 01:42 AM

P1030149

Paul Roub posted a photo:

P1030149

Pre-show. At this point, no one else appeared to notice it was actually Bob checking out the gear.

by Paul Roub (nobody@flickr.com) at September 18, 2013 01:42 AM

September 16, 2013

September 09, 2013

August 26, 2013

Work Blog

Using SQLCipher encryption with the Zumero iOS Framework

A developer recently asked us if, while using Zumero to sync application data to his devices, he could also encrypt that mobile data using SQLCipher.

The short answer: yes, and it’s easy. Zumero and SQLCipher work independently, unaware of each other; there’s no need to worry about SQLCipher during Zumero operations.

You’ll need to take care to set up your projects correctly, and add one SQL statement when opening a database. That’s it. Fully-encrypted local databases, happily synching with remote counterparts.

Setting Up Your Project

Create your XCode iOS project as you normally would. Don’t add any extra libraries at this time. In particular, don’t add sqlite3.

Adding SQLCipher to your project

Using either SQLCipher Community Edition or SQLCipher Commercial Edition (easier to install, faster builds, up-to-date OpenSSL), install SQLCipher and add it to your project per the instructions.

Take a moment and Build your project; it’s easy to skip a step or get a search path wrong. I’ve heard. From a friend. Who’s totally not me.

Adding Zumero to your project

Download the Zumero Client SDK from our Dev Center, and unzip it to a non-temporary location. You’ll want to hang on to the libraries and documentation therein.

Drag ios/Zumero.Framework from the SDK folder into your project’s “Frameworks” folder. No need to copy the files.

copying files to iOS project

Zumero Framework in project

As mentioned in the Zumero iOS documentation, you’ll need to include iOS’s libz and CFNetwork libraries for Zumero to work properly.

When all is said and done, your library list will look something like:

Project library list

…only with less red, since you will have already done your build troubleshooting. Good for you.

Build again, to confirm that Zumero is happily in place.

Encrypting your Zumero databases

Creating a new, encrypted database for Zumero takes one additional step: after opening the database with ZumeroDB::open, you’ll need to issue a SQLite pragma statement to set your encryption key. Use the same key every time you open the database.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
NSError *err = nil;
BOOL ok = YES;

ZumeroDB *db = [[ZumeroDB alloc] initWithName:@"mydb"
                                 folder:nil
                                 host:@"http://localhost:8080"];

if (! [db exists])
  ok = [db createDB:&err];   

if (ok)
  ok = [db open:&err];

if (ok)
{
  NSString *sql = @"pragma key = 'secretword';";
  ok = [cdb execSql:sql values:nil error:&err];
}

You’ll probably want to manage your keys a bit more carefully than that. Life’s so simple, here in sample-app land.

That’s it; your mobile database is encrypted, and can’t be read or modified without that same key. You can, and perhaps should, use different encryption keys for each mobile device. SQLCipher encryption does not apply to the Zumero sync traffic (although of course the communications themselves are encrypted).

Encrypting a plaintext database can’t be done in-place; you should be able to use sqlcipher_export, then replace the old database with the newly-encrypted copy.

August 26, 2013 11:31 AM

August 25, 2013

August 11, 2013

August 01, 2013