RSSAmplifier

Blog

Ben Straub

Recent content on Ben Straub

ben.straub.ccRSS feed ↗24 posts

Latest posts

VTTs Are Wrong: Part 1 (Vision)

Vision systems in VTTs are wrong, here’s why I think so.

13th Age Foundry

I’ve been running 13th Age on Foundry for a while now, and I think I’ve got a reasonable set of recommendations that are battle-tested. Here they are, so I don’t have to keep typing them out.
A note on timing: this is written in mid-2024. I know that all of these modules and methods work on both Foundry v11 and v12, and they’ll probably continue to work for at least a…

Codemotion Amsterdam 2017

Hacking Culture with Javascript Most every remote-enabled team uses real-time-communication software of one sort or another, but usually it’s a chat room. Lately, even co-located teams are signing up for this. So now that a bunch of our togetherness is in a chat room, we can gently introduce robots to do some of our scut work for us. Let’s take a look at what happens when the robot…

Making Audiobooks

We’re a read-aloud family. Every night before bed, each of our kids gets some read-aloud time with a parent. I have one book I’m reading with my son, and another one I read with my daughter, and Becky does the same. This has a whole host of benefits — I get to read some of the classics I missed as a kid, the kids get access to stories they’re not ready to read themselves yet, and…

Lessons Learned From Writing Hubot Plugins

Now that I’ve written a few Hubot plugins, I feel like it’s time for me to pontificate on the best way to do things. I have literally weeks of experience doing this, which pretty much qualifies me to teach others at a university level.
Seriously, though, Hubot plugins aren’t exactly hard things to write, but there are some things you have to learn the hard way unless someone…

Culture Engineering

One of the biggest points I make in my talk about chat bots is that culture is hackable — you can change your team or company culture by writing code.
This isn’t a Great Insight™. Architecture is on some level the study of how buildings and spaces affect human behavior. Seemingly minor advances in weapons technology have completely changed the way war is waged, and a better way of…

Kubernetes and AWS VPC Peering

tl;dr: Kubernetes + EC2 + VPC peering = trouble. Scroll to the bottom for my findings if you’ve had problems with this.
We’re making a bet with our next generation of services at Gridium. Our bet is that microservices will serve us better than monolithic services, and we’re in the process of moving our existing services to this kind of architecture too. Our chosen backing…

Joy of Coding 2015

Hacking Culture with Chat Robots Robots didn’t turn out how we thought they would, but that doesn’t mean they can’t be fun and useful. Plus, adding one to your team can make your company a better place to work.
Video Slides Design Notes Software: Deckset. Poster theme, dark blue.

The WIP Pull Request

So you’re working on a project on GitHub, and your team is using pull requests. This means you’re getting a notification (probably an email) every time someone leaves a comment on one of these PRs. This is great, and it works really well.
But.
What if your team is opening a lot of PRs? Well, then you’re getting a lot of email, perhaps a dozen new threads in your inbox…

High Five

A few weeks ago, my company began an experiment with HR and robots. It’s pretty interesting (or at least we think so), but before I tell you about it, there’s some exposition that needs to happen. I’ll do my best to make it worth it.
Robots I work for Gridium, and we’re a distributed company. There is no central office, and even our founders live in different cities. We…

The Retreat

If you don’t have kids this will sound trite, and if you do it will sound obvious: when my children came along, my life changed.
Before that, their (late) mother and I had a sort of balance to our lives. We both spent most of our weekdays with coworkers, most of our evenings together, and at least a little time doing our own things. We both got fulfillment at work, all the attention we…

Is the Schedule Working?

About a month ago, I posted about adding some structure to my workday. So it’s time to look back and ask “is this working?”
Writing Time The design included both early mornings and evenings set aside for writing. Most of the impetus for this was a large writing project I was taking on, which then disappeared. Without that huge motivator, I found myself slipping, spending that…

libgit2: Walking History

Making new commits and dealing with the working directory is only half of what git is for. Most of the data in a git repository is historical; old commits, old versions of files. Let’s take a look at how you can use libgit2 to handle that information.
Commits It’s pretty easy to just load up a commit and start poking around with the data inside it. It seems pretty logical to do…

Breaking Up the Day

I’ve always had a pretty loose attitude towards how I work. I’d wake up, feed and take the kids to school, and just go. When you work at GitHub and you really only have one project, it’s pretty easy to sink your teeth in and forget all the other stuff.
The thing is, that “other stuff” is important. Bills that need paid on time, car maintenance, grocery shopping,…

libgit2: Refs, Tags, and Branching

Refs are a powerful way of annotating a git repository’s history. Libgit2, of course, provides several ways of working with them.
Refs There are several ways to get a handle on a ref in libgit2. If you just want one:
git_reference *ref; git_reference_lookup(&ref, repo, 'refs/heads/master'); The string argument has to be the full name of the ref; just master won’t do.…

libgit2: Checkout

So you’ve got this git repository, and it’s got a bunch of stuff in it – refs, trees, blobs, commits – and you want to work with that stuff. One way to think about that stuff is by thinking about how it’s organized into three trees, and moving stuff between those trees. In libgit2, the way you get stuff from a commit into the index and the working tree is by using the checkout…

libgit2: The Repository

In libgit2, the git_repository object is the gateway to getting interesting stuff out of git. There are several ways to get your hands on one.
Clone If your repository exists on a remote but not on the local machine, you can get it using git_clone, and once it’s done with all the network stuff, it spits out a repository object. Check out my post on cloning for more on that.

libgit2: Cloning

Libgit2 aims to make it easy to do interesting things with git. What&rsquo;s the first thing you always do when learning git? That&rsquo;s right, you clone something from GitHub. Let&rsquo;s get started, shall we? Let&rsquo;s get some of the boilerplate out of the way:&#xA;#include 'git2.h' #include <stdio.h> int main(int argc, char **argv) { const char *url, *path; if (argc < 3) { printf('USAGE:…

2012: Year in Review

My 2012, through the GitHub lens. Inspired by Tim Clem.&#xA;I guess it&rsquo;s not that surprising, but vacations, travel, and holidays show up pretty clearly.&#xA;Yes, there are two honeymoons. Both of them piggybacked on business travel — the first was a destination wedding I photographed with my lovely wife a week after we were married, and the second was glued to a conference I spoke at.

The Best Part of Waking Up

It seems like such a small detail: what&rsquo;s the first thing you do when you wake up? Hop in the shower? Check your email? Hit Reddit for a quick puppy fix before the coffee starts working?&#xA;I recently switched to writing code.&#xA;Setting the tone You wake up each day completely fresh. It takes a while before all the worries from yesterday make themselves known again, so for a while you…

OpenBlend 2012

How to make Git (and GitHub) work for you Git and GitHub are powerful tools for making your development life easier and more productive. Learn techniques and tricks for how to get the most out of them.&#xA;Video Slides Design Notes #01AEF3 #006289 Fonts: Arvo, Neutraface 2, Star Jedi, Hand of Sean&#xA;Software: Mac OS X Spaces

Native Win32 for fun and profit

[Note: this is ported from my old blog, and there&rsquo;s more discussion there.]&#xA;All the cool kids these days are playing with awesome dynamic languages, or on cool frameworks. I&rsquo;m stuck with c++ at work, but every now and then I get to do something cool with it.&#xA;That&rsquo;s the Wacom radial menu, which is implemented as a fully alpha-blended window in native Win32. Something like…

(untitled)

I am proud to make beautiful, useful things with code. I&rsquo;m looking to work on something that will make the world a better place. Or at least not a worse one.&#xA;Working 2016 — Present&#xA;Zendesk Zendesk is by far the largest company I&rsquo;ve worked for, and has only become larger during my time there. I am the technical lead for Side Conversations, a system that surfaces as…

Who are you again?

I feel like I&rsquo;ve always been a programmer. I enjoy books, taking my kids on bike rides, chocolate, dogs, those little notebooks you carry around with you, photography, a good weekend hack, traveling, writing, food, craftsmanship, a great pen, Markdown, music, movies, and talking to amazing people.&#xA;You can find me on Twitter as @benstraub, and on GitHub as @ben.&#xA;Here are some things…