1. API Schema Showdown! Part 1: REST

    code api

    Software running on a single device is almost always only the tip of an iceberg: it usually communicates with other software by the use of APIs (Application Programming Interfaces). There are an infinite number of ways to structure data when software communicates, but some conventions have developed over time in order to rein in the chaos of every programming interface implementing its own protocol. This post launches a series examining various conventions to structure APIs.

    More →
  2. Probing the Fermi Paradox

    essay

    The Fermi Paradox refers to the contradiction between the lack of strong evidence for extraterrestrial aliens and the high probability that they exist. Or, as Enrico Fermi himself put it, "Where is everybody?" There are many resolutions to this Paradox, but in this essay I explore one of my favorite: that aliens exist and are all around us, but that we humans do not recognize them for what they are. Working backwards from assuming this as true, what does it imply about us and our understanding of the Universe? I do not necessarily advocate for this idea as true, but I find it an intriguing thought experiment to explore the contours of our human perceptual and conceptual limits.

    More →
  3. Rolling into Probability - Part 1

    math

    There are 6 ways of rolling the sum of 7 with two dice. Is there a mathematical formula that will tell us this probability directly? This series attempts to discover one.

    More →
  4. Reading the Manual

    tech

    It took me way too long in my career to understand this, but reading the manual is a relatively easy way to boost programming super-powers.

    More →
  5. Quest Driven Development

    ideas tech QDD

    Quest Driven Development is an expressive approach to writing game stories and interactive fiction that leaves coding and implementation to software, so writers can focus on narrative and world-building. This approach can highlight inconsistencies or problems as potentially clashing narrative branches are woven together, allowing a writer to correct errors or inconsistencies as they go.

    More →
  6. Twitter 'Likes' Hider

    tech code

    I like Twitter. For the most part. I like that there is immediate access to information, thoughts and musings from around the world, from everyday individuals. I dislike that mobs attack and bully individuals on Twitter, and while I am certain that Twitter as an organization abhors this, I believe that it is an inevitable result of deliberate design decisions.

    More →
  7. Lazy Sunday Musings

    finnish meta tech

    In which your humble author muses on due diligence, translates a Tweet, learns about the best-selling Finnish band of all time, and mentions a fellow Finnish-language-learner

    More →
  8. My Finland, My Blog

    finland meta

    I have lived now in Finland for nearly 7-and-a-half years! That's a long time. Longer than I expected when I arrived here from New York City. It's probably time to admit to myself that I'm not going anywhere.

    More →
  9. Thoughts on Technical Interviews and Challenges

    tech recruiting

    A technical interview can be a learning experience for all, or it can be a grim, soul-sucking grind. The first path will lead to an effective team, and the second will lead to a dysfunctional team; this is an exorable, near-mathematical inevitability. Think deeply about how your interview process will lead to the team your company deserves.

    More →
  10. How to webfont

    code web

    This is a quick guide to get a webfont into your website with some attention to web performance and is intended as a starting point for small sites that will write in a Latin alphabet. At the end of the post are some resources for further optimizations, if you choose.

    More →
  11. Class notes: Mastering Git

    code git

    These are my class notes to Paolo Perrotta's excellent and entertaining video course Mastering Git, comprising 8 videos of 2 hours 45 minutes total. I recently took up the Microsoft Dev Collective's offer for a 30-day free trial of Pluralsight and this was one of several that I enjoyed. I highly recommend this course if you are familiar with git, but even a little unclear on how git works. Especially if, like me, you use the same git commands every day with only a vague notion of what they do. Signore Perrotta explains everything brilliantly.

    More →
  12. Happy Holidays

    meta

    Happy Holidays, everyone. I just launched this blog right into the holiday season, and so start with a gap! I hope your holidays are going well.

    More →
  13. Database vocabulary: ACID

    database glossary tech

    Databases are often described in terms of their ACID properties (e.g. "eventual consistency"), so knowing the vocabulary is useful when considering a database solution. Some contemporary database management systems intentionally disregard ACID properties in a tradeoff for other gains.

    More →