Docker is great for local development. Spin up a container, mount some code to it, hack away. It’s a natural step up to docker-compose to mix additional services into your app. The docker-compose.yml format is both powerful and approachable. Now you’ve got a nascent project or proof of concept doing something interesting on your laptop.
But now you want to show someone else. Who might not have the patience to install docker, pull your repo, run your yml, etc.. You need hosting.
Hyper.sh is a smart step up that gets you a hosted instance quickly. If you’ve already gotten to some fluency with docker-compose on the commandline, then you’re ready to use hyper.sh. Their CLI utility closely mirrors how you already work with docker-compose. The documentation is solid. The web interface is informative, but really secondary to their CLI.
I haven’t used Hyper.sh for a production site yet. But there are many uses for containerized hosting other than hosting a production app, and for those cases Kubernetes is often overkill. Why give yourself the barrier of learning Kubernetes just to expose a proof of concept or dev app to collaborators and test users? I think Hyper.sh fits well for those cases.
I also tried Docker Cloud (formerly tutum) for these purposes, and didn’t enjoy it. DC doesn’t provide hosting, so hooking up with a hosting provider adds another layer of administration. The web interface purports to do everything, but was often slow. The web-based terminal app sucks. Not a fan.
- If you get weird quota errors, just go to the Account > Quota page and use the link to request higher quota. Seems like they’ll generally grant the increase without asking questions. If you fool around and don’t delete stopped containers and unused images, it’s easy to hit the initial quota.
- Hyper.sh doesn’t have built-in DNS, so expect to add A records somewhere else, or just access via IPs.
- Each container that needs to be accessed publicly needs an FIP (floating IP). Allocate and attach (typically via the ‘fip’ property in your yml).
- Think about using named volumes for your app, and configure those in your yml. You can
hyper compose downand
hyper compose upand not worry about deleting your data - volumes are maintained, and reattached to the new containers.
- If your container dies for some reason that seems inexplicable, it could be out of memory. Try increasing the container size with the ‘size’ property in your yml.
- Make sure to
hyper pull [image]before you
hyper compose up, if your image has been changed/rebuilt. Hyper won’t automatically check for the new version.
Cool things: they’re working on integration with log collection and a CD pipeline that starts with auto-built images.
A lot of people are waking up to the fact that it sucks to lose a game you barely knew you were playing. Donald Trump swept the board on Nov 8, and he’s already started another round. He plays with manic fervor and sneaky-good strategy. And geez, the victories the bastard walked away with. Ouch. Maybe you placed a token or two; maybe you thought he didn’t have a chance; maybe you just never thought politics was your game.
Well old son, it’s time to learn how to play.
It can be as overwhelming as an eight-hour strategy game. The board is busy as fuck. Counters everywhere you look. But it’s actually not so bad once you get a way of thinking about it. Please allow me to suggest an easy one:
Politics is kinda like Magic: The Gathering.
Here’s the level at which most folks engage with politics: talking trash. And hey! it’s fun! You roll up to the tournament table with your buds and let your opponent know just how bad you’re gonna hand their ass back to them. Gift-wrapped. A bow on top. Everyone on your side gets the inside jokes and jibes, and that sucker doesn’t even know how bad they’re getting roasted.
Shit talk is fun.
That’s why people pass around the John Oliver clips, the small hands memes, the “omg can you believe this hypocrisy” tweets. Etc. Everything is awesome when you’re part of a team (and fuck that other team). Shit talk lets us blow off steam and process some of the bizarre and the absurd.
Talk all the smack you want, but if you’re not playing creatures and casting spells, you’ll never win a match. Meanwhile, somebody else is winning. And they probably don’t give a shit about you.
When you start playing politics, recognize that you’re playing with starter’s decks. When you start, don’t worry if what you play doesn’t match up that well against the opposition. You’re gonna take some lumps. That’s where learning comes from; that’s how you’ll build your deck later.
For now, remember: the most important thing is to keep playing cards.
As in Magic, politics is all about your mana pool. You can’t even mount an attack without building some base of mana to draw from. In politics, relationships are your mana. Connections are your mana. Not like “my dad’s the district attorney” connections - just connections to people. Your friends, your family. Other people who are playing politics.
If you meet one person who ends up being someone you like to work with, that’s golden.
If you can get two friends to take some meaningful political action, that’s golden.
So your initial moves are to just start personal conversations. Not facebook blasts. Get into spaces where you can meet people who are already doing work that looks interesting. Find out what support they need. Here’s just a few places you can start:
- Standing Up for Racial Justice
- Planned Parenthood
- Local abortion-access support funds/organizations
- Your local ACLU
Magic endures because there are lots of ways to play it. Taking forever to build up a ton of mana and then summoning a huge, overpowered beast isn’t a guaranteed win. Summoning basic, cheap creatures can still do damage.
And holy fuck do we ever need to do damage.
Bringing a couple friends to a protest is doing damage. Holding a house party to raise $300 is doing damage. Making a pledge with a co-worker to donate a small percentage monthly of your wages to a cool group is doing damage. It still takes mana - those connections - to know where these small actions fit in. But not really all that much of it.
Summon some basic creatures. It really matters. Sometimes a surprising amount.
Let’s take an example: hardly anybody ever talks to their city council members. Developers do. Big corporations do. Police unions do. But hardly any plain old residents. Seriously: in lots of city council elections a majority of the voters are 55 and older. And yet city councils have done cool shit: Seattle sparked a movement by passing a $15/hour minimum wage. Cities passed ranked choice voting (a way to eliminate 3rd party spoiler effect) and now a whole state is going to use it (Maine). Cities passed immigration/police separation ordinances that have Trump pissed off.
Summon some basic creatures on your city council, and you can win pretty big.
You don’t know what your opponent will play until the cards are on the table. You don’t have control over what that next card will be from the other side. The most important thing is to keep playing cards. Some of them will pan out and it will surprise the hell out of you. Look at Occupy Wall Street: a rag-tag group of radical weirdos squatting in a park. How many hundreds of protests like that went down? But that time, a chord was struck. It was the right card at the right time. They didn’t know in advance. They just kept playing cards.
OK, Ok, at some point you do have to get past the starter decks. It helps to play the cards that give you an advantage, that fit with your style of play. A lot of times, folks are afraid to play cards, because they’re afraid of it hurting their own side. “What if I offend someone”? And it’s true, you might get called out.
If you’re not sure you’re bringing the right cards to the table, do a little reading on deck strategy. Look up intersectionality. Read a quck but powerful book on feminism or black experience in America. Look up anti-racism. There are groups of people who want to talk about these things and educate each other. We don’t want to repeat the mistakes of the past.
But nobody has the answer. That’s the important thing. Nobody actually comes to the table with the ace, unbeatable deck. It’s not your job to build one. It is your job to listen and learn. Your best strategy for deckbuilding isn’t supreme knowledge.
It’s just plain not being defensive.
Take a breath and accept criticism. It’s tough. It’s one of the toughest things, especially when you’re walking into the back room with all the folding tables and the sweaty pits for the first few times. But that’s the advanced strategy: listen, acknowledge it, say you need time to think on it. Give yourself time to get over the hurt and the rush to defend yourself.
Defensiveness doesn’t build better decks.
If you’ve read this far, then I owe you an apology: sorry. Politics isn’t actually a game. People get hurt, for real. You only have to look at the spike in post-election hate crimes, at the fear that communities feel who have been threatened by Trump and his nazi bootlickers.
Politics isn’t a game, but it is something you can lose.
So this has been a tad glib. But you know what? We gotta get through this together. It’s absurd that the weight of a Trump presidency - a Trump presidency! - sits on our shoulders. We’ve lost a bunch of hit points. Don’t sweat it. In Magic you can win from any number of hit points above zero: low doesn’t mean out.
So let’s play.
I’ve practices flat organization in a few contexts: as a small business owner, as an activist, and as an employee. It feels right to me. It feels like the space wherein I’m most creative and productive. But why? Is it a quirk of my personality or personal history? Or am I on to something?
Some of my starting points, off the top of my head:
- People are creative
- People care about each other
- People want to succeed together
- Flat means no capricious authority
- Flat means you decide how you work
- Flat means you have a say in the definition of success
- Flat means you own outcomes, good or bad
- Flat means you solve problems instead of being stuck with them
- Flat means your co-workers matter
- Flat means learning
- Flat means higher expectations
- Flat means nothing is safe from questions
- Flat means decisions take longer
- Flat means decisions are better
- Flat means work is challenging
- Flat means work is meaningful
One of the main barriers many people face with a flat organization is disorientation. Mostly we’re trained in hierarchy, so we’re used to navigating the bumps and dilemmas of a workplace with conventional management. We’ve developed and honed those instincts. Flat organization requires the exercise of some new instincts and judgments, not to mention shaking off some habits. For many folks there’s a steep initial learning curve.
But not for everyone. I’m lucky to have had years of experience working in flat environments. While many folks are steeped in conventional management and hierarchy, many are not. It’s worth observing that people bring different expectations into a workplace, and that no management style is frictionless for 100% of the people in an enterprise. Here are a few experiences that oriented me with flatness:
Starting my own business. I started a tiny web development/consulting company with my best friend when we turned 18. Went right from college to doing it full-time, figuring out taxes, making decisions about clients and contracts and rates. Hiring (and sometimes firing) a small group of employees. Stuck with it and paid the bills for almost ten years.
Running for office. I ran for the MN House of Representatives in 2006. That was an amazing experience for a 23-year-old. There is nothing like knocking on doors as a candidate to get the feel for just how precious it is for another person to give you a few minutes to listen.
Co-founding a non-profit and serving on various all-volunter committees. Motivation and accountability are huge challenges when working with volunteers. But in some ways, I think the paycheck and regular hours can mask just how much these are challenges with paid employees as well.
I am really thankful for these experiences. A few things that strike me, as I reflect on them:
Failure and unpredictability. It strikes me that I’ve failed to achieve my goals at least as often as I’ve succeeded, despite spending equal amounts of time and energy in all cases. I think I’ve learned that you don’t have to be perfect, and you don’t have to be an expert. Nobody can predict the future. Small business and grassroots politics are both risky endeavors in environments where many of the variables are out of your control. Some humility about what I can actually affect, I think, paradoxically makes it easier for me to go out on a limb.
Working flat isn’t that different from entrepreneurship. Starting your own business entails a lot of the same challenges as working in a flat organization. Success depends on your initiative and there’s no one else to blame if it doesn’t happen. It’s funny that the entrepreneur is so lionized in this culture, while at the same time strict hierarchy is regarded as a norm for employees.
All-volunteer projects are great proving grounds. If anyone can just decide to stop showing up, you’ve got to constantly be persuading and motivating the people around you. And finding the ways to work that motivate yourself!
Success is that much sweeter, and even failure means something special. The worst scenario I can imagine working in is where nothing I do matters. For better or for worse. All of these experiences have meant a lot to me. They changed me in important ways. I think having the sense of ownership that comes with initiative, ownership and collaboration is a big reason why I’ve gotten so much of them.
I think those are some of the things people need in order to be successful and comfortable in a flat org: opportunities to be trusted, the experience of failure under your own terms, and the chance to try again with what you’ve learned.
“To comport oneself with perfect propriety in Polygonal society, one ought to be a Polygon oneself”
Flatland: A Romance of Many Dimensions
Edwin Abbott’s story is a satirical riff on rigid hierarchy. It’s a literal flat land – as in two-dimensional – but flatlander society is anything but. The inhabitants are grouped into immutable social castes according to their number of sides. But the inhabitants only see each others edges, within the plane they share. Never from above. Only a careful study in recognizing the subtleties of distance allows a hexagon to be distinguished from an octagon. The higher classes are granted this study, while the lower classes are left to hide their confusion behind a blanket deference to their betters.
I think one of the common concerns raised about flat organization is that it is confusing and chaotic. Anyone can be responsible for anything? How is stuff going to get done? Who do I ask about X? How do we make a decision if we don’t know who is “supposed” to make it? How do I know when I can say “no” and when I should compromise?
These are all legitimate questions! Flat organization is strange and confusing, if you’re inexperienced in it. But I ask you to wonder about the conventional, hierarchical organization that feels more comfortable to you. Think about the times when you’ve just gone along with a decision you thought was dumb, just because somebody higher up said so. Think about the times when you were doing work that you know was unchallenging and rote, just because that was your job. Think about the times you had to complete a task in a completely pointless, wasteful way, just because the person who made the requirements doesn’t actually know the work, at all.
How did you cope with those situations? How did you avoid getting too frustrated or confused with your lack of agency to change them? How do we accept them day in, day out? I suggest that it’s simple: we’re raised in hierarchical organization. We’re trained to navigate hierarchy deftly, to “climb the ladder.” We’re taught to accept the inefficiencies and dissatisfaction as natural, and to focus only outcomes like sales, salary and promotions.
In a polygonal society, we’re all polygons. When a sphere visits Flatland, the (square) protagonist is utterly baffled by the notions of three-dimensional space. The novel is a classic expression of the basic sociological impulse: to consider that we might seem just as strange through the eyes of another society as they seem to us.
A little dose of that thinking is necessary when making the leap to flat organization. It means suspending the immediate impulse to dismiss practices as strange, and to be willing to question some of what we have taken for granted as normal about conventional, hierarchical organizations. It’s not always easy or straightforward work.
Of course, the onus is on flatvocates to demonstrate that the benefits of flatness are worth the growing pains.