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 09, 2016)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, 2016Filed 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 (`enum`s) and more on pattern matching

November 09, 2015 (updated January 02, 2016)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 tradeoffs, highlighted by string manipulation.

September 10, 2015Filed 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 March 12, 2016)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 March 12, 2016)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 September 07, 2015)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