Monday, December 5, 2016

Pub Business: Part 1

My family and I recently took a massive risk - we purchased an Irish pub.  The pub is in downtown Grand Rapids, MI and had been struggling due to a lack of investment, management, and ownership neglect.  It was losing money and it wasn't hard to see why: service was awful, the building was dated, the beer was skunky, everything smelled.

Before
We ran the bar for 4 weeks after purchase to get a better understanding of the business, then shut it down for 6 weeks for renovations.  We re-opened 2 weeks ago and have endured the trial by fire, and I think we've come out the other side satisfactorily.  In this post I'd like to lay out our financial modeling, our business strategy, and the results so far.

Before
 I composed from the previous owner's tax returns an income statement. What it revealed is that draft costs and liquor costs are higher than industry standard, accounting for $7k in losses.  I frankly don't believe either of those numbers: the draft lines were 120ft long and poured pure foam, plus the staff (and their friends) were drinking for free.  I'd personally seen bartenders giving away booze!  I'm curious to anyone's advice on how (or why) the previous owner could have hid these costs.

The other thing this reveals is that food costs as a % of food sales are way too high: 43% in contrast with industry-standard 29%.  There's $35k disappearing there!

Before

Our business plan was pretty simple in concept:

  1. $275k in loans and $225k in capital to purchase the bar and completely remodel it.
  2. Tap talent for the NEW bar!
    1. Design (logo, artwork, menu)
    2. Construction (floors, ceiling, new bar, new cooler and draft lines, booths, etc)
  3. Transform the staff and culture: many of the original team did not make the cut.  Anyone whose honesty we questioned or who did not have a customer-centric outlook quickly phased out of the bar, and the pub's great new look attracted better employees.  We took a zero tolerance policy to theft, sexual harassment, and set high standards for everyone.
  4. Implement systems of quality: daily and weekly checklists to avoid crises and ensure tasks like ordering and cleaning were completed with accountability, plus replacing aging systems with modern ones with lower TCO.
  5. Advertise: we are developing a strategy that combines media, community involvement, social media, and a ground game to fill our pub during non-peak hours.
  6. Marketing: we tapped a mixologist and chef for parts of our menu.  Much of the whiskey, beer, and food selection was made by ownership.  And we made big pricing changes: I graphed the COGS and price of every item and created tiers of target margin, and we now only carry items that fit into those tiers.
Opening Day

Along the way, we've learned a few lessons.  One is that owning a pub is all-consuming: there are always a million things to be done, and you have to learn time management like none other.  Another is having to accept that in the bar business, you're simply going to have some unhappy customers, and you have to figure out what's in your power.  And last, uncertainty kills job creation.  We'd like to hire several more people, but it's so hard to predict demand and sales that we are just taking the work on ourselves.
After
I could cover a million large steps we took to drive sales, but let's leave that for Part 2.  So how about the results so far - are we going to be miserable failures?  For a baseline, I pulled daily sales data from the past two years (2014 sales were better than 2015 sales) and graphed it:
A couple of takeaways here: we are running at 247% of 2015 sales and 153% of 2014 sales.  We have not had a single day where we didn't exceed previous years!


We are wildly exceeding our expectations.  If this pace continues, we'll have plenty of money to hire a manager and let the pub stand largely on its own operationally.  That would give us the ability to focus on business development and efficiency.  I've created a calculator to model increased costs with increased sales, but there's a lot of uncertainty - will this trend continue?  We can't do 147% better than last year forever right?  How much of this is just a new-bar pop, vs how much can we create new business and beat the competition? 
After
Part 2 coming soon.  In the meanwhile, check out our website and facebook!  Or if you find yourself in west Michigan, stop in for a drink :-)

Saturday, July 23, 2016

SolidFire vs EMC ScaleIO


Doing a bit of research and thought I'd write this down for posterity.  Disclaimer: I'm a SolidFire engineer.

SolidFire Pros:

  1. All-Flash optimized
  2. Global, inline dedupe and compression
  3. Enterprise data services:
    1. Snapshots, cloning, replication (sync, async, snapshot based)
    2. Automation (openstack, api's, etc)
    3. Vvols support and vmware integration
  4. QOS
  5. iSCSI or FCP

ScaleIO Pros:
  1. All flash or hybrid
  2. No dedupe or compression.  Never will have global dedupe.
  3. Scales larger (1,000 nodes instead of 100 nodes)
  4. Wider whitebox support
  5. iSCSI only
  6. Can live on top of a compute node, occupying free resources.
More conversation here: http://www.theregister.co.uk/2015/09/29/scaleio_solidfire_and_vsan/

http://virtualgeek.typepad.com/virtual_geek/2015/05/emc-day-3-scaleio-unleashed-for-the-world.html

Thursday, June 16, 2016

SolidFire Architecture #1

 It's time I write a long-overdue overview of SolidFire: how it works, how it solves problems, and why service providers love it.  So here is Part 1!

First, SolidFire is not the solution to everything.  But it is the best in the world at what it does solve, which is why it won Gartner awards for the last two years.  Since this is an engineering blog, let's talk about how it works.

SolidFire hardware is regular servers with SSD's and no RAID, so you get commodity hardware prices and a truly software-defined architecture.  It protects data by writing it in two places using an algorithm we call Double Helix, and then earns space back with inline compression and global inline dedupe.  The global inline dedupe allows for much greater dedupe ratios than anything else on the market, because every block of data written is unique.  Other storage solutions have silos of dedupe, pools of blocks that are unique locally but duplicated many times throughout the environment.
The SolidFire robot

Today SF is iSCSI and FCP only.  When you create a LUN, SF chooses where in the cluster to place the data, removing the enormous complexity of we call the "placement question."  Let's spend some time on that: in most traditional storage environments, you have a couple of storage nodes that form capacity and performance silos.  When you scale out to 20 or 1000 nodes, your provisioning encounters a complex question: where do I place this data?  That spurs hours of performance and capacity analysis, trending and peaks vs average conversations.  On SF, the cluster does it for you.

It also solves the performance question that multi-tenancy brings by allowing you to provision performance.  Not just capacity, but performance!  SF does this by allowing you to set a minimum, maximum, and burst for each volume, guaranteeing a service level.



I've only scratched the surface on this one: we'll save the scale cluster model and more for the next blog post.

Sunday, May 29, 2016

BlackPhone 2 Review

I've been excited about the Blackphone 2 for quite some time and finally switched over to it.  Partially because I want to make it harder for criminals, companies, and the government to intrude on my privacy, partially because I want to encourage the tech industry to implement smart security measures.  Why in the world does pandora demand access to my iPhone's calendar?  This has gotten out of hand.

Unfortunately, the Blackphone 2 is not ready for prime time.  Here's a short list of why.
  • Any attempt to update the OS is met with "Download failed" with no debug data for why it failed.
  • It's freaking huge.  One handed, fully 50% of the screen is out of your thumb's reach.  And the weight of it is killing my wrist.  And in a world where I need map on my phone while driving or coffee in my hand while texting, a phone this big is basically worthless. 
  • The touch screen is really inaccurate.  I'll tap the same icon 5-10 times before it's registered and acted upon.  Sometimes I'll tap an button in an app and SilentOS will pass the tap back to the home screen, opening a completely application
  • Google maps keeps failing to find my location, even though I've given it permission. 
  • Even though I blocked Facebook from accessing my location, it is able to access my location via Google Play Service.  So what's the point, Blackphone?  It's not granular permission if you're giving them a giant back door.
  • The volume/power combo for taking a screenshot is very hit or miss.
  • No built-in visual voicemail.  Gotta download your carrier's app.
  • Notifications take a TON of configuring.  Let me put it this way: new applications should not be able to display full notifications on a locked screen.  For example, Whatsapp or Facebook Messenger shouldn't default to publishing the entire text.  A private-by-design phone should at least only show the name of the contact, but preferably only show that a message exists.
  • The phone's usability is 5 years behind an iPhone.  Some examples:
    • My mom texted me a picture and I wanted to send it to my sister.  There's literally no way to copy/save a picture in BlackPhone's text app. 
    • Highlighting text is a real, real pain.  But copying it is impossible, because the copy button is at the very top the screen, 4 inches away from your thumb.
    • The triangle-circle-square buttons at the bottom of the screen are endless torture for me.  Apps like outlook have a set of buttons at the bottom of the screen and it's completely counter-intuitive to have two layers of buttons.  I accidentally reply to emails several times a day. 
    • To open the camera from a lock screen on an iPhone, you swipe upwards.  To do the same on the Blackphone you have to unlock the phone.  This is a big deal because I frequently want to record events transpiring around me, and I might miss it while unlocking the phone.
  • It takes forever to reboot.
  • It's noisy.  Why did I just get a notification that I took a screenshot?  I know I took a screenshot.  Why did the keyboard icon just appear in the upper right?  I know I'm using the keyboard. 
Some good things:
  • The display is great
  • Tethering works great
  • The wifi by GPS feature works great
  • I love the granular control "security center" where it works.  
  • Apps seem to be compatible and work just fine usually.
Google play services (as mentioned before) kills the whole point of the phone by handing control over: https://charlescarrollsociety.com/2016/02/03/silentcircle-blackphone2-is-not-secure-patriot-privacy-privacyproject-review-part-3-of-3/

I'm going to be asking Silent Circle if there's a new, smaller version coming out in the next couple months.  If not, I'll probably give this to some kid to use as a tablet.

Friday, May 6, 2016

Content Delivery Networks

I've been doing a bit of research into both Data Science and the hyperscalers and a few things have struck me.  One is that Google Fiber is incredibly strategic for Google Platform.

The ability to ensure QOS and cache by controlling the last mile of delivery is a huge advantage.  Everything AWS does is dependent on the telcos, because all of their wonderful technology is designed to deliver something (data, a website, a database) from AWS to somewhere, or from somewhere to AWS.  And that something almost always goes through Verizon, ATT, Comcast, Time Warner, etc.

So one of the most innovative, client focused, fast-paced tech giants is completely dependent on the most change resistant, oligopoly, entrenched companies in the US.  ATT and Verizon do some good business in the private-cloud enterprise space, but I've seen up close and personal that their company culture is bureaucratic as it comes.  And of course, there is cost involved: as all of us commercial users of ISPs know, the oligopoly always gets its money.

That's why Google Fiber is so forward thinking.  They're going to leapfrog AWS on this one, and if Google succeeds in laying a network quickly, in 15-20 years it could give Google Platform a killer competitive edge.  

Wednesday, March 16, 2016

SolidFire and ONTAP

I had a reseller ask last week "Now that NetApp bought SolidFire, are they going to kill all-flash FAS?"  My answer: not on your life. 

NetApp has sold tens of thousands of all-flash FAS (AFF) systems, which run CDOT, our flagship operating system.  It's a great product that enormous enterprises (and governments) are spending a billion dollars a year on: there's no way we'd back down from continuing to invest in R&D there.  

Besides that, SolidFire has a completely different architecture than AFF.  One way to understand it is that AFF's architecture starts with smaller building blocks.  Here's what I mean:

  1. AFF dedupes each volume individually: SolidFire dedupes the entire cluster.
  2. AFF protects each disk using RAID: SolidFire protects each node using two copies of everything.
  3. AFF puts QOS on each volume: SolidFire shows you whether your QOS promises exceed the cluster's ability.
  4. AFF deals with node failure by having a redundant partner take over: SolidFire deals with node failure by having ALL the other nodes pick up the slack.




These are different architectures, which solve different needs.   I thought this was a great overview of SolidFire as well:
http://www.virtualtothecore.com/en/solidfire-a-quality-storage/

Tuesday, February 23, 2016

Performance Archive Part II

More on performance archiving: it collects data at the highest granularity possible for each statistic, often 1 second.  The time range of each dataset is up to 6 hours long, and each node preserves its own set of this performance data. 

There is nothing like this in 7mode (rolling perf data collection) on-box.  You’d have to run perfstats. 

NetApp has tools to analyze the data, but they are not customer facing.    You provide the case number in the command line and it auto-uploads.


You can specify the exact time window you’re looking for:
cs001::> system node autosupport invoke-performance-archive -node cs001-pn01 -start-date "02/22/2016 8:00:00" -end-date "02/20/2016 14:00:00"


There is minimal impact on the netapp system of running this – it already runs in the background and keeps up to 28 days of data.