This version of the site is now archived. See the next version at v5.chriskrycho.com.

Test the Interface

An essential principle for effective software testing.

November 13, 2019Filed under Tech#software development#testingMarkdown source

A Note on Attention

Walking through the airport with a camera, and Michael Sacasas.

November 04, 2019Filed under Tech#attention#photography#social media#wisdomMarkdown source

Apple, Your Developer Documentation is… Missing

If you want developers to love your platform, then you need to take this seriously. If it isn’t documented, it isn’t done.

October 28, 2019 (updated October 28, 2019)Filed under Tech#ios#macos#software development#swiftMarkdown source

rewrite Dev Journal: How Progress Doesn’t Feel

Learning in a new ecosystem doesn’t always feel like progress—but it is.

October 26, 2019Filed under Tech#productivity#rewrite#rewrite dev journal#software developmentMarkdown source

User Interfaces are API Boundaries

Applying domain-driven design ideas to UI implementation.

September 12, 2019Filed under Tech#domain-driven design#software architecture#software development#uiMarkdown source

rewrite Dev Journal: How I Started

The smallest possible set of tasks.

September 04, 2019Filed under Tech#productivity#rewrite#rewrite dev journal#software developmentMarkdown source

Ember Type-Defs Livestreaming

I’m totally becoming a YouTube star. That’s how this works, right?

July 20, 2019Filed under Tech#emberjs#javascript#typescriptMarkdown source

Appearance: Corecursive #34

Mostly TypeScript, but also a bit of Rust, type theory, and productivity.

July 15, 2019Filed under Tech#appearances#podcasting#programming languages#rust#typescriptMarkdown source

I was delighted to spend a bit over an hour chatting with Adam Gordon Bell on the Corecursive podcast. I was there officially to talk about TypeScript, and I did a lot of that… but we also dug into Rust a bit, of course, as well as talking about my schedule and “productivity”.

I’ve been podcasting for a few years now, but this was only the second time I’ve ever been on someone else’s podcast—and it was a blast. Thanks so much to Adam for having me on!

Announcing rewrite

An absurdly ambitious project: building a genuinely great research writing app.

July 06, 2019Filed under Tech#note-taking#rewrite#software developmentMarkdown source

My Final Round of URL Rewrites… Ever.

Tweaking how I handle my domain so my life is simpler for future redesigns.

July 05, 2019Filed under Tech#web design#web development#writingMarkdown source

#EmberJS2019, Part 2

Let’s make TypeScript a first-class citizen of the Ember ecosystem.

June 17, 2019Filed under Tech#emberjs#emberjs2019#javascript#open-source software#typescriptMarkdown source

#EmberJS2019, Part 1

Let’s finish modernizing the Ember programming model!

June 17, 2019Filed under Tech#emberjs#emberjs2019#javascript#open-source softwareMarkdown source

From My Sent Folder: On Mozilla and IRC

A lesson free- and open-source software advocates still need to learn.

April 30, 2019Filed under tech#free software#from my sent folder#open-source software#uiMarkdown source

EmberConf 2019 Typed Ember Team Report

What are the next big problems on deck for TypeScript in Ember?

March 26, 2019Filed under Tech#emberjs#open-source software#typescriptMarkdown source

Announcing ember-cli-typescript v2.0

Now built with Babel, better build errors, and a docs site!

March 13, 2019Filed under Tech#emberjs#open-source software#typescriptMarkdown source

My Current Setup

Apps I use to get things done.

January 19, 2019Filed under Tech#apps#pomodoro#productivity#reading#software development#writingMarkdown source

JavaScript is C

Maintaining invariants the most painful way possible.

December 20, 2018Filed under Tech#c#elm#javascript#rust#software development#typescriptMarkdown source

Internal and External Parameter Names in JavaScript and TypeScript

A handy design pattern stolen from Objective-C and Swift for designing nicely usable APIs.

November 26, 2018Filed under tech#javascript#software development#swift#typescriptMarkdown source

ember-cli-typescript v2 beta

Faster, more reliable builds, with better error reporting – please come test it in your apps and addons!

November 19, 2018Filed under Tech#ember-cli-typescript#ember.js#open-source software#typescriptMarkdown source

The Apple Magic Keyboard

What Cherry Blues are to some mechanical keyboard lovers, the Apple Magic Keyboard is to me.

November 11, 2018Filed under Tech#design#hardwareMarkdown source

Review: The Rust Programming Language

A genuinely great programming book.

November 07, 2018Filed under Tech#book reviews#programming languages#rustMarkdown source

True Myth 2.2

Maybe helpers for safe object lookup and Result helpers for exception-throwing code.

October 27, 2018Filed under Tech#functional programming#open source software#true myth#typescriptMarkdown source

Scales of Feedback Time in Software Development

Orders of magnitude: build-time errors, automated tests, manual test, CI, staging, production.

October 22, 2018 (updated October 22, 2018)Filed under Tech#programming languages#rust#software development#testingMarkdown source

Why We Want Pattern-Matching in JavaScript

A worked example, showing how much it can clarify code.

September 23, 2018 (updated September 24, 2018)Filed under tech#javascript#programming languagesMarkdown source

A Real Victory

Today—just shy of two years since I started adding types to our Ember app—it fully type-checks.

September 05, 2018Filed under Tech#ember.js#flow#javascript#software development#typescriptMarkdown source

True Myth 2.1.0 Released

A bunch of neat new utility functions on Maybe for arrays and tuples.

September 02, 2018Filed under Tech#functional programming#libraries#monads#open source software#software development#true myth#typescriptMarkdown source

Going Offline

I signed out of Slack for most of the day a few times this week, and it was bliss.

September 01, 2018Filed under Tech#burnout#chat#productivity#remote work#slackMarkdown source

Once More Around The Wheel

Wishing something—anything—supported my particular and peculiar needs for static site generation.

August 31, 2018Filed under Tech#blogging#static site generators#writingMarkdown source

Type-Informed Design

Revisiting our app in TypeScript’s strict mode has me thinking about what we’d do different if we had this input in the first place.

August 30, 2018Filed under Tech#ember.js#functional programming#javascript#software development#types#typescriptMarkdown source

RSS Triage is Just Like Email Triage

Read it, send it to Pocket to read later, or mark it as read. Move on.

August 22, 2018Filed under Tech#reading#rssMarkdown source

Stable Libraries

A crazy idea: that sometimes a library might just be… done.

August 14, 2018Filed under tech#javascript#libraries#open source software#software development#true mythMarkdown source

“Free Speech”

The cost of outsourcing our public discourse to private platforms.

August 11, 2018Filed under Tech#ethics#indie web#politics#social media#twitter#writingMarkdown source

Building Things

A meander on leadership roles and the kinds of contributions we make.

August 06, 2018Filed under tech#leadership#new rustacean#podcasting#software developmentMarkdown source

Is Agile the Enemy of Good Design?

John Cutler on “Agile,” good design, and the reasons the two often seem at odds.

July 29, 2018Filed under tech#agile#business#design#software developmentMarkdown source

Ember.js, TypeScript, and Class Properties

An important set of corrections about the behavior of class properties in Ember.js.

July 10, 2018Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

Client-Side Ideas for Server-Side Apps

I suddenly just discovered that I do actually want Ember.js (or React) for a static site. Why? Components.

June 07, 2018Filed under tech#emberjs#javascript#web designMarkdown source

Sum Type Constructors in TypeScript

Or, making TypeScript into a terrible ML because I can’t use Elm in my day job.

May 31, 2018Filed under Tech#elm#programming languages#typescriptMarkdown source

#EmberJS2018, Part 4

Embracing the Ecosystem

May 29, 2018Filed under Tech#emberjs#emberjs2018#javascript#typescriptMarkdown source

Higher-Order Components in Ember.js

Components as arguments! Components getting yielded! Components everywhere!

May 26, 2018 (updated May 28, 2018)Filed under Tech#emberjs#javascript#typescriptMarkdown source

#EmberJS2018, Part 3

Default to open for discussions and decision-making.

May 23, 2018Filed under Tech#emberjs#emberjs2018#javascript#leadershipMarkdown source

How To Bundle TypeScript Type Definitions

If your consumers have to use compiler options, they will be very sad.

May 21, 2018Filed under tech#programming languages#true myth#typescriptMarkdown source

Rust is Incredibly Productive for CLIs

Don’t let the tagline fool you: Rust is for more than just “systems programming.”

May 20, 2018Filed under tech#programming languages#rustMarkdown source

Destructuring with True Myth 1.3+

A thing I didn't even realize I could do until after I published it.

May 19, 2018Filed under tech#functional programming#libraries#open source software#true myth#typescriptMarkdown source

The Chinese Room Argument

Thinking about what “Strong AI” actually is and means.

May 19, 2018Filed under Tech#ai#ethics#philosophyMarkdown source

#EmberJS2018, Part 2

Doubling Down on Documentation

May 18, 2018Filed under Tech#emberjs#emberjs2018#javascript#typescriptMarkdown source

True Myth 1.3.0 and 2.0.0

A couple nice ergonomic updates and some breaking changes for consuming the library.

May 18, 2018Filed under Tech#functional programming#libraries#open source software#software development#true myth#typescript#versioningMarkdown source

Aesthetics and Programming Languages

Why does C♯ drive me insane but I love Rust?

May 13, 2018Filed under Tech#csharp#programming languages#rustMarkdown source

#EmberJS2018, Part 1

Finishing What We've Started

May 11, 2018 (updated May 11, 2018)Filed under Tech#emberjs#emberjs2018#javascript#typescriptMarkdown source

A Humanist Frame

Avoiding the usual conservative mistake of stopping with the mere rejection of something bad

May 01, 2018Filed under tech#community#ethicsMarkdown source

Exploring 4 Languages: Integrity and Consistency

Making, and keeping, promises – with Rust, Elm, F, and ReasonML.

March 24, 2018Filed under Tech#domain-driven design#elm#four-languages#fsharp#functional programming#reasonml#rustMarkdown source

Announcing ember-cli-typescript 1.1.0

Now with generators, support for addons, and incremental compilation!

February 12, 2018Filed under Tech#emberjs#javascript#typescript#typing-your-emberMarkdown source

TypeScript and Ember.js Update, Part 4

Using Ember Data, and service and controller injections improvements.

February 08, 2018 (updated July 10, 2018)Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

TypeScript and Ember.js Update, Part 3

Computed properties, actions, mixins, and class methods.

January 25, 2018 (updated July 10, 2018)Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

TypeScript and Ember.js Update, Part 2

Class properties—some notes on how things differ from the Ember.Object world.

January 24, 2018 (updated July 10, 2018)Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

TypeScript and Ember.js Update, Part 1

How do things look in early 2018? Pretty good, actually!

January 22, 2018 (updated July 10, 2018)Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

Exploring 4 Languages: Starting to Model the Domain

How we use types to capture business concepts in Rust, Elm, F, and ReasonML.

January 14, 2018Filed under Tech#domain-driven design#elm#four-languages#fsharp#functional programming#reasonml#rustMarkdown source

Exploring 4 Languages: Project Setup

Getting Rust, Elm, F, and ReasonML installed; their editor plugins configured; and their project files ready.

January 01, 2018Filed under Tech#domain-driven design#elm#four-languages#fsharp#functional programming#reasonml#rustMarkdown source

Exploring 4 Languages

Rust, Elm, Reason, and F – a bunch of cousins!

December 31, 2017Filed under tech#domain-driven design#elm#four-languages#fsharp#functional programming#reasonml#rustMarkdown source

Types are Small

(Scott Wlaschin is really smart.)

December 29, 2017Filed under Tech#functional programming#software developmentMarkdown source

I Want JSON Decoders

Elm taught me something important about how to handle my APIs.

December 25, 2017Filed under Tech#elm#javascript#software development#typescript#web developmentMarkdown source

Chrome is Not the Standard

Developer infatuation with Chrome is not good—because competition between browsers is good.

December 21, 2017Filed under Tech#web developmentMarkdown source

Vexing Ironies

What does it say about us when we use a technology to critique the same technology?

December 17, 2017Filed under Tech#ethicsMarkdown source

Becoming a Contributor

The prepared script for my talk at Rust Belt Rust 2017, given October 27, 2017 in Columbus, Ohio.

November 02, 2017Filed under Tech#open source software#rust#software development#talksMarkdown source

Announcing True Myth 1.0

A library for saner programming in JavaScript, with first-class support for TypeScript (and Flow), with Maybe and Result types, and supporting both a functional style and a more traditional method-call style.

November 01, 2017Filed under Tech#functional programming#libraries#programming languages#software development#true myth#typescriptMarkdown source

Announcing ember-cli-typescript 1.0.0

Type your apps!

August 08, 2017Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

Typing Your Ember, Part 4

Example: using Ember for view and lifecycle but plain-old TypeScript otherwise.

July 31, 2017Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

Typing Your Ember, Part 3

How to actually use types effectively in Ember today.

July 28, 2017Filed under tech#emberjs#typescript#typing-your-emberMarkdown source

The Book of F♯

A so-so book about a slightly strange language.

July 21, 2017Filed under Tech#book-reviews#fsharp#pedagogy#programming languages#writingMarkdown source

Farewell, Dropbox

Because I don’t trust you anymore.

July 06, 2017Filed under Tech#workflow#writingMarkdown source

Set Up Mosh on macOS

TL;DR: brew install, firewall, pfctl, have a nice day!

June 29, 2017Filed under tech#macos#sysadminMarkdown source

Write! app review

Not too shabby on Windows, not what you want on macOS.

June 26, 2017Filed under Tech#app reviews#design#macos#windows#writingMarkdown source

“Collection-Last Auto-Curried Functions”

You want your data last, and you want your functions “partially applied.” Here’s why.

June 24, 2017Filed under Tech#functional programming#javascriptMarkdown source

Typing Your Ember, Part 2

Adding TypeScript to an existing Ember.js project.

May 07, 2017Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

Typing Your Ember, Part 1

Set your Ember.js project up to use TypeScript.

May 05, 2017Filed under Tech#emberjs#typescript#typing-your-emberMarkdown source

Why Elm Instead of TypeScript?

Or, yet another long comment in Slack turned into a blog post.

April 23, 2017Filed under tech#elm#functional programming#javascript#programming languages#typescriptMarkdown source

Functions, Objects, and Destructuring in JavaScript

On functions in JS and some fun bits in ES2015 in particular

March 27, 2017Filed under tech#javascriptMarkdown source

Pick the Right Tool for the Job

Twitter, Pinboard, RSS, and the role of ephemera on the web.

March 17, 2017Filed under Tech#writingMarkdown source

Dear Tech CEOs: Yes, That Is Your Culture.

Wishing and proclaiming it isn't doesn't make it so.

February 21, 2017Filed under Tech#ethicsMarkdown source

Better Off Using Exceptions?

Maybe, but only if your language demands it.

February 20, 2017Filed under Tech#fsharp#functional programming#rust#software developmentMarkdown source

On Blogging

A few thoughts on Medium, micro.blog, and the open web.

January 04, 2017Filed under Tech#open web#writingMarkdown source

TypeScript keyof Follow-Up

Autocomplete all the things in all the ways!

January 03, 2017 (updated January 08, 2017)Filed under Tech#javascript#programming languages#software development#typescriptMarkdown source

On ebooks (again)

A message sent to the team at Lifeway.

January 02, 2017Filed under Tech#from-my-outboxMarkdown source

The Itch

How typed functional programming is what I was looking for all along.

December 19, 2016Filed under tech#functional programming#javascript#rust#software developmentMarkdown source

keyof and Mapped Types In TypeScript 2.1

Making JavaScript dance to an ML-ic tune.

December 17, 2016 (updated December 18, 2016)Filed under tech#javascript#programming languages#software development#typescriptMarkdown source

Using Rust for ‘Scripting’

With a bonus: cross-compiling from macOS to Windows!

November 14, 2016 (updated November 15, 2016)Filed under Tech#programming languages#rust#software developmentMarkdown source

What is Functional Programming?

(And why should we care about it?)

November 11, 2016 (updated November 14, 2016)Filed under tech#functional programming#javascript#software developmentMarkdown source

Why Everything is Broken

Because we all forget how broken it is.

November 01, 2016Filed under Tech#software developmentMarkdown source

Rust vs. React Native—What?

Tradeoffs, or: Speed and stability are for everyone

October 07, 2016Filed under Tech#f sharp#javascript#rust#software development#swiftMarkdown source

Rust and Swift (xviii)

Deinitialization: ownership semantics and automatic reference counting

July 24, 2016Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Consistency in User Interfaces

Or, one part of why Git has such a learning curve.

July 15, 2016Filed under tech#git#software developmentMarkdown source

Rust and Swift (xvii)

More on initializers!

June 30, 2016 (updated July 04, 2016)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Y Combinators, how do they even work?

A commentary on a blog post by Matt Might, or: learning out loud.

June 19, 2016Filed under tech#javascript#programming languages#software developmentMarkdown source

Vectors and Iterator Access in Rust

Be careful not to move things instead of borrowing them.

June 16, 2016Filed under Tech#rustMarkdown source

Testing Ember.js Mixins (and Helpers) With a Container

Fixing "Attempting to lookup an injected property on an object without a container" errors in mixin and helper tests.

June 09, 2016 (updated April 20, 2017)Filed under tech#emberjs#javascript#software developmentMarkdown source

Rust and Swift (xvi)

Initialization: another area where Swift has a lot more going on than Rust.

June 07, 2016 (updated June 22, 2019)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and C++ function definitions

A small study in syntax and legibility.

June 03, 2016 (updated June 07, 2016)Filed under tech#cplusplus#programming languages#rustMarkdown source

Free Dynamic DNS for Remote Login via SSH

May 31, 2016Filed under techMarkdown source
May 12, 2016Filed under Tech#quotesMarkdown source

This bit from the fish design document perfectly captures what git does wrong (emphasis mine):

When designing a program, one should first think about how to make a intuitive and powerful program. Implementation issues should only be considered once a user interface has been designed.

Rationale:

This design rule is different than the others, since it describes how one should go about designing new features, not what the features should be. The problem with focusing on what can be done, and what is easy to do, is that too much of the implementation is exposed. This means that the user must know a great deal about the underlying system to be able to guess how the shell works, it also means that the language will often be rather low-level.

—fish documentation

Ulysses, Byword, and “Just Right”

My own killer Markdown app is still unwritten.

March 26, 2016Filed under tech#design#software development#writingMarkdown source

Rust and Swift (xv)

Inheritance: a Swiftian specialty (for now).

March 12, 2016Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (xiv)

Indexing and subscripts, or: traits vs. keywords again.

March 10, 2016Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

The Future of JavaScript

ES2015, ES2016, and Hopes for ES2017 and Later

March 02, 2016Filed under Tech#javascript#programming languages#software development#talksMarkdown source

Static Site Generators and Podcasting

Publishing podcasts the hard way.

February 28, 2016Filed under tech#podcasting#python#rust#software developmentMarkdown source

Rust and Swift (xiii)

Methods, instance and otherwise.

February 28, 2016 (updated March 06, 2016)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (xii)

Properties: type and instance, stored and computed.

February 27, 2016 (updated June 22, 2019)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

“I Don't Know When I'd Use That”

Learning new languages as a way of stretching your brain.

January 17, 2016Filed under tech#haskell#programming languages#rust#software developmentMarkdown source

Women in Rust

January 10, 2016Filed under tech#podcasting#rust#tweetstormMarkdown source

Rust and Swift (xi)

Hopes for the next generation of systems programming.

January 10, 2016Filed under Tech#programming-languages#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (x)

Classes and structs (product types), and reference and value types.

December 06, 2015 (updated December 22, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (ix)

Sum types (enums) and more on pattern matching

November 09, 2015 (updated June 22, 2019)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

CSS Fallback for OpenType Small Caps

A not-so-great solution which still gets the job done.

October 19, 2015Filed under tech#design#software development#typographyMarkdown source

Rust and Swift (viii)

Functions, closures, and an awful lot of Swift syntax.

October 18, 2015 (updated October 19, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (vii)

Pattern matching and the value of expression blocks.

September 19, 2015 (updated September 20, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (vi)

Collection types and the difference between syntax and semantics.

September 19, 2015Filed under Tech#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (v)

The value (and challenge) of learning languages in parallel.

September 12, 2015Filed under Tech#programming languages#rust#rust-and-swift#software development#swiftMarkdown source

If-expressions in Rust

September 12, 2015 (updated September 12, 2015)Filed under tech#programming languages#python#rust#software developmentMarkdown source

Rust and Swift (iv)

Language design trade-offs, highlighted by string manipulation.

September 10, 2015 (updated June 22, 2019)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (iii)

Operators, including overloading, and thoughts on brevity.

September 07, 2015 (updated June 22, 2019)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (ii)

Basic types and the syntax around them.

September 06, 2015 (updated June 22, 2019)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (i)

Thoughts after reading the introduction to the Swift book.

September 04, 2015 (updated June 22, 2019)Filed under Tech#listicles#programming languages#rust#rust-and-swift#swiftMarkdown source

On Editing Podcasts

Good podcasts—like good blog posts—require planning, care, and editing.

August 24, 2015 (updated August 28, 2015)Filed under tech#podcastingMarkdown source

High- and Low-Level Programming Languages

Python, Ruby, C, C++, and... Rust. Hmm.

August 07, 2015Filed under tech#c#cplusplus#programming languages#python#ruby#rustMarkdown source

Academic Markdown and Citations

A workflow with Pandoc, BibTEX, and the editor of your choice.

July 26, 2015 (updated July 26, 2015)Filed under tech#workflow#writingMarkdown source

HTML5 Location, <base>, and SVG

Making Angular and SVG xlink:href work correctly in Firefox.

June 20, 2015 (updated July 02, 2015)Filed under tech#angularjs#javascript#software developmentMarkdown source

How to Build a Single-Page App API Right

Or: How to get performance, progressive enhancement, and SEO in your Ember/Angular/Backbone/etc. app for free!

June 09, 2015Filed under tech#javascript#software developmentMarkdown source

Corporate and Government Surveillance

Or: Why Senator Sheldon is Wrong

June 02, 2015Filed under tech#listiclesMarkdown source

Python Enums, ctypes.Structures, and DLL exports

Illustrating the Simplest Use of ctypes Structures

May 28, 2015Filed under tech#software developmentMarkdown source

A Modern Python Development Toolchain

May 16, 2015Filed under tech#software developmentMarkdown source

Tolle Lege!

Designing Readable Bibles with Digital Typography

May 01, 2015Filed under Tech#design#talks#typographyMarkdown source

Lessons Learned

9 Months With HolyBible.com

April 12, 2015Filed under tech#angularjs#javascript#software developmentMarkdown source

Unsurprisingly, In Flux

A Quick Look at the State of JS Frameworks in Early 2015

April 08, 2015 (updated August 28, 2015)Filed under tech#angularjs#emberjs#javascript#react#software developmentMarkdown source

The New Macbook

March 13, 2015Filed under techMarkdown source

The Tablet “Productivity” Problem

“Consumption”, Reading, Utilitarianism, and Human Flourishing

February 25, 2015Filed under techMarkdown source

Facebook's "Security" Requirements

No 2FA Unless You Let Us Track You

February 21, 2015Filed under techMarkdown source

Growing Up Together

Or: How I Learned to Stop Worrying and Love JavaScript

November 15, 2014Filed under tech#software developmentMarkdown source

A Ridiculous Situation

The craziest include structure I've ever seen.

November 07, 2014Filed under tech#software developmentMarkdown source

Nailed It

Marvel Actually Understands New Media

October 22, 2014Filed under techMarkdown source

The Next Generation of Version Control

October 16, 2014 (updated October 20, 2014)Filed under tech#software developmentMarkdown source

Pushing Into C's Corner Cases

August 12, 2014Filed under tech#software developmentMarkdown source

Don't Be Rude

Or: Why I Won't Be Upgrading to Billings Pro

July 12, 2014Filed under techMarkdown source

Goodbye, Notifications

Hello, Increased Focus

July 11, 2014Filed under techMarkdown source

Economies of Scale

July 11, 2014Filed under techMarkdown source

Bundling!

May 13, 2014Filed under techMarkdown source

iPad vs. Kindle

April 30, 2014Filed under techMarkdown source

A Little Crazy

April 29, 2014Filed under tech#software developmentMarkdown source

Learning QML, Part 1

April 11, 2014Filed under tech#software developmentMarkdown source

Feels Right

April 04, 2014Filed under tech#design#software developmentMarkdown source

FirebirdSQL and IntelliJ IDEA (etc.)

March 28, 2014Filed under tech#software developmentMarkdown source

The End of Surfing

March 26, 2014Filed under tech#design#software developmentMarkdown source

Doing It Myself

March 21, 2014Filed under tech#software developmentMarkdown source

Goodbye, Chrome

You're just too creepy now.

February 24, 2014Filed under techMarkdown source