Time and Relative Distance in Source (Code)

Reasoning about a program’s behavior is extremely tricky in the best of circumstances. When you throw in asynchronicity, it is the absolute worst. It’s like your code is trapped in a convoluted time travel movie. You want to perform some operation, but that requires stepping into a time portal and coming out at some indeterminate future date. Who knows what has changed since you’ve been gone? Add a few more asynchronous operations, and your code very quickly becomes a tangled mess of wibbly-wobbly, timey-wimey stuff. Read more on Time and Relative Distance in Source (Code)…

Hacking “Time Out” and Forcing Myself to Take a Break

I have a bad habit of banging my head against a problem instead of taking a step back to clear my thoughts. I’m a D on the DISC profile, and I blame that for my tendency to keep attacking a problem full-tilt rather than re-evaluating my approach.

Rationally, I’m well aware of the benefits of taking a break. But in the moment, I just want to keep going for that next dopamine kick that comes with each minor breakthrough. Never mind that if I took a break, I might see that my whole approach is flawed, because “slow is smooth, smooth is fast.” Or as I like to think of it, “slow is smart, smart is fast.”
Read more on Hacking “Time Out” and Forcing Myself to Take a Break…

run_me: Smart Selection of Command Line Tasks by File

Test-driven development (TDD) involves running automated tests. A lot. If you have a function with five tests, you might easily invoke your test runner 50 or even 100 times before all tests are passing. Any action we take that often is a natural candidate for automation. Read more on run_me: Smart Selection of Command Line Tasks by File…

Factory.ts: A Factory Generator for Test Data Using TypeScript

I’ve been using TypeScript on a React/Redux project, and I’m really enjoying it.

A year and a half ago, I tried to use TypeScript with an Angular project, and I found that it didn’t add that much. But with version 2.0 and on, TypeScript has really come into its own. Structural typing allows you to express concepts in TypeScript that I’ve never been able to express before. In particular, mapped types are just insanely useful.
Read more on Factory.ts: A Factory Generator for Test Data Using TypeScript…

How Rotating Your Team Members Improves Your Product and Developers

In life, change is inevitable. This is particularly true in the realm of software, for both technology and personnel. People may leave your team for a different team, or for a different company altogether, or new team members may be hired onto the team and need to learn the ropes. Read more on How Rotating Your Team Members Improves Your Product and Developers…

Making Ember Objects More Strict: Only Access Defined Properties

Ember.Object provides a flexible starting point for creating models in a single-page web application. It can hold simple data members, define computed properties that automatically update when dependencies change, run a callback when properties change, and extend parent “classes” to create new types with additional members.

That said, I think Ember can be a bit too flexible at times. Read more on Making Ember Objects More Strict: Only Access Defined Properties…