Computing and the Battle of the Futures

One of my earliest memories is of a decrepit, dusty blue Toyota pickup truck lazily rolling past our house. It was June 1991, and my family lived in N’Djamena, Chad. I was five.

The bed of this truck was spilling over with African men carrying rifles. In the middle of the truck bed, there was some sort of tower-like thing sticking up. Something tall and alien looking poking its head out above the gaggle of men in the back of the truck.

It was an anti-aircraft gun.

At first, I didn’t understand. I mean, I had seen a gun like that before when I went on a tour of a retired battleship from World War II. But what was this huge gun doing in the back of a truck? And what was it about how it looked that seemed so… wrong?

Continue Reading

Understanding the Internet: How Messages Flow Through TCP Sockets

One of the questions that has been coming up a lot lately as many people are building with Akka.Remote is this: How big of a message can I send over the network? I’ve been asked about this four or five times this week alone, so it’s time to put out a blog post and stop re-writing the answer. This is a great question to cover, as it starts to reveal more about what is going on under the hood with Akka.Remote and the networking layer. Up until I worked on Akka.NET, I honestly hadn’t thought much about the networking layer and so this was a fun question for me to dig into and research. When does this come up? This comes up all the time when people have large chunks of data that they need to transmit and process. I’ve been asked about this lately in the context of doing big ETL jobs, running calculations on lab data, web scraping, for video processing, and more. People asking about sending files that range anywhere from 20MB to 5GB. All of these contexts involve large amounts of data that need to be processed, but no clear way to link that up with the distributed processing capabilities that Akka.NET provides. So what’s a dev to do? Here’s the first answer people try: “network-shmetwork! JUST SEND IT!” Why this is a bad idea This is basically what that does to the network: That is a python trying to eat an entire pig. Ewwwww. Gross. If…

Continue Reading

Petabridge and the Future Of Open-source Data In .NET

The future of computing is a massively-connected world where everyone and their mother has 3+ devices. That means data. Lots and lots of data.

Early last year, I started deeply exploring distributed systems and large-scale data processing. Since then, I’ve spent a lot of time thinking and discussing these forces and what to do about them with my longtime friend and fellow developer, Aaron Stannard. We became very interested in how these ideas could be applied in the global .NET ecosystem, which is the technical ecosystem that supports many of the world’s largest companies (major banks, the Fortune 500, etc).

There’s massive amounts of value locked up inside the minds of developers all over this ecosystem, and they haven’t had the tools to realize those ideas.

Continue Reading

How to Email Notes & Ideas Into Scrivener

Over the last several months, I’d fallen off the wagon writing-wise due to very heavy client workloads. I’m finally getting back into it after wrapping up a project. Given the restart, I got to wondering about my writing workflow and which tools I use.

In whatever I do (coding, writing, etc) I’m always concerned with tools and establishing a good workflow and rhythm. For me, that means mobility and cross-platform access to what I’m working on. I want my data stored in the cloud so it isn’t tied to any one physical device or location, and so it’s properly backed up off-premises. This protects my work from accidents (or stupidity) well, and gives me flexibility about when, where and how I do my work. I appreciate that.

After a quick chat with Scott (he’s currently finishing a book on product design), I decided to use Scrivener as the main organizational hub for everything…

Continue Reading

How to Unlock Foreign Languages: 11 Principles

From November until March I worked remotely and traveled in South America. Working remotely and exploring the world is something I’ve wanted to do ever since I first learned the term “location independent” as a college sophomore. But until this trip, I’d never done it. So with no lead time, in early November I booked a one-way ticket to Buenos Aires.

Just one problem: I didn’t speak Spanish. I took Spanish in high school, but I couldn’t remember anything useful. And I’m not sure I could apply it in conversation even if I could remember it.

Onboard the redeye flight from Miami to Buenos Aires, my lack of Spanish was immediately clear. I sat next to an Argentine man who turned to me and started speaking. Even though he spoke simply, I could not understand him. It had already been an eighteen hour day, and my best intentions failed within ten seconds. Flush with embarrassment, I admitted defeat: “no hablo español.”

Continue Reading

Permission to Fall

For the last three months, I traveled throughout South America. Despite what my Instagram photos may suggest, for the first month I was on the road, I was not enjoying it. Everything was new and stressful. There were no familiar places or friends to fall back on. The lack of regular schedules shot all my routines to hell. I felt lonely without my friends, and had no idea what I was doing. I drank too much, and exercised too little.

Searching, far from home
I had gone away to get out of the tech scene for a while, for a change of pace and scenery. I had recently left Chill, where I’d driven myself at a maniacal pace for almost three years. I needed time and space to think, refresh, and get some perspective.

But I was 6,121 miles away, and it wasn’t working.

Continue Reading

Analog Hearts In A Digital World

If there’s ever a time of year when we want to feel human connection, it’s around Valentine’s Day. And connection requires vulnerability and honesty, experiencing the world through another’s eyes.

Here are two questions that I’ve found helpful in authentically opening up my work and thinking to others over the last few months, which has led to some wonderful connections and conversations:

– What do the things that I feel compelled to do tell me about myself?
– Why do I want this thing that I want?

Both are variants on the same theme…

Continue Reading

13 Lessons for My Niece

After a long day in transit, I wanted to share a note of lessons I wrote in hopes that my future niece learns them earlier than I did:

– The world is both big and small and travel is one of the best things you can do for yourself. Embrace it. Get out into it.
– Learn to pack light. You need much less than you think.
– Keep asking “why?” and consider it as a major warning sign if someone in authority doesn’t want to answer, gets frustrated when you ask, or can’t answer the question without a tautology.
– “Because that’s just how it’s done” is the worst answer to this question…

Continue Reading

Have You Gotten Too Comfortable?

I’ve come to believe all creative work is a constant struggle between hope and fear. Hope that what I’m making will add value to the world. Hope that it will be accepted by the market. Hope that it will be interesting or resonate in a meaningful way. Fear that it won’t. Fear that everyone will laugh at me. Fear that people will call me names and think I’m an idiot for having made something so laughably dumb.

There’s a lot of fear. Especially when I let the noise in or get sucked into the trap of comparing myself to others.

Continue Reading