View Sidebar

Brian Mayer: product, engineering, creative.

I am based in San Francisco and I update my blog infrequently. About me.
From Boston to Ferguson: A Lesson in Passion and Prejudice

From Boston to Ferguson: A Lesson in Passion and Prejudice

A couple weeks ago, I wrote a blog piece expressing my outrage at the confrontational and militarized nature of the police that faced the Ferguson protestors. That piece had nothing to do with the case itself that sparked those protests, because I preferred not to speculate, saying: “we are always too quick to jump to conclusions about things we don’t know based on what the media has told us.”

I’ve been thinking about the way that the media tends to exasperate tensions and flare up passions in the wake of headline-grabbing stories like the tragic Michael Brown shooting. It’s not a new phenomenon of course. We all remember this Paul Revere engraving of the Boston Massacre from American history:

Boston Massacre

As it turns out, this depiction which ran in major press at the time was completely inaccurate, and served to enflame the passions of colonists whose true outrage about the injustices of the British tax regime were squarely focused on the actions of a few British infantrymen who had fired into a rowdy crowd on that fateful night. The colonists’ anger was not wrong, and it would later by catalyzed on a grander scale into a full-on revolution against the British Crown. But when John Adams defended the soldiers against charges of murder, he was not appointed to be a defender of the colonial system. His job, despite being a colonial sympathizer himself, was to defend the action of the officers in this one case. His job was to convince a jury to look at only the facts, and to adjudicate based on the evidence and not on the politics of the moment. In a surprise decision, the jury found the soldiers not guilty. It is worth noting that several months had passed between the events of the shooting and the trial, which probably served to calm the passions of the court in reaching a fairer verdict on the case.

In Ferguson, the historical parallels to Boston are hard to ignore. An officer of the law, acting in what he claims was self defense, shot and killed a young man under circumstances clouded by politics, passion and widespread injustice. It is a national tragedy, as it should be when an American citizen is killed by an officer sworn to protect and defend him. There is a simmering and rightful hatred of the police for widespread injustice against black Americans and other minorities, shared by white Americans (including myself). There is a widespread distrust of police and federal agents for abusing their power in general, for stretching the limits of the law and outright breaking it, shared by many Americans (including myself). There is no doubt that the shooting of Michael Brown was an avoidable tragedy, and the chain of events leading up to his untimely death was started long before Darren Wilson went on patrol that day. For black Americans, Ferguson is only one chapter in a long history of police violence against them, and the media attention focused on Ferguson is a rare spotlight on the injustices they face every single day in cities and towns across America. Such a case demanded swift action, yet today that action happened in the form of a no true bill delivered by the grand jury.

No one knows what happened that day, except for the officer himself. The tapes and transcripts that have come out about the grand jury have revealed a cacophony of contradictory eye-witness testimony (and we know about the unreliability of eye-witness testimony especially when influenced by the media) and physical evidence that more or less supports Darren Wilson’s self-defense claim, but doesn’t necessarily support his justification of deadly force. In this case, the grand jury seems to have caught the responsibility that would normally be reserved for a trial jury: to review all the available evidence and return a judgment. (In a grand jury proceeding, 9 out of 12 men and women needed to vote for an indictment on a charge, whereas in a criminal trial, all 12 out of 12 jurors need to vote for conviction.) Ultimately, in our innocent-until-proven-guilty justice system, more than 1/3 of the grand jury that heard the case wasn’t convinced that even probable cause existed to bring charges against Darren Wilson, even without the defense presenting its own case. Personally, I would have preferred an indictment so a proper trial could have been conducted, but given that the bar for the indictment was even lower than that for conviction, it seems fair to say that Darren Wilson will never be seriously punished for killing Michael Brown.

It’s really hard to accept this, because I don’t believe it’s right for someone to get away with killing someone else, except in the most clear-cut cases of self defense. Moreover, it is hard to watch the due process afforded to Darren Wilson unfold, when Michael Brown received no such treatment under the law. Something is clearly broken in our justice system when an unarmed teenager can be shot and killed by the police in the first place. Darren Wilson himself is only an agent of a larger justice system which incentivizes stop-and-frisk tactics contrary to the Fourth Amendment, racial profiling contrary to the Fourteenth Amendment, and shoot-to-kill policing contrary to the Fifth Amendment. As far as I am concerned, the entire police state should be on trial because, as I wrote in that post about Ferguson a couple weeks ago, the police have been mobilized beyond their actual necessity and even their mandate.

Which is what makes it so much harder to accept the grand jury decision on Darren Wilson as nothing more than it actually is: one verdict on one case. Like the jury in John Adams’ day, this jury is not there to put the system on trial. It is only there to decide if in this one case, this one time, this one officer is guilty of a crime. I’m sure a lot will be said in the coming days about the racial biases of the jury itself, about the lack of vigor with which the prosecutor pursued this case, and much else. There are a lot of angry people that would like to see Darren Wilson severely punished for what he did to Michael Brown. And I believe that prosecutors should be tougher on police in general, a point succinctly made by Jay Smooth on Twitter: “The fundamental danger of a non-indictment is not more riots, it is more Darren Wilsons.”

But the fact that no indictment was returned against Darren Wilson, despite media and popular pressure to do so, and despite the overwhelming tendency of grand juries to return indictments, should tell us something.

I’m not saying that I’m not angry about the police brutality that led to the death of Michael Brown, and the system writ large. I am vocally discontent with the police state and have expressed my frustrations about it in much of my public and private writings (and this coming from the perspective of someone who is not a target of the police state).

I am only asking myself if I am fairly separating my passions and prejudice about the justice system from the facts of this individual case. The grand jury, as with the history of the Boston Massacre, has given me pause about jumping to conclusions before their time. Only Darren Wilson knows whether he is guilty of a heinous act beyond simple self-defense–and if I may confess, I believe he probably is–but our justice system is not, and should not, be built on innuendo and prejudice. It is built to withstand the skewing effects of anger and revenge. We should not imprison people for politics or to satiate primal desires. The time will come to have our new American revolution founded on constitutional principles that this country has lost, but it is not today.

Darren Wilson’s due process is a sobering reminder of what our justice system is capable of. Michael Brown’s tragic death is a chilling reminder of how far our justice system needs to go.

Edit: 14 hours after I posted this, I see that (overwhelmingly peaceful) protests have erupted all over the country in response to the grand jury decision. I really do hope that these protests, and the spotlight on police violence, lead to meaningful change in how America polices its police. Maybe Ferguson will be the catalyst of true reform. We can only hope.

November 25, 20140 commentsRead More
Something to Ponder

Something to Ponder

I have been reading the Meditations of Marcus Aurelius, and this quote has resonated with me.  I’ll leave the carpe diem evocation here.

Translation from George Long:

Remember how long thou hast been putting off these things, and how often thou hast received an opportunity from the gods, and yet dost not use it. Thou must now at last perceive of what universe thou art a part, and of what administrator of the universe thy existence is an efflux, and that a limit of time is fixed for thee, which if thou dost not use for clearing away the clouds from thy mind, it will go and thou wilt go, and it will never return.

Original Latin:

Memento, quamdiu haec distuleris, et quoties a diis opportunitates nactus iis non usus sis. Oportet tandem aliquando sentias, cujus mundi pars sis et abs quo mundi rectore delibatus substiteris; tum vero, circumscriptum tibi esse terminum temporis, quo nisi ad serenitatem usus fueris, id abibit et tu abibis; neque unquam tibi redibit.

November 12, 2014Comments are DisabledRead More
Productive vs. Unproductive Activities

Productive vs. Unproductive Activities

As a follow-up to my self examination in Being a Productive Animal, I’ve taken it upon myself to assemble a list of the activities I do in my free time separated by whether I consider them productive or unproductive. It may seem a simplistic bifurcation, but at the end of the day the productive activities are the ones I feel make me more complete of a human being (mentally or physically enhanced, more fulfilling), and the unproductive ones are, well, brain-draining. Of course I quite enjoy many of the unproductive activities, but that doesn’t mean that their net effect is constructive.  I’ve also found in making this list that productive activities are not always chores, and there are quite a few leisure activities that can be, in my opinion, brain stimulating as opposed to passive.

My ultimate goal here is to force myself to do at least X productive activities per day and limit my unproductive activities to only a couple hours a week.  I’ll let you know how it goes.

Brian’s Productive Activities

  • Reading any book or audiobook
  • Social time or correspondence with close friends
  • Piano (playing, writing music, creative doodling)
  • Cooking/baking
  • Independent programming projects/Project Euler
  • Exercise
  • Talking on the phone
  • Blogging
  • Personal hygiene
  • Chess & Poker (only in conjunction with engaged learning)
  • Cleaning apartment/doing dishes
  • Creative writing
  • Brainstorming startup/product ideas
  • Travel
  • Learning a new skill
  • Photography
  • Playing cards
  • Taking a constitutional (walking, that is :))
  • Watching a movie I’ve never seen
  • Legos
  • Career advancing activities (interviews, updating resume, networking, etc)
  • Podcasts

Brian’s Unproductive Activities

  • Watching any TV (even Game of Thrones)
  • Reading the news
  • Watching a movie I’ve seen before
  • Arguing about politics
  • Listening to standup comedy
  • Social media (Facebook, Twitter)
  • Computer, video or mobile gaming
  • Browsing the internet aimlessly (reddit, Wikipedia, YouTube, etc)
  • Eating junk food
  • Hacker News (exception for participating in intelligent comment threads)
  • Chat/iMessage
  • Large social gatherings/small-talk in general

This list is obviously personal to me, but speaking with some friends I have found a lot of common themes (watching TV is a big one for a lot of people).

What would you add to your list?

November 7, 2014Comments are DisabledRead More
ReservationHop Does a Hard Pivot: We are Now OK Shift

ReservationHop Does a Hard Pivot: We are Now OK Shift

I have been relatively silent recently regarding ReservationHop. We have been doing a lot of exploration (or in startup lingo, “customer discovery”) as we try to find a good niche for innovation in restaurants that benefits consumers and optimizes some part of the dining experience. Consequently, in the last couple of months, we have built and tested various prototypes with several end users. These include:

– A reservation marketplace
– A reservation ticketing system
– A new online reservation system
– A restaurant table and server management software
– An easy restaurant scheduling software

It was on the last development that we started to see an opportunity in the form of service industry workers who have a lot of trouble changing out their shifts. This primary use case, allowing service workers to easily get their shifts covered in a way that fits into their existing workflow, is a niche in which we have seen the most traction.

Enter OK Shift, which we soft-launched a couple weeks ago and have been beta testing in several locations around the country. OK Shift is an SMS-based, cross-industry scheduling tool that lets hourly service industry employees get shift coverage, secure manager approval, manage their schedule and communicate with their coworkers.

screenshot-1 screenshot-2

59% of American workers are paid by the hour. There are 4.5M food and beverage service industry workers alone in the US, and millions more service jobs in other fields: transportation, hospitality, and medical care. It’s a gigantic market.

Moreover, the technology that almost all service workers use to manage their last-minute shift coverage run-of-the-mill text messaging. Not everyone has a smartphone, but everyone has an SMS-enabled cell, and anyone who has worked in the service industry will tell you that the only way to get shifts covered is to text or call coworkers on an individual or case-by-case basis.

The best part about OK Shift is that it’s free. Signing up is easy. If you work in the service industry, simply text HELLO to 513-OK-SHIFT (513-657-4438) or visit 513-ok-shift.com.

Why did we decide to ultimately pivot away from ReservationHop? It became clear that the marketplace amongst restaurants wasn’t as big as we had hoped, for a couple reasons. First, after personally speaking to many of the best restaurants in San Francisco, as well as elsewhere, we could see that the value add we were bringing to the table wasn’t compelling enough to inspire a change in behavior. There was a real hesitance on the part of restaurants to mark up their prices in the form of paid reservations, for fear that they would lose control over dictating the value of their product. And there were, of course, branding concerns for many restaurants beyond simply maximizing revenue.

And finally, there are only a handful of restaurants where consumers are willing to pay for a reservation. Of these, we could only provide a niche service for certain prime times or weekends. In order to build a long-term sustainable business, the market would have to expand significantly beyond exclusive restaurants.

As I wrote in the past, we set out originally to work with restaurants and that’s what we intend to do as we evolve into this latest iteration. The past couple of months have been extremely educational and I am excited to move forward with OK Shift. We have spent the time to build and ship a researched, well-considered and tested product that we believe will solve a giant pain amongst a huge portion of the population.

ReservationHop was an experiment, and an important stepping stone in building a sustainable business. Now, as we move forward as OK Shift, the sky’s the limit.

November 6, 2014Comments are DisabledRead More
OK Shift: Manage your workplace shifts via text message

OK Shift: Manage your workplace shifts via text message

The idea was simple: why isn’t there a good system for hourly workers (60% of the US workforce) to swap their shifts out via text message?

Enter OK Shift, a text message-only based system that allows hourly workers to swap their shifts via text message, and get those swaps approved by managers. The system allows for shift management, directory management, the ability for managers to call off a shift or call in workers, and more importantly to communicate with the entire team at once via group chat.

screenshot-1screenshot-2

It all works by texting the number 513-OK-SHIFT (513-657-4438) and the system prompts you through the rest: posting shifts, adding coworkers, adding managers to approve, and broadcasting.

On the technical side, it uses the Twilio API with a PHP/MySQL backend (like all my projects). It’s free for now, but eventually I want to add a paid scheduling layer on top of the system for management.

Try it out!

October 28, 2014Comments are DisabledRead More
A Personal API

A Personal API

Why is the API model traditionally built around a central entity node connected to many consumer nodes, rather than the other way around? Why is it possible for me to connect with various APIs from cloud services like Twilio and Dropbox but I can’t create an API for myself that allows companies to connect with me?

Instead of going to the cloud, why can’t the cloud come to me?

Put it this way. I watch Star Trek on both Hulu and Netflix. My episode history is out of sync on both platforms. Why is that? Because these are separate services with their own backends. There’s no way for them to talk to each other, and there isn’t because there’s only one point of intersection: me.

But what if I could store my own episode history in a personal API, which then Hulu & Netflix would talk to? Both would have permission to update my episode history, and both would have read access. I would give Netflix billing access to the banking endpoint of my API, and so they would enable additional access on their platform. They could push content to my API endpoint and it could be synced between all my devices, including my phone which would also have read access to my API.

Everything would remain “in the cloud,” but the cloud would be my own personal cloud. A mini-cloud, if you will.

There are several types of information that could be stored in a personal API:

  • My personal contact information
  • My correspondence
  • My media
  • My preferences: brands, things I read, movies I like
  • My shopping history
  • My payment information
  • My medical history and prescriptions

Pretty much all the things I do online I could do with a personal API, but there would be a few advantages introduced by creating a new protocol:

  • I would be able to control my own data. Companies/services would need to request access to my data on an individualized basis. I would only give data that would be needed for each service.
  • Privacy becomes completely up to me. I would be able to control how access to my data is granted and revoked. My data is only in place accessible only through authentication to my API. I can revoke access tokens upon request.
  • “Add-ons” to my API service could be enabled like encryption or new REST endpoints, that would allow me to evolve what my API is able to achieve.
  • I could create direct P2P connections with fellow users of the Personal API protocol without having to connect through a third party server.
  • The protocol could integrate with multiple devices, but the nature of these devices would need to change. For example, if I wanted to send a message to my brother, right now I send a text message to his phone which gets routed through AT&T’s cell phone towers (for example). But with a personal API, I would send a message to his API endpoint, and his devices would all pull from it. So it would be like iMessage, but an iMessage that would integrate with *everything* I interact with.
  • On that note, the “internet of things” becomes much more possible. Instead of having to program all my devices, my devices would be adapted to me. When I buy a new product, it requests access to my API, and then can interact with other services that also have access to my API.
  • It weakens the government data dragnet. Right now, one clandestine program by the NSA can tap into Facebook once, and have access to everyone’s data. With a distributed personal API, the government would need to focus its attention on just nefarious or dangerous individuals. The legal status of a personal API would be more akin to a lockbox in my house than a self-storage center that is analogous to the current cloud.

If a personal API protocol were to be created, that would only be the first and easiest step. Cloud services would need to play ball, adapting their account creation and sign in systems, not to mention data access and storage, to work off of my personal cloud rather than their common cloud.

Speaking of Facebook, everything I have listed above is something Facebook could create tomorrow (or Google or Apple), and they may even be considering doing so. They certainly have access to the data necessary to create the API. But they also have the problem of centrally storing that data, creating a single point of failure/weakness/whatever. A centrally stored backend does not meet the criteria of a truly personal API listed above. It needs to be distributed.

Again, it’s a specious concept, and I can’t be first person to think about it, but I would be interested in A) If anyone has fleshed out an idea like this a bit more or attempted to build it, B) Either way, if anyone would be interested in working on something like this with me.

Would love your input in the comments.

October 13, 20142 commentsRead More
The Giving Season

The Giving Season

Note:  This was originally published in the Hypocrite Reader in September 2014.

Every morning Wentworth stakes out a corner of the Square because that’s where the out-of-towners congregate. He knows their patterns. With his pressed suit and slicked-back hair, clean shave and faint perfume, he gives these people exactly what they expect to see on the streets.

They idle by, each with a purpose. Men hunched over in dark jackets float around him like silent shadows on the wall. A woman in drooping rags pretends not to notice him there with his hand outstretched. His plight is obvious but they move on.

He tries different techniques. He holds a wad of cash in his hand, to show his generosity. He tries stacking the bills neatly in piles around his feet. He puts the big bills on top so they beg to be taken. He puts the small bills on top so he looks less desperate.

One time a child notices him presenting a solitary, crisp banknote in his manicured fingers. The child stops and outstretches his dirtier fingers to take what he desires. But his mother yanks him away with a rebuke. (At least Wentworth assumes it is his mother. He can never tell with these people.) They roll off with their shopping cart piled high with bags and old clothes and sandals. She steels her eyes forward.

The days go on, and sometimes Wentworth has some luck. Occasionally, he manages to give away some cash to a caring passerby or an older fellow. His clothes need constant replacement. His fingernails need constant trimming. Once in a while he does not go to the Square at all, but sits and weeps in the corner of his house, clutching his last remaining suitcase full of money. Every day the suitcase becomes lighter. Every day he walks a little quicker.

One winter evening he rests on a bench near his usual spot on the Square, and buttons his fur coat to the neck. The winds are whistling Christmas music. It is the giving season. He cannot remember the year.

The sound of rustling steps in snowdust catches his attention. He looks up to see several boys, seemingly restless with the slog of adolescence, approach him across the whitewashed plain. They drag heavy bags. Scraps of cloth hanging from their pants tickle the ground as they quickstep over. Tappity-tap, quicker and quicker, the soles of their shoes scrape the street as they snicker.

He has heard of such attacks, but they have never happened to him.

He doubles over as the first boy kicks him in the side. The other boys take turns on his stomach, his legs, his face. His nose is dripping blood on his pressed white shirt. His tie is ripped. His feet are swelling. One of the boys has a backpack that he has to lift with both hands as he brings it down onto Wentworth’s prostrate body. The bag bursts at the seams. The last thing Wentworth remembers is a shower of green money raining onto him. His eyes swell shut as the boys stuff the useless cash in his pockets, his pants, his collar, his mouth.

The next morning, he is awoken by the bells of the holiday carolers as they make their way ghostlike across the Square. They are speaking in hushed and excited tones. Wentworth peers through swollen slits at his pristine body ruined, his black and white turned green and dirty. He struggles to right himself as a wave of out-of-towners crests the hill and bustles past. They notice him but quickly avert their gaze and move on. He collects handfuls of green bills from his body. Some are covered in vomit. He stacks them all in neat piles. Then he exhales and pushes himself up on the icy ground. His corner on the Square beckons him only a few steps away.

He knows now he needs to start again. He needs a new suit and haircut and manicure and shower. He needs to put the money through the wash so it comes out clean. It will take a lot more work than before. But his corner is waiting. He will be back. After all, it is the giving season.

September 18, 2014Comments are DisabledRead More
Ferguson is America

Ferguson is America

I apologize in advance for invoking Godwin’s Law, but as always, Nazism is such the prime historical example of snowballing fascism it’s hard not to bring it up. So I’ll get it out of the way with a brief look at Martin Niemöller’s well known and probably over-quoted poem:

First they came for the Socialists, and I did not speak out—
Because I was not a Socialist.

Then they came for the Trade Unionists, and I did not speak out—
Because I was not a Trade Unionist.

Then they came for the Jews, and I did not speak out—
Because I was not a Jew.

Then they came for me—and there was no one left to speak for me.

We know the poem, and we know the message of the poem is supposed to be “speak out before it’s too late.” But I think a more important message of the poem is that fascism never announces its arrival with jackbooted stormtroopers marching down the town square. It arrives slowly, with the creeping support of legitimate and well-intentioned citizens who desire greater safety, more control and maybe more comfort. Friendly politicians with ambitious plans are far more the province of fascism than angry men with beards. There’s that old nickname the Egyptians had for their dictator of 30 years, Hosni Mubarak, “La Vache Qui Rit,” The Laughing Cow. It’s easier to convince people to surrender their liberties and critical faculties with a smile on your face and a plan to eradicate undesirables in your back pocket. If these undesirables are socialists or trade unionists or Jews, all the better.

It is also a fact of fascism that ideology comes long before cults of personality dominate the scene. We are historically trained to look for dictators who seek to create fascist societies, but if you read the biographies of dictators it is as likely the dictators are created for the society they live in. They fill the power vacuum created by inept government or a weak economy, or they take advantage of scripture which demands a strongman to usher in a god-fearing society. The fascisms of the world today in full force–whether it’s the monarchical fascism in T h a i l a n d or the Islamofascism of Boko Haram or ISIS or Hamas–started as ideologies in need of leadership. We know where to look when we seek out the hot spots for burgeoning fascism: places where ideology trumps individual liberty, or threatens to do so (Zionism certainly falls into this latter category, as does Russian exceptionalism/Putinism and a host of other almost-fascisms).

Which brings me to another quote from author William Gibson:

The future is already here — it’s just not very evenly distributed.

It is this quote that has had me thinking the most since protests and the violent police crackdown erupted in Ferguson last week, and the world has been watching images of our country the way we often look in disbelief at images from oppressive regimes all over the world.

I will for the moment suspend my judgement on what happened in the Michael Brown shooting, because we are always too quick to jump to conclusions about things we don’t know based on what the media has told us. I’m not going to participate in speculation about motives or racism. This is what I care about right now:

Police-officers-point-their-weapons-at-demonstrators-protesting-against-the-shooting-death-of-Michael-Brown-in-Ferguson-Missouri-August-18-2014.-REUTERS_Joshua-Lott1outrage-in-missouri-town-after-police-shooting-of-18-yr-old-1

I am not in the out group this time. I’m not black, I’m not poor, I don’t live in a place where police suspect me and everyone around me, and I don’t think I’m likely to even commit a petty crime that would get the police called on me in the first place. But I see this picture and the first thing I think is, how hard would it be for those guns to become pointed at me? What laws have I broken that no one knows about yet? What situation in this country could lead for more security such that such scenes become commonplace?

The future is here already, it’s just not evenly distributed.

Despite the fact that most of us remain isolated from this sort of show of force, we’ve known that local police forces in small towns like Ferguson have been acquiring military grade gear for years, including tanks, grenade launchers and assault rifles. And we know that SWAT teams are becoming more and more normal as responses to small crimes, with the inevitable consequences of innocent causalities. And even agencies of our own government are stockpiling ammunition. What does the Department of Homeland Security need with its own military?

The fact that they’re coming for poor black people concerns me, not only because of the wrongness of it on its own, but because I know that somewhere down the line, I’ll be on their target list, too. There’s a long list of types of Americans that other Americans, if they had the means, would love to lock up or outright execute: everyone from petty thieves to looters to drug dealers to the homeless to Muslims to “the 1%” to meat eaters. Do you really want to sit here and take your chances that the police next week don’t have something against you? Especially if we’ve handed them all the tools they need to make your life miserable?

Most Americans are fortunate that we don’t encounter police every day, or situations don’t become tense enough to merit this sort of military presence on our own streets. But we saw during the Boston Marathon Bombing that it takes very little to panic Americans into creating a police state around themselves. And when you create a police shield for yourself, you have to find someone to shield against.

I don’t think the problem is “speaking out.” We all know it’s a problem, and the media–since we have a blissfully free press in this country–has reported constantly on overmilitarization of the police. The problem is despite the fact that we see the images on TV, and we know that one day it’s very possible that our own worlds will be turned upside down by a SWAT raid or a bad shooting in our neighborhoods that tips off a riot or police crackdown, we don’t do anything about it.

And what can we do? Knowing your rights is a good place to start. But what’s the best response as citizens to an omnipresent, obviously growing threat from the police of America to our own freedoms? Should we all buy guns, as people near Ferguson are doing right now? Other than arming and waiting patiently, how do we stop the rising tide of police violence and intimidation in America? Or do we just hope that at some point, our politicians come to their senses and limit their own power? Historically speaking, I don’t think that’s very likely.

I welcome ideas in the comments for immediate, actionable things that citizens can do right now to stop the tide of police militarization in America before we all get swallowed up by it.

August 25, 20148 commentsRead More
EphChat: An Ephemeral Chat Program Written in PHP, JS + Firebase

EphChat: An Ephemeral Chat Program Written in PHP, JS + Firebase

I took a break from ReservationHop today to build a new chat program.

Screen Shot 2014-07-17 at 9.08.30 PM

EphChat, which stands for, you guessed it, “Ephemeral Chat,” is a chat program with a twist. No data is stored server side, and messages are only visible to participants for 60 seconds before they fade away into nothingness.

Anyone can create a new chatroom with a random URL hash, or can create their own chatroom.  Users are anonymous but you can edit your name if you wish. Messages are encrypted all the way to the server, where they are relayed to the chatroom participants and then immediately deleted. User sessions are stored until a user disconnects, then they are deleted, too.

Why did I build this?  Well, partly as an experiment with Firebase, but also because I like the idea of people being able to communicate in an encrypted, anonymous way without governments snooping on them.  Reporters can use this to do sensitive interviews; protesters under despotic regimes can use it to organize resistance.

The code is up on GitHub, which I felt was necessary to provide transparency into the app’s inner workings and security.  I don’t usually make my repositories public, for fear of being ripped apart by the hackersphere, but if anyone is going to use this app they’re going to want to know how it works.

I had a lot of trouble with Firebase’s security rules, but I think I figured it out.  Here’s the current security schema:

{
    "rules": {
      "rooms": {
        "$RoomId": {
          "connections": {
              ".read": true,
              ".write": "auth.username == newData.child('FBUserId').val()"
          },
          "messages": {
            "$any": {
            ".write": "!newData.exists() || root.child('rooms').child(newData.child('RoomId').val()).child('connections').hasChild(newData.child('FBUserId').val())",
            ".validate": "newData.hasChildren(['RoomId','FBUserId','userName','userId','message']) && newData.child('message').val().length >= 1",
            ".read": "root.child('rooms').child(data.child('RoomId').val()).child('connections').hasChild(data.child('FBUserId').val())"
            }
          },
          "poll": {
            ".write": "auth.username == newData.child('FBUserId').val()",
            ".read": true
          }
        }
      }
    }
}

I welcome any and all feedback on the app, especially security.

Go ahead and start a new chatroom at https://ephchat.com!

July 17, 2014Comments are DisabledRead More
ReservationHop Does a Soft Pivot

ReservationHop Does a Soft Pivot

It has been a crazy holiday weekend.

In three days we went from relative obscurity to being the punching bag of the entire tech industry. I suppose some might envy me for all the media attention I’ve received for a side project I built in my underwear one night after waiting in line for a burrito, but that sort of attention does not a legitimate business make. Getting covered in CNN has its perks, to be sure, but a business needs customers, and most of all, trust.

Let’s start with customers. Opening a firehose of traffic on ReservationHop, with the sales that followed, showed that there is indeed a validated secondary market for restaurant reservations. Paid restaurant reservations are not only desirable, but the market is heading that way as people awaken to the inefficiencies in the current system. Some restaurants, annoyed by empty tables reserved for no-shows and short-sats, are moving towards ticketing and deposits anyway. Multiple chefs and owners have pointed to OpenTable as more of a problem than a solution. A paid reservation system makes sense as a way to dissuade no-shows, distribute covers throughout the week, and even increase fairness for customers. As Tyler Cowen put it in the New York Times, “Money is ultimately a more egalitarian force than privilege, as everyone’s greenbacks are worth the same.”

The biggest criticism we have received has not been about the principle of selling reservations, but rather the methods we initially employed to hack this project into existence. We appreciate the criticism and honest feedback, which is why today ReservationHop is doing a “soft pivot” to address the same customer demand, and in addition work with the restaurants directly to cut them in on the deal. We believe that restaurants can benefit from selling reservations for a couple tables per weekend. This will not only reduce no-shows and mediate demand for their peak reservations slots in favor of off-peak times, but they will also get paid for filling these tables, instead of the other way around.

It was never our intention to harm the restaurants. In fact, as we promised from the beginning, we called to cancel 15 or so reservations that didn’t get claimed this weekend 4-6 hours in advance, so restaurants would not have to deal with no-shows.

In addition, I spent a lot of time in the last couple days speaking and meeting with restaurant owners personally, offering my apologies for the troubles we may have caused them and discussing how we may work together in the future on the massive opportunity that has presented itself. It has not been lost on many restaurants that with the sort of media coverage ReservationHop is receiving and the hundreds of local customers begging for instant access to their tables, they are not only getting free advertising as the hottest ticket in town, but are given the opportunity to make money filling their best tables at near-zero risk of no-shows. This is of course an opportunity that we need to explore with them over the next couple of weeks.

This also means that ReservationHop will be evolving, as all early-stage startups do, as we experiment to find a product-market fit. We may find that our early assumptions about customers or restaurants are faulty, or there are better services we can offer to the foodies of San Francisco that are more scalable.  Or we may find that this entire venture doesn’t really have a large enough addressable market.  One of the interesting things about the last couple of days is how our initial in experiment in customer demand was taken to be “what we do,” with little acknowledgement or understanding (at least outside of the lean-startup-model-aware tech community) that rapid iterations on business models are the norm. As far as I can tell, it is rare for early stage startups to have this much press attention this early in the game. One of the challenges for us will be to navigate the extreme press scrutiny while simultaneously experimenting to find a model that works.

As we evolve, we will continue to let customers have exclusive access to the best tables in the city, while making a new promise to restaurants: we hear your concerns, and we want to work with you. As always, if you are in the restaurant business please drop us a line: admin@reservationhop.com.

July 8, 20144 commentsRead More