December 07, 2016

Open Mike's, Saturday January 21, 2017

Each month Open Mike's will be inviting four accomplished local songwriters to share their craft with you in an "Quiet" intimate environment. In an effort to create a totally new listening experience here at Open Mike's, excessive table chatter will NOT be permitted..

September 21, 2016

Open Mike's, Saturday October 8, 2016

Part of the Show and Tell series: Featuring several pieces from local artists Shireen Makhlouf & Kasey Klein. They will be on hand to talk about their process and what inspiries them to create. If you fall in love with any/all of their pieces, they are available for purchase. Show & Tell starts at 5pm, the music begins at 7:30..

So, a number of years ago (fine, a number of decades ago), I went to high school with two very nice guys named Glenn and Pete. We were in jazz band together, we played in a few short-lived cover bands together, and Glenn even played on some very early demos of mine that the world must never, ever hear.

Fast-forward a while. Pete played on It Almost Seems Like Christmas — honestly, he’s the reason it was finished and released at all. We were pretty proud of the result, and loved working together. Pete joined me at a few acoustic shows, and we wondered what would happen if we recorded in an actual studio. Of course, said Pete, “we gotta get [Glenn] Hess”.

You cut your hair, you moved out west
You're changing everything
And I wonder if you're trading me in, too
You're feeling stronger and you show it
By not picking up the phone
You don't come over
Don't invite me over there with you
You like to sleep at home, I hate to sleep alone

CHORUS
Just last week I walked on water
Just last week I hung the moon
Just this week you just don't know
You just don't know
You just don't know

The things that make a hunger
Make things such a mess
When one side's higher than the other
It tilts, it spills, it taints us
I though you were my lo...

September 03, 2015

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

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?

March 12, 2015

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.

February 27, 2015

“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 findnoodles.com, 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 13, 2015

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 09, 2015

February 08, 2015

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!!!

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

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

iPhone/iPad/iPod Touch-only, for the moment. Expect an Android version in the future. ↩

March 17, 2014

“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.”

December 19, 2013

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.

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?

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.

Don’t think I can’t summon up any Jonathan Coulton Christmas song on demand. ↩