I'm a father, husband, and startup founder who thinks it's too difficult to produce video content. Right now, I help build Vidpresso, a way for TV stations to integrate social media posts directly into their broadcasts. I write here mostly about building interesting things, be they companies, projects, or otherwise.
Don't wanna be here? Send us removal request.
Text
Time makes fools of us all.
Apparently I only write personal blog posts once a year. Last year I published it in December, and I said some stuff I disagree with now. A lot.
Don't bother reading the old post till you've read this one, I'll block quote to fix myself from last year.
Product is not everything in a company.
I said this:
The product should be everything in a technology company. Not the marketing. Marketing is not the hard part of building a tech company… it’s building a product that people want.
In the book Traction: A Startup Guide to Getting Customers the authors say:
If you’re starting a company , chances are you can build a product. Almost every failed startup has a product. What failed startups don’t have are enough customers.
and Marc Andreesen says
The number one reason that we pass on entrepreneurs we’d otherwise like to back is their focusing on product to the exclusion of everything else.
Ouch. Yeah, I'm an idiot. I knew this before reading the traction book, but it's even more clear how wrong I was.
The reality is the hardest part of a company shifts depending on its age. It's all a journey, and there are different hard parts of a company depending on where you're at. In the earliest days, the most important thing to do is de-risk the hardest part of the venture. Flexport knows how to clear customs, so who cares if they do it with software or carrier pigeons behind the scenes? The product has to be good enough to use, and then it's marketing / finding people who need it that's the hard part.
I think my oversimplification might be a reaction to "business focused" founders who think it's ok to outsource the product. You can't outsource anything crucial to your business. That means software development and marketing for software companies. Maybe early on it'd be possible to outsource an MVP of a product, but it just seems like the founding team should have the dna to create the vision and product.
The Traction book says you should spend 50% marketing 50% development. I think that's probably accurate.1
I still think the best thing for a soul of a company is to focus on product and customer service at the earliest days, and work out the marketing stuff later, but oftetimes product first founders let the marketing slide for way too long.
Investors should do whatever they want
Moron Randall said:
On the investment side, investors who focus their efforts locally essentially are giving handouts to local companies. And that’s even worse than not getting any investment at all. It’s like saying “you’re good when compared to all the Utah business plans I’ve seen, but if we compare you to an NYC or Boulder startup, you’re not quite there.” Good investors, in my arguably ignorant view, should invest with a thesis, and then pattern match all investments to that thesis. And “Utah companies” is not a thesis.4 If you’re a serious investor, you realize the power law dynamics at work, especially in seed stage investing, where a local investor would have the best access. As a non-top-5 startup hub, Utah investors who are serious, ie the ones founders should aspire to raise money from, can’t afford to be exclusively locally focused. At all. If they are, it’s a red flag to me as an entrepreneur that they probably don’t have the same world view of startups as me.
Since then I've changed my tune. While I don't have any local investors, I've seen some really great companies get spurred from local investors. I still think the smart investors should probably not invest exclusively in one area (Silicon Valley included), and I still think local accelerators are a weird phenomena (more on that shortly), but investors should invest for whatever reasons they want. And any investor who's willing to take a bet on an entrepreneur, especially at the seed stage, should be applauded.
There are more reasons to invest than just to find the next bajillion dollar company.
In retrospect, I should have probably reached out to the local community more. I only reached out to two local investors, and only because I knew them beforehand. I feel like I probably missed out on meeting some great folks, just because I had seen people be burned before by noob investors.
What would I do today? I have some amazing investors. Really. Today I got 4 emails from my investors who really have been spectacularly helpful. But, I think there's a good chance with the mix of YC and local investors that I could have had the expertise of investing that YC provides, along with meeting local folks who could have a meaningful impact. I don't think if I had the option, however, I'd still opt for local investors exclusively. I'd do anything to let my company not die, though.
If I was an investor though, obviously I'd totally follow that philosophy.
I see some value in BoomStartup / local accelerators.
At the time I said
Programs like BoomStartup and other local-specific accelerators around the country are actually bad for companies generally. BoomStartup offers the same exact terms as Y Combinator ($20,000 in cash investment for 6% common stock) but I have a hard time believing a company would get anywhere close to the value out of the program, even completely ignoring the $80k YCVC note. So why apply? If you’re the best quality company, shouldn’t you be doing the best quality accelerator? And, as an investor, shouldn’t you be looking for the big hits to add to your portfolio?
I was TOTALLY wrong. I now don't think they're bad for companies generally. I had a friend go through BoomStartup and it might make the difference between the company sticking around / existing at all, and failing. And they have a really good shot at impacting the world.2
Had they not done BoomStartup, they might have been able to raise money. (I think it's probable they could have.) But this first exposure helped them. A lot, I think.
But, I also think some of my point is valid. I'm not sure the program particularly "accelerated" them, but it did provide some access to capital, and a forcing function of a demo day which exposed them to other investors / forced investors to seriously evaluate the opportunity in a timely fashion.
I still think if you're trying to create a really impactful company, and YC understands you3 then you should go there. The value is even better than last year, because [Sam / YC standardized the YC deal][yc_deal] at 6% for $120k.
I stand by my stance that BoomStartup's goal should be to attract world changing companies, and the way to do that is by being competitive with YC in attracting amazing companies.4
The other thing I keep re-learning is the old saying: "Time makes fools of us all."
Shout out to our amazing investor Diego Basch for recommending the book. The book also has a great framework for developers who might not have tried marketing before on how to suck less at it as quickly as possible. ↩︎
One of my coworkers found out about them randomly and thought they were amazing / uses them regularly. That's a pretty good sign, to me anyway. ↩︎
I was accepted by YC after writing this post btw. I hadn't even had an interview until the first week of January, so I had no idea that was happening. ↩︎
They could do this probably by offering a better deal than YC (2%?), and then doubling down on winners out of the program. That'd let them attract more quality companies, and then they could be the ones to facilitate financing rounds on the winners. It'd create a real signaling problem for the startups that don't do well though, so there'd be some real risk. I don't know anyone at BoomStartup, but I think they are not bad actors. They're trying, and my last post / i previously felt like they might be more sharkish than they probably are. ↩︎
0 notes
Text
The worst startup community cheerleader ever.
So I live in Utah... moved here a few years back. Initially I had no idea why we were actually moving here, but now that we're here it's clear. Most of my family (on both sides of my marriage) now lives in a drivable distance away, which is a totally new experience for us. It's something I find incredibly valuable, and the idea of just randomly deciding to be with family is worth a lot to me.
At the same time... I started a company called Vidpresso, which is a way for TV stations to use social media on-the-air. Our ambitions are much larger.
So I purposefully chose to live in the city I live in. I like it here, and I want to stay here.
Once, I worked at a Utah startup that was, frankly, embarrassing to look back on.1 Embarrassing because the product was essentially all talk, with mediawiki and php tacked on top of it. We never had a public launch. I didn't found that company, but I did work there for free, full-time, so it was a big part of my life.
That experience made me more of a cynic of most startups that I see locally. In fact, the concept of local "startup scenes" kind of bugs me now in general. To me, startup scene implies there's this group of people who all know each other, and they essentially congratulate each other into feeling successful... despite probably not actually having the measures of success (growth rate or revenue) that define a successful startup.
They go to entrepreneur meetings thrown by different city/state BDAs, and count that as "work time" because they're "networking." Who knows, maybe they'll meet a local investor who only invests in local companies, and that'll be the piece they're missing, and then they'll be huge!
Startups are not judged based on locality. In fact people targeting "local entrepreneurs" can often be more harmful than helpful.
I have no idea how Zoho is doing traction-wise, but based on the number of products and the improvement of their core products, they seem to be doing well. They now claim offices in SF, but they were founded in Chennai, Tamil Nadu, India. Zoho doesn't win if it has the best office software in Chennai, or in Tamil Nadu, or even in India, though that would be an extremely noteworthy accomplishment. They win because they are a credible competitor to Google Docs and even Salesforce to some extent.
I don't think there's a better geography that knows this than SF. While the good parts of the bay area are clear (Access to capital, quality talent pool, freaking awesome weather®) if you're the best / most talked about startup in SF and you don't have any traction (Color being the most popular example of this phenomena) you're a failure. And not just in skeptics' eyes, in general bay area culture. The bay area rewards successful founders, and success is narrowly defined as someone making something that people want and are willing to pay for.
Programs like BoomStartup and other local-specific accelerators around the country are actually bad for companies generally. BoomStartup offers the same exact terms as Y Combinator ($20,000 in cash investment for 6% common stock) but I have a hard time believing a company would get anywhere close to the value out of the program, even completely ignoring the $80k YCVC note. So why apply? If you're the best quality company, shouldn't you be doing the best quality accelerator? And, as an investor, shouldn't you be looking for the big hits to add to your portfolio?
In my view, I think BoomStartup would disagree with me. I bet they want to "stimulate the local economy," but I'd argue their approach actually wouldn't do that.
Small, 4 - 20 person companies are important, and definitely not a bad thing... but you know what's better for a local economy? Novell. WordPerfect. Those two right-time-right-place Utah county companies did more for Utah tech than any small tech company could have, because they united the tech community around local "giants." The companies had national recognition and customers, not local accolades. They've obviously since fallen from grace, but they both highlighted that big startups can come from anywhere.
By investing in companies who don't have the broad ambition to become big companies, you inadvertently seed the community with a false sense of hope. If BoomStartup wants to be really revolutionary, they should create a value proposition that's attractive to anyone in the world, not just Utah companies, and they should figure out a way to credibly compete with someone like Y Combinator for the best quality talent and companies.
People who are going to be successful at building lifestyle businesses (Rustin!) don't need events / BDAs / local accelerators to help them do it. It's inexpensive enough to start a technology company today that the talented folks can and should find a way without funding.2
And more to the point: A lot of people who shoot for the moon with big startups end up overestimating the market size of their product, and build a lifestyle business by default. So by encouraging them to think big, and shoot for something big, you end up getting the same effects as telling people to shoot small, but with the better incentive of increasing the odds of creating a giant.
Not every entrepreneur should feel like they have to build Google. But, as a community, we should aspire to and encourage each other to look up to the giants.
We do have great local giants growing up right now, like HireVue, Qualtrics, Instructure, Domo, etc. etc. And we even have baby companies with potential too3 but the validation for those companies didn't come from entrepreneurial speed pitch sessions. Or business plan competitions. Or from networking events. Or from press coverage.
They come from building something people want. That's it. No more, no less.
On the investment side, investors who focus their efforts locally essentially are giving handouts to local companies. And that's even worse than not getting any investment at all. It's like saying "you're good when compared to all the Utah business plans I've seen, but if we compare you to an NYC or Boulder startup, you're not quite there." Good investors, in my arguably ignorant view, should invest with a thesis, and then pattern match all investments to that thesis. And "Utah companies" is not a thesis.4 If you're a serious investor, you realize the power law dynamics at work, especially in seed stage investing, where a local investor would have the best access. As a non-top-5 startup hub, Utah investors who are serious, ie the ones founders should aspire to raise money from, can't afford to be exclusively locally focused. At all. If they are, it's a red flag to me as an entrepreneur that they probably don't have the same world view of startups as me.
If you find a local company you love, that's great, but it seems naive to think an investment portfolio is going to be successful by solely focusing on one geographic area, waiting for the next Facebook to happen.
And on the startup side, we need to create quality products first. The product should be everything in a technology company. Not the marketing. Marketing is not the hard part of building a tech company... it's building a product that people want. Everything else that isn't getting dollars in your pocket, building your product, or understanding your users is vanity work.5 Technology products are like restaurants: If you have an amazing product / food, it doesn't matter which rundown shopping center you're in / how bad you are at marketing... people will find you. It would take a critical mass of 1 person to get a start. If your product is so-so but your marketing is awesome, you'll see a really high churn rate... so your marketing almost becomes the product.6
Lastly, I think the place that the vanity entrepreneur culture rears its head most frequently is in so-called "networking events." Knowing who everyone is in a community is extremely important... so I'm not trying to denigrate efforts to unite communities. (Ogden now has a big sense of community solely because we have a place to go to unite.) However, the bar for a quality event is a place where people are getting together to learn and teach. Networking should be a happy side effect. People who want to genuinely learn and teach are the people who are doers, not talkers. Networking events, on the other hand, specialize in elevator pitches first, product / substance second.
Events with judging the top x companies, self congratulation or especially events solely devoted to "networking" do not help push things forward for the community, nor for the person attending. They help pump egos: Of the judge who's asked to judge, of the entrepreneur who's invited, of the organizer who throws it. And maybe there's value in ego, but I don't think so.
My general rule: Ignore events that have the word "entrepreneur" in them. That's as good of a sign as anything that an event is a vanity event.
Examples of events that are quality: Hack nights, where people get together to learn new technologies and show off what they've built. Learn to code sessions. Learn to run a business sessions. Learn to market sessions. User groups. The more of these, the better. The less meaningless competitions, awards ceremonies, and networking events, the better.
Hopefully it's clear the thesis of this essay: Quality begets quality. And quality is not a geographic trait.
I've argued previously in public it's a good idea to work at embarrassing companies. ↩︎
I'd wager they don't realize this themselves because they're not technologists at their core, so what's actually possible might elude them. ↩︎
The perennially unlaunched Grasswire, which inspired me to write this post, is included in things I think have a lot of potential. Launching fast is a totally different post, but I think Austen has what it takes (probably). If he could just figure out a way to get the product out. (Learn to code! Stop doing press hits till you have a v1!) ↩︎
There's some reasons why folks in SF can get away with it, primarily because they have a higher volume of quality startups to choose from. ↩︎
You can argue getting press for your yet-to-be-launched company is a really good idea because it validates your market without having built anything. And I'd agree with that, but it does mean that you actually have to be able to capitalize on said validation. And the press has to be something potential customers would read. ↩︎
I think that's why consumer packaged goods is so marketing driven. They've never really offered a ton of innovation to the people who buy their products, so they focus heavily on marketing and try to make that the product. "I buy this because I'm cool"-style alcohol marketing is the ultimate manifestation of marketing-as-product. ↩︎
1 note
·
View note
Text
Mixbit.
So this is interesting. It's a way to take clips and mash them up together. Definitely up my alley. I think it's introducing some of the concepts I'd been thinking about in a way that's accessible.
0 notes
Text
PostMessage protocol for video
*This isn't a fully formed thought yet, but I thought I'd try to explore some of it through an essay. Feel free to skip it. I had a dream about it and I need to write it down.
So if video really does turn into something completely dynamic, where each piece of video is really an iframe (or something) displayed on a page, we'll need a mechanism to allow the underlying video to talk to the parent window and vice versa.
Fortunately, we have this cool javascript feature called postMessage. postMessage lets cross-domain frames talk to each other safely and securely. It's a tightly controlled channel... the child frame doesn't really know much about the parent and vice versa, however they can pass simple messages between each other.
What if there was a protocol for linear content? That means anything that has a time-based start, middle, and end, could communicate with its parent iframe according to a protocol. It'd be loosely defined like RSS, but it could serve as a really useful way for, say, a YouTube video to outsource the responsibilities for titling / annotations to the parent frame. Imagine SportsCenter, which uses highlights from various locations. Currently, they record the highlights and then air them, with their own CGs on top, etc. Wouldn't it be cool if you could do the same thing, but have the metadata related to the broadcast be passed along separately, so things like the courtesy credit would be ensured to be accurate, and the parent frame would get back details about the video, related audio, related graphics, and could conditionally choose how best to air the content.
There's some obvious implications for how this would work. What would you do if KXXX swapped their video out for porn, or took it down completely, wouldn't that ruin SportsCenter?
Perhaps a trusted embed system could develop, where you'd get a key from a server that guarantees the 'parent' is allowed to play back said highlights. Perhaps you could whitelist / blacklist allowed outlets. That way, MLB could be the central repository of all content, and they could strike deals with whomever they wanted to permit use of specific chunks of broadcast.
Pieces of postMessage data, for sports, might include current time, players currently being shown in the clip, etc. For interviews, it might include a whole normal 'name super'. Maybe you even have 'quote' metadata like Vidpresso that could be put in an iFrame? Hmm.
Not to mention digital signage. Hm.
I'm not totally sure how to mitigate all these questions, but I'm starting to figure it out in my head. More coming.
0 notes
Link
It's commonplace now, but Netflix's freedom & responsibility [slide deck](http://www.slideshare.net/reed2001/culture-1798664) changed the way I, and a lot of other people, think about corporate culture. First Round's new HBR style blog has some highlights with Patty McCord, the author of said slides. Some highlights: >General pay talks are also contentious in one way or another, but McCord has a formula to guide her decision making: >>If an employee leaves, how much will it cost to replace them? >>If an employee says they are leaving, would you beg them to stay? >>What would people somewhere else pay them? >People panic easily over numbers, but McCord holds that the right people will stick with you, especially if you’re straight with them about the situation. How to find these people? “Ask them in the interview, what’s the riskiest thing they’ve ever done? What’s the scariest thing they’ve ever done? Ask them personally and you’ll get a better answer.” I read the whole thing. Great stuff.
0 notes
Text
My background, and where Vidpresso came from.
Careers are rarely a straight line. The good ones, like any quality art, come through a struggle that takes years. I'm finally on a path that feels like the right one, so let me take a few minutes and navel gaze. You might find something interesting in here, or you might think I'm grandstanding. Either way, I'm taking a few minutes to look back on my struggle.
Let's start in 2008. Ugh. That year.
I had left a really comfy job with little oversight to helped launch a tech news / reviews / database site. I was picked to be the leader of the site, and as the leader I was responsible for building the editorial parts from the ground up.
Where is that site today? Wiped from the face of the internet.
So let's just say I was really bad at that venture. Like really bad. Like it imploded likely singularly thanks to my lack of skill / personal awareness of my weaknesses.
To put it how I'd have said it at the time: That sucked.
I thought the 2008 venture was going to be it. I had worked my way out of TV news, where I discovered even though I was obsessed with producing video content, however I loathed covering local news. It was impossible to care less about the content of the newscast. But, I knew I cared a lot about technology content, and I was lucky enough to escape TV and work with some great technology publications in CNET and Engadget... mostly doing video production.
Somewhere along the line, I had the hubris that I could recreate one of the most respected technology brands, just by hard work and sweat, basically copying their structure. I didn't really have an original bent to what I was trying to do, nor had I done a lot of writing nor leading a group of writers, but I was excited about the topic area, and thought I could do anything.
Yeah. I was wrong.
I had a theory about our differentator. I thought comparison charts would be it. I thought everyone wanted to shop for gadgets that way. I probably should have realized that wasn't the case, since I had never looked at a comparison chart, but hey, retrospect.1 In the years since the lean startup movement has evolved, it's clear that had I come up with a simplistic chart comparing major phones, and not done it by coding lots of software, we could have come to that conclusion faster and less painfully.
Anyway, bad direction, bad leadership, bad at following up on tasks, that venture basically was destined to die with me at the helm. Oh, and remind me what the hell that had to do with video again? My strength?
So basically I was fired. I quit, but realistically the venture was doomed so had I not quit, I would have been fired, and everyone else was laid off eventually.
After what seemed like the biggest professional failure I'd ever had, I basically had a month or two of mourning. My wife tells me I was pretty depressed.
I started watching a lot of TV. Specifically ESPN. I'm not particularly a sports fan, but I thought, and still think, they're some of the most innovative video producers in the world. I only mildly like sports, but I love ESPN2.
Lightning bolt.
Would it be possible for me to create an ESPN quality show out of my living room? Maybe an Around the Horn style show for technology?
I started experimenting. I had some of my NYC media friends3 do a test, where I rigged three extra computers to share a screen. I connected each of them into an audio mixer, and I routed their audio so that none of them could hear themselves, but they could hear each other.
That evolved in to TechVi. TechVi was a daily show that I produced solo for the first year or so, where I'd have different technology journalist guests come on the show, and talk about one topic of the day. I kept it under 10 minutes, because YouTube had a strict upload limit of 10 minutes back then.
Eventually, I met Iyaz Akhtar, and convinced him to do TechVi with me as my cofounder. We didn't know what we were doing, but it was fun. (Iyaz has since moved onto amazing things at twit.)
The show was ahead of its time for sure, and production quality that was pretty good, but still not exactly a source people turned to for technology news. Also I didn't spend enough time on the content. I found myself messing more around with coding the site than preparing the show, so I wasn't extremely happy with how the content of the show came out.
By coding on TechVi, I learned that coding is something anyone could do. I created a hacked-together site that would poll the video player for its timecode. When the player would hit a certain timecode, the player would shrink, and the background would change out for an iframe of a website, effectively allowing me to dynamically insert b-roll into the video. Also, since I made it so the site was a big single-page app, the video player would continue to play even when you clicked around on links.
Using websites / iframes as b-roll was pretty unique. It meant that the video, while crucial to the experience, didn't have to be the entire experience on its own.
I realized: Shouldn't video be like that? Video right now is this static thing that cobbles together clips and stuff, and then once it's rendered, it's one thing. Stuck that way. Forever. Shouldn't it just stay clips forever? Shouldn't you be able to update a video the same way you update a blog post? Shouldn't you be able to edit out a word, or swap a video clip, after the video has been published? What if video wan't just this static thing, what would be possible?
That's where the path I'm on now starts.4
Vidpresso is an expression of the answer of those questions. It's a way for TV producers to start wading in the waters of dynamic video.5
For what it's worth, John Falcone of CNET actually gave me a great idea that I should have done. He said people don't really want to compare items, they just want to know the best. He said a page that just did extensive research and listed the best would win. So all the scores and rubricks aren't really the tool people use. People just want to know what the best thing is. That, incidentally, is what (The Wirecutter)[http://thewirecutter.com] is, and they're killing it. I should haven listened. ↩︎
I used to work for ESPN earlier in my career as a freelancer. It was heaven, working in a fast-paced, innovative video production truck. ↩︎
Kyle Monson, who was at PC Mag at the time, Maggie Reardon of CNET, and Nicholas Carlson of Business Insider. You guys helped me out hugely. Thanks! ↩︎
For some reason, it doesn't feel like I can contextualize what happened after that yet. Justin.TV and my experiences with Y Combinator are hugely formative for my company, but I don't think I can effectively know what impact they've had yet, so those will have to wait. ↩︎
Is that what I'm going to call this concept? Dynamic video? I hadn't really considered what to call it before, but I think that's going to be it. Hey, look. A new part of the story unfolded while navel gazing. Guess this post wasn't useless after all. ↩︎
0 notes
Text
More Values vs Goals evidence
I didn't invent this stuff, but I like spotting a trend. Nadia, a startup founder who recently was funded by the illustrious Dave McClure and 500 startups, contrasts her experience living in San Francisco on a budget under $20k annually. Last year, she lived on an extremely strict budget (aka goal) vs this year, enjoying her life by living thoughtfully with two specific goals.
Do I really need this?
By purchasing this now, what can’t I purchase later?
Her formula?
It’s not about managing your dollars, it’s about managing your stress. If you get stressed out about money, you lash out by spending erratically.
This matches my experience pretty much 1:1.
She had some great success, including living in a sweet apartment in SF ($1k / month) and being able to travel to Belize. More on her blog, and check out my original goals vs values post if you haven't yet seen it.
(hat tip to Jason Shen, someone who probably has a great opinion on the goals vs values debate that I'd love to read. Hint hint.)
0 notes
Text
Internet Video Distribution is Stagnant
Internet video distribution hasn't dramatically changed in quite a while. When Adobe added H.264 support in Flash1, video on the web went from grainy, blocky, uglyness to a quality that people expected from regular TV.
That was the last major technical innovation of internet video distribution that's made it past the science experiment phase.2 Before 2007 / 2008, we had some pretty crucial breakthroughs. Podcasting, for one, was HUGE. Flash video embedding, HUGE. YouTube? Huge for discoverability of content.
But since then, internet video distribution has sort of stopped with real innovation. You might say, "But what about the html5 video tag?" Sure. The video tag lets some cooler things happen, but realistically, its primary job is to replace Flash. That's about it. It lays a solid foundation for internet video to grow, but currently it hasn't shaken up our experience much.
On the creation side, we've seem some great innovations that are huge leaps of progress. Most notably, the RED camera served as an impetus for all camera manufacturers to create cheaper, better sensors in all of their cameras. Now we've got DSLRs with interchangable, fantastic glass, killer sensors, and finally, video can actually compete visually with film. It's clear that soon, the tools to take light and convert it into data will soon be inexpensive enough that anyone can have access to them, regardless of price.
Crucially though, the distribution mechanisms for video are still caught in two different worlds. Professional video producers deride YouTubers as 'folks in their bedroom with a camera,' because often times the quality doesn't match. However, that argument is becoming less and less valid.3 But the mechanism for distribution is singular: YouTube. Broadcast is still where most people watch TV, and it's unlikely for that to change in the immediate term.
So what are some agents that could agitate that change and help it happen faster?
Well, H.265 / a new crop of codecs seem interesting. They could allow for more video consumption / more interesting applications without rapid changes in bandwidth. Oh also, bandwidth could get faster too. :)
On the consumer side of things, we see the Smart TV movement which is happening right now, but often times the platforms which Smart TV manufacturers are using aren't platforms which are accessable enough to facilitate independent development... for now the independents have to rely on YouTube to present their content best.4 And given their draconian agreements, it's unlikely popular YouTube stars could make a go at signing with a Cable company, or other traditional distributor, since most of the power of the independent is capturing a diverse audience without being at the mercy of geography, or showtime.
So what is the future of TV distribution going to look like for producers?
Obviously I don't know, but I feel like YouTubers would be better to adopt the Wordpress model, vs the Tumblr model. Let me be explain.
Say you've got an idea for something funny, and you think it could be a show. You don't know how to program, and you don't really want to learn, so you upload it to YouTube. It becomes a repeatable viral success, and you're reliant on YouTube's entire platform for your continued success.
Right now, if you get disenfranchised with YouTube, your option is to... basically do nothing, because you need the discoverability of YouTube, and the hosting infrastructure to pull it off correctly. To develop custom hosting of videos, without the support of a community, seems both cost prohibative, and ill-advised except for the most savvy of video producers.
What if instead, as you outgrew the walled garden, you could move to your own hosting provider if you wanted... or outsource the work (paid) to another provider who wouldn't take a cent from your ad revenues, but would provide you with all the necessary infrastructure to distribute video on your terms.
That, to me is the opportunity. If there was an ecosystem of open-source software, like Wordpress, that compatibly existed and allowed a person to easily create, host and distribute their own content, you'd have a whole new industry formed around it. Larger, more established video creators wouldn't have to feel like they're iTunes-ing themselves into oblivion, as sometimes the music industry laments, and with a more open platform / standard, other folks could come up with more interesting applications / ways to present content that haven't yet been tried.
It may seem weird, but I remember the day they announced it, since I was doing video for CNET, and we quickly realized that "OMG OUR VIDEOS DON'T HAVE TO LOOK LIKE CRAP ANYMORE!" ↩︎
My favorite current science experiment is seriously.js. It's a code-based node-based compositor (like shake or After Effects) built for HTML5 videos entirely in HTML. It's really impressive. Popcornjs is kind of interesting, but their approach seems backward. They're trying fun experiments without anyone using them in the real-world on a massive scale. Science project. ↩︎
Have you seen thepianoguys or Lindsay Stirling? The quality is fantastic. ↩︎
Which is fine for the short term, but a YouTube monopoly on content seems unlikely to be sustainable in the long-term. Content creators are bad at selling / monetizing / distributing their content today, and YouTube serves as a useful intermediary, but as a creator grows larger, they shouldn't need to cede drastic control to a third-party entity to exist. ↩︎
0 notes
Text
The end of my self-imposed blogging exile
I started reading some really awesome essays by people like Paul Graham, and it made me want to be a great essayist.
But I realized something. It prevented me from putting mostly anything out there, because I wanted to revise and rework my essays for at least 4-6 readings, which takes several hours of time.
Very few people can spend several hours writing essays.1
So rather than continue to not produce, I'm going to switch my writing style from waterfall to agile. Continuous deployment of essays, even if they're bad.
I might even go back and rework essays after they're published. So you might see an essay in a very different form the next time you read it.
I'm uncertain if Tumblr is the platform to pull this off correctly, but I'm going to stick around and see. At least it natively supports markdown.
I'm not even sure anyone will read, and that's ok. For me it's about processing ideas correctly, and giving them a place to live, even if I can't always execute them to their fullest fruition.
Maybe if you sold a startup for millions, you qualify as being able to write essays, or answer questions in long form on Quora. ↩︎
0 notes
Text
Goals vs Values update
So I posted that Goals vs Values post a few weeks ago, and I wanted to give an update. It's working amazingly.
After I stopped setting goals, the things I started to do and have continued to do include:
7-minute workout avg 3x per week (failing this week though.)
Running 3x per week or more (consistently!)
Reading my scriptures daily. (20 day streak!)
I'm using Lift to track everything. And while I haven't set a goal to do these things on some sort of rigid schedule, I did lay out the things I want to do on a regular basis, and I've been doing them.
One place where I feel like I've fallen down is on not sacrificing home time for work time. I've had a busy few weeks, and been making a lot of progress, which has meant I've been sacrificing nights to work. Yesterday, Traci came home late, and I basically didn't do anything but work after she got home. Need to improve there.
I realize posts like this aren't as insightful as the essays I strive to write, but I think they are useful because it's proof of performance. The values thing works.
1 note
·
View note
Text
Goals vs values
So I used to be very goal oriented. I had a goal to get my associates degree done before I finished High School. I had a goal to get a CCNA. I had a goal to become a technology journalist.
But then somewhere along the road, I decided that goals are kind of bunk. Every time I achieved a goal, I thought it would fill my life with meaning, and I'd have a much better life afterward. Oddly, that never happened. I'd hit a goal, and the things that filled my life with meaning were never related to the goal itself, but instead related to the run up to the goal.
So I'm done setting specific numeric "goals" per se. The downside of goals? This zen habits post outlines it better than I could. Basically they don't give you a ton of upside, but give you a ton of downside, in the form of self doubt.1
Now, I've been trying to live my life according to a bunch of principles. Basically I want the following:
To be with my family for as long as possible.
To feel fulfilled in my work.
And that's about it. Those two principles lead to sub principles.
Don't sacrifice family time for work.
Be the primary caregiver more often than needed.
Make enough money so I don't have to sacrifice family time for work.
Try to be as healthy as possible.
and..
Build a business where any employee can have a meaningful impact on any part of the business at all times
Help everyone create broadcast quality video without a broadcast budget.
That's about it. Originally, when we started Vidpresso, I had set weird growth targets and goals that didn't have any grounding in reality. And, I've been disappointed by not growing as fast as we could, and frankly, I feel really lonely sometimes as a founder. However, I've begun to adopt the "go with the flow" mindset for Vidpresso, and it's paying some dividends.
For instance, we originally moved to Oregon to live here for 3 months and then move back to Utah. We ended up staying 6 because we really liked being around our family up here. A lot. But also, I didn't hit my original goal of making enough $$$ to live in Utah without requiring my wife to work f/t.
I was a disappointed that we didn't hit my goal. But I decided that it didn't matter that we didn't hit it, because we were happier being around our family for an extra 3 months.
Vidpresso, believe it or not, has doubled revenue every quarter since launch. That's something to be proud of, and sometimes I miss that fact when we're not hiring 30 employees or whatever i dream up.
But now, we're able to go back to Utah in July with the money we need to live, and we're really excited about it.
A second example is health: I strive to be healthy, but some days I strive less hard than others. Lately I've been on a running / 7-minute workout kick, so I'm trying to keep that going for as long as I can. But I haven't set a specific weight-loss goal. Instead, I'm going to track my progress and try to trend downward long-term, instead of hitting the 20+ pound goal, and then being "done" like I did before.
Ambition is required, goals aren't. I have the ambition / drive / wherewithall / gumption to make Vidpresso be as big as it needs to be to fulfill its mission2, but I don't want to set a point where we'll have "made it." This is an adventure, not some sort of planned trip from a to b.
I'm not sure how to reconcile this with business yet. I mean I'm watching my revenue graph go up and to the right, but should I be setting more explicit goals? We have analytics, we track our conversions, and we're trying to improve them. We track retention and try to improve it. But maybe specific goals are silly anyway? Like if you optimize one metric at the expense of other metrics, who cares? I have no idea what to do. ↩︎
Helping anyone create broadcast quality video without a broadcast budget ↩︎
3 notes
·
View notes
Text
The new balance problem
Much ink has been spilt on the concept of work / life balance. I think most people just figure it out as they go... and I think I've finally got that figured out.1
So now, I have a new balance problem. I'm not sure what to call it, but let's start by calling it balancing worry with excitement.
You see, startups are a fickle beast. They're very up and very down, often times within the same week, if not day.
Founders get on top of the world when people externally validate their existence. Jessica said it best last year at startup school.
What you don't realize until you start a startup is how much external validation you've gotten for the conservative choices you've made in the past. You go to college and everyone says, "Great!" Then you graduate get a job at Google and everyone says, "Great!"
What do you think people say when you quit your job to start a company to rent out airbeds?
When you get any flicker of external validation, you feel on top of the world.
A sample:
They wrote about me in TechCrunch?! Yay!
Someone called and wants to invest even though I don't want to take any investors? Double yay!
I signed a client who people have heard of?! Triple and Quadruple yay!
External validation events, however, are completely temporary phenomena, and typically sparse. They give way to two different downers: The temporary, and the ever present.
Temporary:
Lose a key client, perhaps the one people had previously heard of.
Server downtime
Twitter API changes
Cofounder disputes[^3]
The temporary ones are sort of the anti-dopamine... they aren't too bad, but if you're already feeling poorly, they're a further drag on an already burdened soul.
The bad guys? The ever presents. These guys are there and never leave... gnawing on your soul, tearing at your startup will power.
The ever presents, for an early stage company:
Current customer list compared to ambitions2.
Lack of fulfillment of end vision.
To pivot, or not to pivot.
Health insurance, or the lack thereof.
Worries about life obligations one may or may not be meeting
Money coming in vs going out.
Fear of failure / letting others down
Competition (an overrated fear, in my view)
Temporary dopamine injections don't help with these worry sources. These guys seem to have one common cure: Empathy.
There seems to be something to knowing you're not the only person going through these issues. Hearing other people's stories that feel analogous to your own are extremely cathartic and encourage a return to the center, from the extremes.
I think the best way to cure them might be a program like YC. With 20-50 other companies going through similar problems, you're bound to get a dollop of empathy every Tuesday during dinner.
For the majority of us who aren't in SV's most prestigious program, there are other options. Tonight, I had a good time balancing it out. As I was down, I had a phone call with one of my cofounders... something I hadn't done since moving to Portland. It went really well, mainly because we just kinda talked about random crap. Yeah, I need that. This working from home isolation thing is kinda killing me.3
Next, I started watching these videos from a PandoMonthly event which I think just happened. They were about Drew from Dropbox, and his experiences with YC and startups. He had a hard time finding a cofounder. PG told him he had to find a cofounder. All experiences I felt like I could empathize with.
Hm. Empathy is the antidote. Go figure.
My first boss told me I had no work/life balance because I worked 80 hour weeks doing 3 different jobs at a TV station. But when you're 21 with no interest in dating, that was actually a balance. - A few years later, my sister, with whom I was living, gave me crap because I worked my regular job, then came home and worked my new startup job, and didn't hang out with any friends. So what? I ended up getting married by the end of that year after meeting the love of my life, on accident. Trying hard to date is over rated. (For me, anyway.) ↩︎
Patience, right? That's all it takes? Ugh. ↩︎
The plan is weekly google hangouts now. [^3}: Surprisingly, a LOT of the YC companies I had the fortune of meeting split up because of cofounder drama. Was shocked. I guess if you're not a good fit, it's not really temporary. ↩︎
0 notes
Text
Video in a vacuum
[Fred Wilson][1] launched [fredwilson.tv][2], a cool new experiment by the guys over at [shelby.tv][3]. It's an experiment in lengthening the duration of video view sessions. I'm pretty excited by the promise it holds, and the kinds of data they're gathering with the experiment, so this isn't trashing on them, to be clear. However, I feel like their service, and services like theirs, fundamentally ignore a really difficult fact: Every video producer creates their content as if it were being consumed in a vacuum.[^4] The typical structure for an online video follows a few different producing patterns. One is the amateur, where basically there are no edits, and the video is excessively long. Someone, typically the distributor / reblogger / tweeter of the content, will say "watch at 0:37!" This convinces all future viewers to try, using a ridiculously hard to hit measure, to go to 0:37. The second is the TV pro. The TV pro knows what it's like to create content for traditional broadcast, so they follow normal broadcast norms like a heavy handed introduction, or a :30 intro.[^5] :30 intros are dying on broadcast for the same reason they're dying online: THEY'RE LARGELY UNNECESSARY. In an age of program guides, the little square already tells you what the program is called before you click on it. And sometimes, they'll even tell you specifically what episode you're going to watch before you click. Online, you're being introduced to content in text before you ever get to the video. That means when you click play, thanks to some text somewhere, people should already know what your video is about. The third is being invented, mostly by YouTube-rs, and I'd call it the YouTube Pro. [Fire Wallet][4] is my current favorite example. They start with some sort of quick, real content tease, which draws you in. Then, the rest of it is (presumably) inverted pyramid clips which draw the viewer along and keep them watching. The key feature, I think, between TV Pros and YouTube pros is the lack of pretense. There's not a 'this is how TV is made' feeling with pro YouTube folk. One of my fav places to check out a linear version of web video is this little experiment called [upl8.tv][5]. If you hit spacebar, it takes you to the next video. It, however, is kind of the opposite of the metadata trend I outlined above. It's more of a blind 'punch you in the face with awesome videos' approach. I'm happy the Shelby folks are trying new things. Experiments are fun, the result isn't perfection yet, but hopefully they'll get there. [1]: http://avc.com [2]: http://fredwilson.tv/ [3]: http://shelby.tv/ [4]: http://www.youtube.com/watch?v=8X5wVFF3aqc [5]: http://upl8.tv/ [^4]: And every video site, for that matter. Yesterday, when trying to watch Project Runway on Lifetime.com, I probably watched the same commercial at least 7x when I flipped between segments a couple times. It's a problem that's not just our problem as producers. Prerolls on every video exacerbate this problem. YouTube is solving it most elegantly, by their sheer volume, and sometimes allowing users to not click through a video. I'm sure they have some metric that's like rev/user/session which they try to optimize. [^5]: "Hi, I'm Randall Bennett and you're watching this show that someone already probably introduced to you in text somewhere else. And who I am is important enough that it's the first thing I tell you."
0 notes
Text
Quick thoughts on RIM... I mean BlackBerry
I played with the phone during December and I actually said to myself, "I can't believe this is a BlackBerry!" I was very impressed. Their initial goal is to just beat Windows Phone, which seems like an ok 'shoot for 3rd place' goal. And given Apple didn't just release a phone out of nowhere... (it's unlikely they'd be given any credence without the iPod) all BlackBerry shareholders can hope for is a long runway, something Palm already failed at. ([coverage](http://live.theverge.com/blackberry-10-event-live-blog/)) [I originally commented on David Chartier's Facebook post, but then realized this was long enough to essentially be a post.]
2 notes
·
View notes
Text
Bootstrapping: Forced patience.
[Vidpresso][1] is a bunch of experiments wrapped together. Primarily, we're an experiment in video production, trying to see if TV stations both want to get social media on-air, and if they're willing to do more with less money. (Hint: they really like spending less money.) To get started, our company had two real options: Raise money and take on investors to help the founders focus full-time while feeding their families, or [bootstrap][10]. We've selected the unsexy and under-covered method of bootstrapping. We have a bunch of other potentially experimental avenues to go down, but it's unclear which path leads us to world-changing-huge-growth-money-making-ville. And while we could totally take a sweet seed round with $500k - $1mm and start the process in earnest, I actually think we'll have less (different?) pressure by instead bootstrapping the company. The downsides: That means we only get to be cashflow positive. Our investment is either cutting personal expenses, or forgoing salary. There are no other options. The upsides: We're moving forward slowly, building something interesting that it seems like a lot of stations want, however at a pace that varies from 'glacial' to 'too fast to handle'. ---------- We were chatting tonight, like we do every night at 10pm "team time", and I articulated some angst I was having. Specifically, it feels like a lot of times, we have so much to do, that rather than be a team and work as one, we tend to work as little teams unto ourselves. Matt builds some kickass design, while Justin builds some amazing backend things, while I screw around in JavaScript and beg people for money on the phone. In my mind, an optimal scenario would be a team of people working on one part of the product, all in tandem, which means they can throw ideas around, code review, rearchitect, and you get this golden unit of work.[^8] Our scenario is a vast departure from that dream. I'm the one who's been able, through total dumb luck, to work on the product more than my cofounders in terms of total time.[^2] This luck has enabled me to build different things, but it also burdens me into being the one to handle the majority of the accounting, incorporation, taxes, marketing, sales, etc. etc. etc. And these are things I don't like to do. So, in my despair, I thought of begging my cofounders for sales support. I wasn't totally sure what they could do to help, but maybe they could even do lead gen / write emails to people / identify potential targets / write blog posts, or something. The problem? They have a maximum of 1-3 hours a night, with 5-10 hours on weekends. That means they get to focus on basically one thing per week. Period. So that support I desperately crave? It's pretty much impossible, because it would halt progress on everything else we need to get done. The short list of things that need to get done: Marketing outreach, trade show preparation, documentation for onboarding of new clients, designing default looks for said onboarding. Etc. Etc. Etc. ---- I think a lot of people go into bootstrapping thinking it's the best way to build a business (tm) since it forces you to focus on revenue first, and I don't actually dispute that. We've never had to spend a penny of our personal money on the business, we're in complete control of its destiny, and we still have all the equity.[^3] But what we didn't realize in choosing this path was you're choosing to learn patience. You'll want to move quicker, inevitably, and you just can't. You get to keep spinning a bunch of plates in the air, and hope you can fix all of them without them falling. You have no choice but to be patient because you can't ease the pain by applying the ointment of cash. So it's hard, but if it gets too hard, you can just raise money, right? I'm not so sure. There are two ways to raise money: Raise on the dream, or raise on performance. Raising on the dream requires either connections, some insane domain knowledge / insight everyone else is missing, or a track record. More often than not, it's a combination of all three.[^7] With bootstrapping, here's the reality: You have money coming in, You have some idea of your sales cycle, and theoretically you know your target market's total size, and now everyone will judge you based on that. You're no longer a bundle of variables to plot in a magic formula; your equation is filling in letter by letter, month by month. And even if you raised money on the dream, investors aren't in the business of funding irrational risk. Those [black swans][6] make all the returns for investors who understand the game. And, so the story goes, those black swans show impressive growth, and show it relatively quickly.[^4] With investment, you've got 18 - 24 months to show rapid growth... but probably even less. If you're hitting the milestones and the stars are aligned, you'll be fine. If you're not growing dramatically, and especially if you're not profitable, you end up getting HR acquired / your startup explodes / you get [series A crunched][8]. Most of the YC startups I was able to get to know are run by highly capable people who I highly respect. And YC's philosophy is to get highly talented people in a room, have them build cool things, and see what happens. But now, a lot of those startups are dead. A shockingly high number of them are gone after one or two years. For me, with my vision, I feel like I can't do that. I don't want to do that. I want to go to YC / Silicon Valley-style investors after I have a real business with actual growth, paying our salaries, growing naturally. I want to hedge my bets, because in my mind, a stable salary / happy wife / reasonable time commitment at work are the priorities now... not growth at all costs.[^5] I was talking to my buddy Ray, who runs the awesome [seo software company][11] Ginzametrics (see what I did there?). He said that not everyone invests the way YC / the black swan farmer / hunters do. Rationally or not, there are some investors out there who really want to just find something that's interesting and works, and could spin off a $10mm / yr business that gets sold for 5x - 6x rev. I guess what [Dave McClure][12] is doing with [500 Startups][13] aligns better with that model. They're looking for the 'grand slam / home run' too, but are willing to make lots of 'singles / doubles' off of companies like ours on the way through. So I guess I'm not really sure what to do at this point. My time horizon for my larger vision is probably about 20 years to accomplish [everything I want out of video][14]. So I'm not in a hurry to get there as quickly as I can. I guess we'll just have to keep making sales and see what happens later. [1]: http://vidpresso.com [6]: http://www.paulgraham.com/swan.html [10]: http://en.wikipedia.org/wiki/Bootstrapping [11]: http://www.ginzametrics.com [12]: http://500hats.com/ [13]: http://500.co [14]: http://www.youtube.com/watch?v=B5DIcnpbNWU [^2]: The long and short: I haven't risked anything more than they have, but have somehow managed to piece together an amazing amount of time to devote to the project. They've been just as committed as me, but just not as lucky. Basically I've been able to devote probably an average of > 1 full day a week on Vidpresso projects for the last year, and now the number is going up to > 2-3. [^3]: OK, maybe like $500, max, on heroku bills before we had real clients. But we basically got our first client two days after we launched, and they paid for a year up front, so we haven't really had any time where we were totally broke. [^4]: Facebook's main resource constraint in the early days was how many servers they could afford. That artificial constraint, which doesn't exist today in the same way with services like EC2, artificially kept their growth rate down. [^5]: This is a relatively recent occurrence. Happened in July when I realized I cared about my wife / kid more than my company / career. (A new occurrence for me.) [^7]: That is why Y Combinator is so insane. For companies who have a huge potential for growth in a relatively short amount of time, YC helps companies shortcut so much red tape. They instantly get credible connections to the worlds' best investors. They help solidify a founding team's story. They help plot the growth graph to go for. [^8]: Substitute marketing / sales for product with appropriate sales activities, and it's the same thing.
1 note
·
View note
Text
Algorithm publishing
Why hasn't publishing entered the digital age? When I say that, I don't mean it in some esoteric, pejorative way, but in a more literal sense. Why is it that when I visit [The Verge][1], my current favorite tech destination, that the stories are all the same with every refresh? Despite that site, and many other new sites, being just absolutely gorgeous, they're still plauged with this notion that a human editor should decide the most important stories for everyone, and that their discretion is the most important factor in deciding homepage order. What if, instead, news sites took a page from Facebook. When I go to Facebook, it's trying to find the most relevant stories to me. What if an editor had to take their gut instinct and quantify it into a proper score? The score could be based on: * Timeliness * Timelessness * Industry Importance * Company Importance * Interestingness * Click-through rate * Count of times presented content * Placement of prior viewings And I'm certain the folks who program the sites already could determine a litany of other related important scores that'd help affect the placement of the story. The idea being: A user could, logged-in-or-not, get exposed to a plethora of headlines / pictures that could entice them to click. When they come to the page, a feed is generated[^2] which takes into account a story's score. The highest scored items get a more prominent placement than lower-scored items. The administrative burden that this scoring process would take on should definitely be accounted for. It'd mean that each story would need a trustworthy score, solid picture for the homepage, etc. I don't think this is something that could be taken on lightly, but once implemented, it'd make for more meaningful stories anyway. Editors should be able to preview what the site looks like for users who've never visited before, or perhaps have cookies disabled, but that should be simplistic. If the advertisers spending cash on their site can target their ads properly, why can't the publishers use similar technology to better serve their audience? [1]: http://www.theverge.com [^2]: I realize this is a huge scaling issue, but I think the cost is definitely offset by user retention / satisfaction. Things like Node.JS help, because you could have a job queue run by Node which handles building Redis lists for each user. Not to mention you could build Redis rules to help with the score thing. You could update timeliness scores every 10 minutes in bulk, or when a new item is published, and the retention / frequency scores could be updated after a page is rendered in a fire-and-forget queue.
0 notes
Text
Commit to Github, automatically deploy to Heroku (or your own server!)
TL;DR: Go clone this and set up the configuration variables and get up and going with your own ghetto CI in about 5 minutes.
I saw Zach Holman's talk on continuous deployment / automating everything, and it inspired me to do something I had been itching to do for a while... specifically eliminate one step of the deploy process.
For most developers, their source control is different from the servers running the code. Normally, a developer will check code in to a place like github, then push the code to her/his server through rsync scripts, or perhaps through git itself when pushing to Heroku or DotCloud, for instance.
Why have two steps? And why not have automated things happen to said code once its ready? Maybe checking for errors through tests, for instance?
Good idea, continuous integrator. We're using Hubot to pull this off. We have a persistent Google Talk chatroom called partychat which we use to talk as a team. We added Hubot a while ago for general hilarity, and so we could know when critical things happen on the site.1
The process
Set up Hubot
Configure Hubot to work with Github webhook
Generate SSH keys / add them to Hubot securely
Set up pull/push script (maybe add testing?)
Rejoice at how awesome you are.
Set up Hubot
I won't go over how to set up Hubot because there are better places to go for that. I will say it's really easy if you've ever set up a Node.JS app. Get Hubot so it's talking to the web, and if you have a persistent chat client, get it working with that so you can talk to Hubot directly in chat, and more importantly, it can tell you what it's doing.
Configure Hubot to work with Github
Hubot scripts live in the gasp scripts directory. Throw one in there called github.coffee or whatever you want to call it. Make sure you're writing it in CoffeeScript. You could also use our example script too, if you're so inclined.
Our example script does a few things. First, it sets up a route for the external world to hit. We chose /github but you could pick whatever you wanted. We'll take this webhook URL, and enter it in Github as a post-commit webhook.
Then, once you've got that going, you can test your webhook, and it'll send a payload of your last commit to master. You can use the tool Github recommends to easily inspect the result of the webhook POST.
You'll notice that Github sends a payload variable with a JSON string inside of it. So in order to use that JSON string, we parse it into a real object.
Then, we check for which branch the commit applies by checking the ref section of the payload. People who know more about git than me can explain why that would be different than refs/heads/#{branchname}, but for our purposes that's what we expect.
So then we check for the master branch, we'll notify the room that we're ready to start processing, and we'll start a shell script which checks out code and sends it to production.2 The same thing happens with develop sending to staging, but the script for doing that is a little different.
Setting up SSH keys
Generate a key with ssh-keygen. No passphrase. Nuff said.
Now you need to store the key somewhere. Since we're on Heroku, I'm storing the key as an environment variable. I figure if it's secure enough for DB strings, it's secure enough for my SSH key.
heroku config:add PRIV="[paste your key here]"
Note that the double quotes will keep your linebreaks intact, which is crucial.
Set up scripts for push / pull
To actually use the key, I went through a plethora of different options, but since we're deploying to Heroku and essentially our servers are ephemeral, I decided to echo the environment variable to the main ~/.ssh/id_rsa file. If you have other keys and want to specify an identity file, you might try GIT_SSH, which has some helpful [stack overflow questions] [13] to get you on the right track. You also might be able to use ssh-agent.
As for our actual bash script, it's really simple.
Set up SSH by copying the key to the location specified. When you're echoing out the key, be certain to use echo "$PRIV" instead of just echo $PRIV. That'll keep your line break formatting intact. Also, you probably want to turn off StrictHostKeyChecking for github and heroku, which you could add to ssh config, etc.
Clone your repo to a temp directory.
Add your heroku / other git URL and push, or push using rsync or whatever.
Clean up the files you created.
Rejoice.
Now you're set. You could probably add testing into the mix, and if you're needing ruby or something you could add a custom buildpack which would be able to perform the tests for you.
For instance... we actually know whenever a credit card gets charged. We use [Stripe][http://stripe.com] for our credit card processing, and then hook up their webhook interface to Hubot. So we know whenever money is coming in. We also plan to make a financial dashboard, and have Hubot be our central point of integration with [Xero][http://xero.com], our accounting software. We also integrated Twilio, so we know whenever someone calls our interest number. ↩︎
I realize you could probably write all of the scripty things in Node / CoffeeScript, which would be a really good idea. I'm lazy so I did a bash script for the first pass. It has some limitations, like by using exec I only get a dump of stdout when the process exits, which is totally lame. ↩︎
1 note
·
View note