Genuary 2021 – I didn't participate in Genuary this year, but I did put together a few sketches inspired by the prompts.
Art, Generative, Genuary, Javascript
Feb 18, 2021

The Long and Short Case for Elixir – I recently landed a new client and convinced them that using Elixir for their greenfield project was in their bet interest. Here's the reasoning I used.
Elixir
Feb 12, 2021

MongoDB Lookup Aggregation – In which a reader and I work together to write a MongoDB aggregation pipeline to reconstruct a tree, where each level of the tree is stored in separate collections.
Correspondence, Javascript, MongoDB
Dec 26, 2020

On This Day I'm Officially a Father – 🥳
Announcement
Aug 14, 2020

Now You're Thinking with Arrays – The road to enlightenment is paved with verbs that calculate the discrete derivative of an array of integers. Or something like that...
J, Math
Aug 8, 2020

Descending Dungeon Numbers in J – Neil Sloane of the On-Line Encyclopedia of Integer Sequences is featured in another Numberphile video this week. Let's use the J programming language to model the sequence and try to answer a few questions about it.
J, Math, Numberphile
Aug 2, 2020

The Progression That Led Me to Build Glorious Voice Leader – This straight forward chord progression completely changed how I approach playing the guitar, and inspired me to pour hundreds of hours into building Glorious Voice Leader.
Jul 21, 2020

Suggesting Chord Names with Glorious Voice Leader – Glorious Voice Leader now has the ability to display suggestions for chord names that exactly match the notes entered on the fretboard. Try it out with the simplified demo that's been embedded in this post.
Jul 13, 2020

Recursive Roguelike Tiles – Let's dig deeper into the dungeon we generated last time and start adding grass and flowers. Recursive grids of tiles and cellular automata abound!
Canvas, Gamedev, Javascript, React, Roguelike
Jul 3, 2020

Hello Roguelike – Let's take a breather and use a random walk algorithm to generate a roguelike-style dunegon in the browser.
Canvas, Gamedev, Javascript, React, Roguelike
Jul 1, 2020

Adding More Chords to Glorious Voice Leader – Algorithmically generating "all possible" chord qualities is a surprisingly complex task. Read about how I took a hybrid approach to account for the ambiguities and asymmetries of how humans name chords.
May 14, 2020

Guitar Chord Voicings with Prolog – Prolog is a language that excels at defining and exploring relationships. Let's take advantage of that and use Prolog to explore a few of the myriad of relationships that exist between chords and the guitar's fretboard.
Music, Prolog
Apr 21, 2020

Clapping Music with TidalCycles – Let's use TidalCycles to recreate Steve Reich's "Clapping Music", and hopefully learn a thing or two along the way.
Music, Tidal
Apr 16, 2020

Wolfram Style Cellular Automata with Vim Macros – Let's use substitutions and recursive macros to generate Wolfram-style cellular automata entirely within Vim. Why? Because it's Friday.
Cellular Automata, Math, Vim
Apr 3, 2020

Glorious Voice Leader Reborn – I recently finished a major visual overhaul of my current pet project, Glorious Voice Leader. The redesign was primarily intended to give musicians a (hopefully) more natural interface for working with the tool.
Mar 27, 2020

Lissajous Curves – A YouTube mathematician drew me into the beautiful rabbit hole of Lissajous curves. To satisfy my curiosity, I wrote a quick React application that renders a grid of Lissajous curves to an HTML5 canvas.
Canvas, Javascript, Math, React
Mar 16, 2020

Querying for MongoDB Documents Where Every Sub-document Matches a Pattern – Recently I found myself tasked with removing documents from a MongoDB collection that had an array of sub-documents entirely matching a pattern. The final solution required I flip my perspective on the problem entirely.
Javascript, MongoDB
Mar 10, 2020

MongoDB Object Array Lookup Aggregation – It turns out looking up documents who's ID exists as a field on an object in an array is no easy task for MongoDB. Come with me on a journey as we delve into a six stage aggregation pipeline that does just that.
Javascript, MongoDB
Jan 29, 2020

Timing Streams in Node.js – I've been tasked with speeding up a Node.js stream-based pipeline. The first step of making something faster is figuring out how slow it is. Check out this small helper function I wrote to do just that!
Javascript, Streams
Jan 11, 2020

Random Seeds, Lodash, and ES6 Imports – Generating a stream of consistently random values can be incredibly important in some situations, but it can also be tricky to achieve. Check out how we can take advantage of ES6 imports to ensure consistent randomness from external libraries, like Lodash.
Generative, Javascript, Lodash
Jan 1, 2020

Count the Divisible Numbers – Counting the numbers divisible by some number within a range is a fairly simple challenge, but I decided to use this code kata as an opportunity to practice property-based testing. The results were a constant time solution that I'm very happy with!
Codewars, Javascript, Kata, Testing
Nov 25, 2019

Setting Apollo Context from HTTP Headers in a Meteor Application – Meteor's Apollo integration exists in a strange, undocumented state. I recently found myself digging into the package's code to accomplish a seemingly simple task.
Apollo, GraphQL, Javascript, Meteor
Nov 13, 2019

The Collatz Sequence in J – Let's use the J programming langauge to implement the Collatz sequence! Ties and agenda abound.
Coding Train, J
Nov 6, 2019

Rendering a React Application Across Multiple Containers – Lately I've been embedding React applications into existing static pages, and I've had the need to render single applications across multiple containers.
Javascript, React
Oct 14, 2019

Generating Guitar Chords with Cartesian Products – Cartesian products are an algorithmic superpower. Check out how we can use them to quickly and easily generate all possible guitar chords across the fretboard.
Javascript, Music
Oct 7, 2019

Animating a Canvas with Phoenix LiveView: An Update – Things are moving fast in the LiveView world. If you're using LiveView to animate an HTML5 canvas, like we did last month, you'll want to read about this breaking change and its corresponding workaround.
Elixir, LiveView, Phoenix
Oct 1, 2019

All Hail Glorious Voice Leader! – I'm excited to announce the newest addition to my chord-generating family of programs: Glorious Voice Leader! Check out this example of what it's made to do.
Sep 30, 2019

Apollo Quirks: Polling After Refetching with New Variables – Apollo doesn't come without its quirks. Let's dig into what happens when you try to mix a poll interval and a refetch on a single Apollo query.
Apollo, GraphQL, Javascript
Sep 23, 2019

Elixir Style Conditions in Javascript – With a small perspective shift, we can write Elixir-style conditions in languages like Javascript that only support switch statements.
Elixir, Javascript
Sep 16, 2019

Obverse and Under – Have you ever thought of JSON parsing and serialization as a domain transformation? If not, forcibly expand your brain a bit with this overview of J's concept of "obverse" verbs and the "under" conjunction.
J
Sep 13, 2019

Animating a Canvas with Phoenix LiveView – LiveView's new hook functinality has opened the doors to a whole new world of possibilities. Get a taste of what's possible by checking out how we can animate an HTML5 canvas based on real-time data provided by the server.
Elixir, LiveView, Phoenix
Sep 2, 2019

Prime Parallelograms – In this follow-up to our previous post on plotting a number series from a Numberphile video, we use J to plot an interesting series involving primes, base two representations, and parallelograms.
J, Math, Numberphile
Aug 26, 2019

TIL About Node.js' REPL Module – Today I learned that Node.js ships, out of the box, with a fully functional REPL module that can easily be added to any process. This is a game changer for me when it comes to local development.
Javascript, Node.js
Aug 20, 2019

Animating a Canvas with React Hooks – The new React hooks API gives us a really slick way of introducing side effects into our pure, functional components. Let's use that to interact with and animate an HTML5 cavnas.
Canvas, Javascript, React
Aug 19, 2019

Fly Straight, Dammit! – Let's use the J programming language to implement and plot an interesting function that was featured on a recent Numberphile video. Memoization and agenda-based conditionals abound!
J, Math, Numberphile
Aug 12, 2019

Embedding React Components in Jekyll Posts – In my last post I embedded several React-based examples directly into my Jekyll-generated article. Let's dig into how I accomplished that and how you can embed React components into your own Jekyll pages.
Javascript, Jekyll, React
Aug 5, 2019

Clipping Convex Hulls with Thi.ng! – I recently discovered Thi.ng, a set of computational design tools created by the Clojure and Clojurescript community, and it helped me traverse my way through a sea of points and polygons. Check out how we can use the tools to generate convex hulls, clip polygons, and calculate polygon areas.
Geometry, Javascript, Thi.ng
Jul 29, 2019

The Many Ways to Define Verbs in J – Let's explore the various ways of defining verbs in the J programming language while implementing Euler's Gradus Suavitatis function.
J
Jul 9, 2019

Building My Own Spacemacs – I've decided to ditch Spacemacs in favor of maintaining my own custom Emacs configuration. I couldn't be happier with the result.
Emacs
Jul 1, 2019

How I Actually Wrote My First Ebook – It turns out that the process of turning words into a well-formatted, distributable ebook is much more complicated that it seems. Here's how I managed.
Secure Meteor, Writing
May 27, 2019

Minimum Viable Phoenix – Let's walk through the process of building a dead simple Phoenix application from the ground up.
Elixir, Literate Commits, Phoenix
May 20, 2019

Is My Apollo Client Connected to the Server? – It turns out that the problem of detecting server connectivity is more complicated than it first seems in the current state of Apollo.
Apollo, GraphQL, Javascript
May 13, 2019

Generating Realistic Pseudonyms with Faker.js and Deterministic Seeds – Let's build on the "demo mode" we added to our application in the last article and breath some life into the pseudonyms generated for our application's users.
Javascript, Mongoose, Node.js
Apr 29, 2019

Anonymizing GraphQL Resolvers with Decorators – The structure and modular nature of GraphQL resolvers lets us do some amazing things. Check out how we can recursively apply decorators to our resolver tree to elegantly build a "demo mode" into our application.
GraphQL, Javascript, Mongoose, Node.js
Apr 22, 2019

FizzBuzz is Just a Three Against Five Polyrhythm – Sometimes the lines blur between band practice and programming practice. It turns out that the classic FizzBuzz problem is just a three against five polyrhythm.
Javascript, Music
Apr 8, 2019

Bending Jest to Our Will: Restoring Node's Require Behavior – Jest overrides the behavior of Node's require behavior to support concurrent testing and better test isolation. But what if we don't want that?
Javascript, Jest, Testing
Mar 25, 2019

A Better Mandelbrot Iterator in J – There are times you come back to a problem and realize that a much simpler solution exists. This is one of those times.
Fractals, J, Programming Languages
Mar 18, 2019

Secure Meteor is Live – Secure Meteor is live and available for purchase. Be sure to check it out if you're a Meteor developer or application owner!
Announcement, Meteor, Secure Meteor, Security
Mar 4, 2019

Secure Meteor Releasing Next Week! – While I haven't been iterating publicly, I've been doing lots of work in the new year.
Meteor, Secure Meteor, Security
Feb 25, 2019

Advent of Code: Subterranean Sustainability – Day twelve of 2018's Advent of Code challenge. Pots, plants, and cellular autamata, oh my!
Dec 20, 2018

Optional Notes and Exact Pitches in Chord – My main goal with the Chord project is to model lead sheets. Let's move one step closer to that goal and add support for generating chords with optional notes and exact pitches.
Chord, Elixir, Music
Dec 17, 2018

Advent of Code: Marble Mania – Day ten of 2018's Advent of Code challenge. Let's build a circular, doubly linked list using the J programming language.
Dec 14, 2018

Advent of Code: Chronal Charge – Day eleven of 2018's Advent of Code challenge. Using an Elixir-inspired verb to generate sub-grids in J.
Dec 14, 2018

Advent of Code: The Stars Align – Day ten of 2018's Advent of Code challenge. Converging on hidden messages using the J programming language.
Dec 13, 2018

Advent of Code: Memory Maneuver – Day eight of 2018's Advent of Code challenge. We can plant a house, and we can build a tree.
Dec 8, 2018

Advent of Code: The Sum of Its Parts – Day seven of 2018's Advent of Code challenge. In which we use J to navigate a directed graph.
Dec 7, 2018

Advent of Code: Chronal Coordinates – Day six of 2018's Advent of Code challenge. Let's use J to build a Manhattan distance-based Voronoi diagram!
Dec 6, 2018

Advent of Code: Alchemical Reduction – Day five of 2018's Advent of Code challenge. Let's use J to reduce polymer strings!
Dec 5, 2018

Advent of Code: Repose Record – Day four of 2018's Advent of Code challenge. Warning: string processing be here.
Dec 4, 2018

Allow Yourself to do Things Poorly – Giving yourself permission to do things poorly can be liberating. Forgiving yourself for hacking together code is sometimes a prerequisite for productivity.
Meta, Music
Dec 3, 2018

Advent of Code: No Matter How You Slice It – Day three of 2018's Advent of Code challenge. Let's use J matricies to model rectangular intersections.
Dec 3, 2018

Advent of Code: Inventory Management System – Day two of 2018's Advent of Code challenge. Let's use J to count occurances of letters in a string.
Dec 2, 2018

Advent of Code: Chronal Calibration – Day one of 2018's Advent of Code challenge. Let's use J to process a repeating sequence of changes.
Dec 1, 2018

Elixir Mix – I was lucky enough to have the opportunity to appear on the Elixir Mix podcast. Check it out!
Elixir, Podcast
Nov 19, 2018

Property Testing a Permutation Generator – Permutations have some nice, intrinsic properties that lend themselves well to property testing.
Elixir, Testing
Nov 19, 2018

Permutations With and Without Repetition in Elixir – Let's get back to basics for a minute and use Elixir to write a function that will compute all possible permutations of a given list of elements.
Elixir
Nov 12, 2018

Bending Jest to Our Will: Caching Modules Across Tests – I recently had to go trudging through the weeds in an effort to make my test suite pass more reliably. It turns out that loading a module once in Jest is extremely difficult.
Javascript, Jest, Testing
Nov 5, 2018

Rendering ASCII Chord Charts with React – It's time to move our Chord project to the web. Let's use React to generate ASCII-based guitar chord charts.
Chord, Javascript, Music
Oct 8, 2018

Snapshot Testing GraphQL Queries – Snapshot testing is a breath of fresh air, especially when combined with testing GraphQL endpoints.
GraphQL, Javascript, Testing
Oct 1, 2018

Living the Simple Life with Recursive Parsing and Serialization – I've been working on a refactor of my Elixir-powered Bitcoin full node for weeks now. Let's dive into the solution I landed on.
Bitcoin, Elixir
Sep 24, 2018

Minimal Coding with Spacemacs and Olivetti – Less is more when it comes to your code editor. Check out how I used Olivetti to configure a visually minimal Spacemacs setup.
Emacs
Sep 10, 2018

Using Facades to Simplify Elixir Modules – Let's use facades to separate our module's interface from our implementation, simplifying our overall application!
Chord, Elixir
Sep 3, 2018

Computing Fingering Distance with Dr. Levenshtein – In this article I get by with a little help from my friend, Vladimir Levenshtein, and algorithmically compute the fingering distance between two guitar chords.
Chord, Elixir, Music
Aug 27, 2018

Coffee, Tea, and Theanine – What's your relationship with caffeine, coffee, and tea like?
Caffeine, Routine
Aug 20, 2018

Algorithmically Fingering Guitar Chords with Elixir – Let's use Elixir and a sieving algorithm to recursively generate all possible fingerings for a given guitar chord voicing.
Chord, Elixir, Music
Aug 13, 2018

Voice Leading with Elixir – Let's harness the power of Elixir to programatically generate optimal chord progressions and voice leading for guitar!
Chord, Elixir, Music
Jul 30, 2018

Building a Better Receive Loop – Taking advantage of structural decisions in the Bitcoin protocol can greatly simplify our receive loop. Check out how!
Bitcoin, Elixir
Jul 23, 2018

Golfing for FizzBuzz in Clojure and Elixir – Let's take a look at an interesting Clojure-based solution to the FizzBuzz problem and see if we can eloquently restate it using Elixir.
Clojure, Elixir
Jul 9, 2018

Ping, Pong, and Unresponsive Bitcoin Nodes – The last step in maintaining our pool of Bitcoin peer nodes is to detect and remove unresponsive nodes from our network.
Bitcoin, Elixir
Jul 9, 2018

Making Noise with J – Let's try to make music with the J programming language and a handful of other helpful tools and utilities.
J, Music
Jul 2, 2018

Limiting Peers with DynamicSupervisor Options – We can simplify our Bitcoin node's peer management code by letting Elixir do the heavy lifting for us! Let's dive into the `:max_children`{:.language-elixir} option and see how it can help us.
Bitcoin, Elixir
Jun 18, 2018

Generating Test Fixtures with Wireshark – Wireshark can be an invaluable tool for testing the parsing and serializing of a well-known binary protocol. Check out how we can use binary fixtures exported from Wireshark to test our Elixir-based Bitcoin protocol parser and serializer.
Bitcoin, Elixir, Testing
Jun 11, 2018

Be Careful Using With in Tests – Elixir's 'with' special form is a fantastic tool, but be careful using it in tests. Read all about how my incorrect usage of 'with' lead to a false positive in my test suite!
Elixir, Testing
Jun 4, 2018

Modeling Formulas with Recursive Discriminators – I ran into an interesting problem recently where I needed to model a nested set of either/or sub-schemas. With some creative thinking and a healthy dose of recursion, Mongoose's discriminator feature turned out to be just the tool for the job.
Javascript, MongoDB
May 28, 2018

Spreading Through the Bitcoin Network – Let's replace our Bitcoin node's supervisor with a dynamic supervisor and start recursively spreading through the Bitcoin peer-to-peer network!
Bitcoin, Elixir
May 21, 2018

Beefing Up our Bitcoin Node with Connection – Let's beef up the resiliency of our Elixir-based Bitcoin node by incorporating some connection retry behavior.
Bitcoin, Elixir
May 14, 2018

Reversing BIP-39 and the Power of Property Testing – In which an attempt to reverse the BIP-39 encoding algorithm sends me down a debugging rabbit hole, and the power of property testing shows me the light.
Bitcoin, Elixir
May 7, 2018

Visualizing the Oplog with Splunk – In an attempt to track down the cause of a mysterious spike in CPU consumption in a Meteor application, I decided to plot a time series chart of Mongo's Oplog collection.
Meteor, Splunk
Apr 30, 2018

Connecting an Elixir Node to the Bitcoin Network – Let's use the tools provided by the Elixir programming language to connect to a node on Bitcoin's peer-to-peer ad-hoc network. Hello, Bitcoin!
Bitcoin, Elixir
Apr 23, 2018

Writing Mandelbrot Fractals with Hooks and Forks – J's hooks and forks allow us to write solutions to problems exactly as we'd express them using the English language. Let's demonstrate by rendering a Mandelbrot fractal!
Fractals, J, Programming Languages
Apr 16, 2018

Hex Dumping with Elixir – Is it better to call out to an existing external tool, or roll your own solution to a problem? Climb down this rabbit hole with me as we implement a hex dump utility in Elixir.
Bitcoin, Elixir
Apr 9, 2018

Shutting Down and Open Sourcing Inject Detect – It's with a heavy heart that I'm announcing that my security-focused SaaS application, Inject Detect, is shutting down.
Announcement, Elixir, Inject Detect, Meteor, Security
Apr 2, 2018

Building Mixed Endian Binaries with Elixir – Working with mixed-endian binaries is something we rarely have to think about as web developers. When it does come up, Elixir thankfully ships with the perfect tools for the job.
Bitcoin, Elixir
Mar 19, 2018

J's Low-level Obfuscation Leads to Higher Levels of Clarity – It's argued that J is a "write-only" programming language because of its extreme terseness and complexity of syntax. I'm starting to warm up the the idea that it might be more readable than it first lets on.
J, Programming Languages
Mar 19, 2018

The Headache and Heartache of Unhandled Rejections – Out of the box, Node.js doesn't do much to deal with unhandled promise rejections. This can lead to a world of hurt when trying to debug these rejections in your application. Thankfully, we have the tools to fix the problem!
Javascript, Node.js
Mar 12, 2018

Mining for Mnemonic Haiku with Elixir – What are some interesting things we can do with the BIP-39 mnemonic generator we built in a previous article? How about mine for structurally sound mnemonic haiku?!
Bitcoin, Elixir, Mastering Bitcoin
Mar 5, 2018

Fear is the Mind Killer – I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration.
Writing
Feb 26, 2018

From Bytes to Mnemonic using Elixir – Bitcoin's BIP-39 is a clever algorithm for transforming random binaries into easy to remember mnemonics. Let's flex our programming muscles and implement it using Elixir!
Bitcoin, Elixir, Mastering Bitcoin
Feb 19, 2018

Property Testing our Base58Check Encoder with an External Oracle – Property-based testing is an amazingly powerful tool to add to your testing toolbox. Check out how we can use it to verify the correctness of our Base58Check encoder against an external oracle.
Bitcoin, Elixir, Mastering Bitcoin
Feb 12, 2018

Mining for Bitcoin Vanity Addresses with Elixir – In this article we'll our Bitcoin private key generator to mine for vanity addresses. Once we've built our naive solution, we'll add a drop of Elixir and parallelize the implementation.
Bitcoin, Elixir, Mastering Bitcoin
Feb 5, 2018

Hacking Prototypal Inheritance for Fun and Profit – Abuse of prototypal inheritance can allow attackers to exploit your application in various ways. Learn what to watch out for, and how to prevent vulnerabilities.
Javascript, Meteor, Security
Jan 29, 2018

Generating Bitcoin Private Keys and Public Addresses with Elixir – Elixir ships with the tools required to generate a cryptographically secure private key and transform it into a public address. Check out this step-by-step walkthrough.
Bitcoin, Elixir, Mastering Bitcoin
Jan 22, 2018

Secure Meteor – I'm announcing a new project: Secure Meteor! Learn to how to secure your Meteor application from a Meteor security professional. This easy to understand and actionable guide will teach you the ins and outs of Meteor security.
Announcement, Meteor, Secure Meteor, Security
Jan 15, 2018

Bitcoin's Base58Check in Pure Elixir – Elixir ships out of the box with nearly all of the tools required to generate Bitcoin private keys and transform them into public addresses. All except one. In this article we implement the missing piece of the puzzle: Base58Check encoding.
Bitcoin, Elixir, Mastering Bitcoin
Jan 8, 2018

Things I Learned During the Advent of Code – This year's Advent of Code has come and gone. I had a lot of fun solving each of this year's challenges with Elixir.
Jan 1, 2018

Do you know that a man is not dead while his name is still spoken? – I've decided to move away from the East5th name and start publishing everything I do under my name: Pete Corey.
Books, Elixir, Phoenix
Dec 25, 2017

Let's Get Personal – I've decided to move away from the East5th name and start publishing everything I do under my name: Pete Corey.
Announcement, Meta
Dec 18, 2017

Generating Sequences with Elixir Streams – Elixir streams can be amazingly useful tools for generating potentially infinite sequences of data. Learn about three useful stream functions that can be used to generate complex enumerable sequences.
Dec 11, 2017

Fleshing out URLs with Elixir – Step one of crawling a web page is getting a fully fleshed out URL pointing to that page. Unfortunately, people usually think of URLs in fuzzy, incomplete terms. Thankfully, fleshing out the missing details is simple with Elixir.
Affiliate Crawler, Elixir, Web Crawling
Dec 11, 2017

Crawling for Cash with Affiliate Crawler – I've created a new tool called Affiliate Crawler that's designed to crawl through your written web content, looking for affiliate and referral marketing opportunities.
Affiliate Crawler, Announcement, Elixir, Tools, Web Crawling
Nov 20, 2017

Being John Malkovich on Twitter – I've created a script that injects a healthy dose of empathy injected into your Twitter experience. Experience what it's like being John Malkovich on Twitter.
Experiments, Javascript
Nov 13, 2017

Rum Boogie Café – Character encodings have long been the bane of software developers. Read about the lengths I recently went to in order to debug a character encoding issue.
Debugging, Javascript, Node.js
Nov 6, 2017

Grokking the Y Combinator with Elixir – The Y combinator is something to be marveled over. Dive into this amazing contraption with me as we build it from the ground up with simple Elixir anonymous functions.
Books, Computer Science, Elixir
Oct 30, 2017

Formatting with Vim Scripts – Vim has become the cornerstone of my day-to-day work as a software developer. Check out how I use Vim scripts to format articles and posts.
Literate Commits, Markdown, Vim
Oct 16, 2017

Learning to Crawl - Building a Bare Bones Web Crawler with Elixir – Roll up your sleaves and get ready to build a fully function (but feature limited) web crawler using Elixir.
Affiliate Crawler, Elixir, Web Crawling
Oct 9, 2017

User Authentication Kata with Elixir and Phoenix – Practical code katas are a tool to practice valuable web development skills in an applicable way. Start practicing with this user authentication kata.
Authentication, Elixir, Katas, Phoenix
Oct 2, 2017

Using GraphQL Schema Types with Apollo Server – It can be difficult using raw GraphQL schema types in conjection with Apollo's server-side tools. This article digs into the pros and cons of a potential solution.
Apollo, GraphQL, Javascript, MongoDB, Mongoose, Node.js
Sep 25, 2017

Exploring the Bitcoin Blockchain with Elixir and Phoenix – Let's use the Phoenix framework and our Bitcoin node interface to build a basic Bitcoin blockchain explorer!
Bitcoin, Blockchain, Elixir, Phoenix
Sep 18, 2017

Inject Detect is Live! – Inject Detect, a tool designed to detect NoSQL Injection attacks as they happen, has been released!
Announcement, Inject Detect, Javascript, Meteor, MongoDB, NoSQL Injection, Security
Sep 11, 2017

Controlling a Bitcoin Node with Elixir – Explore how to communicate with a Bitcoin full node through its JSON-RPC interface from an Elixir application.
Bitcoin, Blockchain, Elixir, Mastering Bitcoin
Sep 4, 2017

Inject Detect is Launching Soon – It's been a long, tumultuous road building Inject Detect, but the end is in sight; Inject Detect is launching soon!
Inject Detect, Meteor, MongoDB, NoSQL Injection, Security
Aug 28, 2017

Advanced MongoDB Query Batching with DataLoader and Sift – DataLoader and Sift.js are a powerful duo when it comes to implementing advanced caching strategies for your GraphQL queries.
GraphQL, Javascript, MongoDB, Node.js
Aug 21, 2017

Batching GraphQL Queries with DataLoader – Learn how to avoid the dreaded N+1 problem and optimize your GraphQL queries with DataLoader and MongoDB.
Apollo, GraphQL, Javascript, MongoDB, Node.js
Aug 14, 2017

What if Elixir were Homoiconic? – Despite what some people say, Elixir is not a homoiconic language. This articles explores what the language would look like if it were.
Computer Science, Elixir
Aug 7, 2017

Offline GraphQL Mutations with Redux Offline and Apollo – Use Redux Offline and Redux Persist to add support for offline mutations to your Apollo and GraphQL-based front-end application.
Apollo, GraphQL, Javascript, Offline
Jul 31, 2017

Offline GraphQL Queries with Redux Offline and Apollo – Use Redux Offline and Redux Persist to add support for offline queries to your Apollo and GraphQL-based front-end application.
Apollo, GraphQL, Javascript, Offline
Jul 24, 2017

Recurring Tasks in Elixir – Today we're digging into the details of how to program recurring tasks in Elixir using GenServers. Behold the Fruit Printer 🍉.
Elixir
Jul 17, 2017

Detecting NoSQL Injection – Check out how Inject Detect uses the structures of the MongoDB queries made by your application to detect NoSQL Injection attacks as they happen.
Inject Detect, Meteor, MongoDB, NoSQL Injection, Security
Jul 10, 2017

What is NoSQL Injection? – NoSQL Injection is an attack that can be leveraged to gain complete control over the queries run against your database. Inject Detect aims to prevent it.
Inject Detect, Meteor, MongoDB, NoSQL Injection, Security
Jul 3, 2017

Distributed Systems Are Hard – Distributed systems are incredibly difficult to build and even more difficult to build correctly. Let's explore some common pitfalls of common scaling practices.
Computer Science, Elixir, Javascript, Node.js
Jun 26, 2017

GenServers and Memory Images: A Match Made in Heaven – Elixir's GenServers are the perfect tool for implementing Memory Images — a powerful replacement for storing state in conventional databases.
Elixir, Event Sourcing, Inject Detect
Jun 19, 2017

GraphQL NoSQL Injection Through JSON Types – GraphQL servers are not safe from the threat of NoSQL Injection attacks. This article explores how unchecked JSON types can be exploited by malicious users.
GraphQL, Inject Detect, Meteor, MongoDB, NoSQL Injection, Security
Jun 12, 2017

Behold the Power of GraphQL – The ability to seamlessly spread your data across many different data stores is a game-changing and under-explored feature of GraphQL.
GraphQL, Inject Detect, Javascript, Node.js, Stripe
Jun 5, 2017

Have You Tried Just Using a Function? – This articles how refacting a complex set of GenServers and Supervisors into simple functions saved me quite a bit of frustration and opened the doors to new functionality.
Elixir, Event Sourcing
May 29, 2017

NoSQL Injection in Kadira – I discovered and disclosed a NoSQL Injection vulnerability in the open-sourced Kadira project. Let's disect it and see how it could have been prevented.
Inject Detect, Meteor, MongoDB, NoSQL Injection, Security
May 22, 2017

GraphQL Authentication with Apollo and React – Let's build out the front-end authentication functionality of a React, and Apollo, and Absinthe-powered Elixir application.
Absinthe, Apollo, Authentication, Elixir, GraphQL, Phoenix
May 15, 2017

GraphQL Authentication with Elixir and Absinthe – Let's build out the back-end authentication functionality of an Absinthe-powered Elixir and Phoenix application.
Absinthe, Authentication, Elixir, GraphQL, Phoenix
May 8, 2017

Inject Detect Progress Report – Peek into the inner workings of Inject Detect, an Elixir and React-powered security SaaS application, in this progress report.
Elixir, Event Sourcing, Inject Detect
May 1, 2017

Passwordless Authentication with Phoenix Tokens – Passwordless authentication is a powerful new paradigm for authentication workflows. Learn how to implement passwordless in an Elixir and Phoenix application.
Apr 24, 2017

Who Needs Lodash When You Have Elixir? – Watch how Elixir's standard library outclasses Javascript's Lodash in day-to-day tasks.
Elixir, Javascript
Apr 17, 2017

Using Apollo Client with Elixir's Absinthe – Apollo client seamlessly integrates with Elixir's Absinthe framework to create an unbelievable powerful GraphQL stack with minimal fuss.
Absinthe, Apollo, Elixir, GraphQL, Phoenix
Apr 10, 2017

Using Create React App with Phoenix – Skip brunch today and use Create React App to lay the foundation for the front-end of your next Elixir and Phoenix project.
Elixir, Phoenix, React
Apr 3, 2017

Intercepting All Queries in a Meteor Application – Find out how to write a Meteor package to interecept all queries sent to MongoDB using a technique called monkey patching.
Inject Detect, Javascript, Meteor, MongoDB, Monkey Patching
Mar 27, 2017

How am I Building Inject Detect? – Here's a high-level architectural and technilogical outline for how I plan to build out the Inject Detect application.
Elixir, Inject Detect, MongoDB
Mar 20, 2017

Why Security? – Why should we, as software developers, be concerned about the security of the software they write? Because everything we do depends on it.
Inject Detect, Process, Security
Mar 13, 2017

Inject Detect - Coming Soon! – I've decided to put my knowledge into practice and build an application called Inject Detect to detect NoSQL Injection attacks as they happen.
Inject Detect, NoSQL Injection, Security
Mar 6, 2017

My Favorite Pattern Revisited – Elixir's 'with' special form is a powerful tool that can lead to some elegant patterns in your code. Let's look at a few examples.
Elixir
Feb 27, 2017

Rendering Life on a Canvas with Phoenix Channels – Watch Conway's Game of Life come to life on an HTML5 canvas using an Elixir umbrella application and Phoenix channels.
Channels, Channels, Elixir, Experiments, Game of Life, Phoenix
Feb 20, 2017

Build Your Own Code Poster with Elixir – I used Elixir to merge together a client's logo with the code we'd worked together to develop. The result was a beautiful code poster and this open source Elixir project.
Elixir, Experiments
Feb 13, 2017

Playing the Game of Life with Elixir Processes – Explore the concept of life and death with Elixir processes by implementing Conway's Game of Life where each cell is a living Elixir process.
Elixir, Experiments, Game of Life
Feb 6, 2017

My Favorite Pattern Without a Name – I've been notice a recurring pattern in modern open source projects and even my own Elixir code, but strangely, this pattern doesn't seem to have a name.
Elixir
Jan 30, 2017

Upgrade Releases With Edeliver – Edeliver simplifies the process of building and deploying upgrade releases for your Elixir and Phoenix applications.
Deployment, Elixir, Phoenix
Jan 23, 2017

Simplifying Elixir Releases With Edeliver – Edeliver simplifies the process of building and deploying standard releases for your Elixir and Phoenix applications.
Deployment, Elixir, Phoenix
Jan 16, 2017

Upgrade Releases With Distillery – Use Distillery to build and deploy hot-upgrades to your Elixir and Phoenix applications through the process of upgrade releases.
Deployment, Elixir, Phoenix
Jan 9, 2017

Deploying Elixir Applications with Distillery – Use Distillery to build and deploy your Elixir and Phoenix applications.
Deployment, Elixir, Phoenix
Dec 26, 2016

Intentionally Learning Elixir – How I've fast-tracked my absorption of Elixir through intentional learning.
Books, Elixir
Dec 19, 2016

How to use MongoDB With Elixir - Revisited – A recent upgrade to Elixir's MongoDB package requires that we revisit how we interact with the database through Elixir.
Elixir, MongoDB
Dec 5, 2016

Using Apollo Client with Elixir's Absinthe – Explore how Elixir's Absinthe GraphQL library can be used to fuel a front-end application built around Apollo Client.
Absinthe, Apollo, Elixir, GraphQL
Nov 21, 2016

Phoenix Todos - Public and Private Lists – Part eleven of our 'Phoenix Todos' Literate Commits series. Implementing public and private lists.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Nov 16, 2016

Basic Meteor Authentication in Phoenix – Learn how to use the front-end portion of Meteor's accounts and authentication system with an Elixir and Phoenix backend.
Authentication, Elixir, Meteor, Phoenix
Nov 14, 2016

Phoenix Todos - Authorized Sockets – Part ten of our 'Phoenix Todos' Literate Commits series. Implementing authorization over Phoenix sockets.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Nov 9, 2016

NoSQL Injection in Phoenix Applications – Phoenix applications using MongoDB as a data store are susceptible to NoSQL Injection attacks. Learn what they are and how to preven them.
Elixir, MongoDB, NoSQL Injection, Phoenix, Security
Nov 7, 2016

How to Use MongoDB with Elixir – What is the best way to use MongoDB as your primary database in a Phoenix or Elixir application? This article explores a few options.
Elixir, MongoDB, Phoenix
Oct 31, 2016

Phoenix Todos - Updating and Deleting – Part nine of our 'Phoenix Todos' Literate Commits series. Updating and deleting items in our todo list.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Oct 26, 2016

A Five Minute Introduction to NoSQL Injection – What is NoSQL Injection? How does it affect my application? How can I prevent it? This five minute guide will tell you everything you need to know.
MongoDB, NoSQL Injection, Security
Oct 24, 2016

Phoenix Todos - Adding Lists and Tasks – Part eight of our 'Phoenix Todos' Literate Commits series. Building out support for adding todo lists and tasks to those lists.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Oct 19, 2016

Can Meteor Applications be "Mobile Only?" – What does it mean to be "mobile only", and can a Meteor application ever be restricted to a mobile-only build?
Javascript, Meteor, Mobile
Oct 17, 2016

Phoenix Todos - Preloading Todos – Part seven of our 'Phoenix Todos' Literate Commits series. Populating our todo lists with Ecto's preload feature.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Oct 12, 2016

How to Safely Store Application Links – Does your application give users the ability to link to arbitray external URLs? You may be exposing your users to an unnecessary vulnerability.
Javascript, Meteor, Security
Oct 10, 2016

Phoenix Todos - Public Lists – Part six of our 'Phoenix Todos' Literate Commits series. Sending public lists down to the client.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Oct 5, 2016

Accounts is Everything Meteor Does Right – Meteor's Accounts system is one of Meteor's most killer features, and one of the reasons I find it difficult to leave the framework.
Authentication, Javascript, Meteor
Oct 3, 2016

Phoenix Todos - Finishing Authentication – Part five of our 'Phoenix Todos' Literate Commits series. Finishing up authentication.
Authentication, Elixir, Literate Commits, Phoenix, Phoenix Todos
Sep 28, 2016

My Kingdom for Transactions – Transactions are an incredibly undervalued tool in a developer's toolbox. They're often not missed until they're desperately needed. By then, it may be too late.
Javascript, MongoDB
Sep 26, 2016

Phoenix Todos - Transition to Redux – Part four of our 'Phoenix Todos' Literate Commits series. Replacing Meteor's front-end Accounts system with Redux.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Sep 21, 2016

Clone Meteor Collection References – Ever wanted to have two different sets of helpers attached to a single Meteor collection? It's more complicated than you may think.
Javascript, Meteor
Sep 19, 2016

Phoenix Todos - Back-end Authentication – Part three of our 'Phoenix Todos' Literate Commits series. Buiding out our back-end authentication solution.
Authentication, Elixir, Literate Commits, Phoenix, Phoenix Todos
Sep 14, 2016

Rewriting History – Is your Git-foo strong enough to change the past? Let's explore some advanced techniques for modifying the commit history of a Git repository.
Git, Literate Commits
Sep 12, 2016

Phoenix Todos - The User Model – Part two of our 'Phoenix Todos' Literate Commits series. Building out our user model.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Sep 7, 2016

Querying Non-Existent MongoDB Fields – In MongoDB, documents without set values for fields will match queries looking for a null value. Check out how this quirk exposes subtle vulnerabilities in Meteor applications.
Javascript, Meteor, MongoDB, Security
Sep 5, 2016

Phoenix Todos - Static Assets – Part one of our 'Phoenix Todos' Literate Commits series. Transplanting static assets to kick off our project.
Elixir, Literate Commits, Phoenix, Phoenix Todos
Aug 31, 2016

Assessing Mobile Meteor Applications – How do I carry out security assessments against mobile-only Meteor applications? The same way I carry out any other security assessment!
Javascript, Meteor, Mobile, Security
Aug 29, 2016

Meteor in Front, Phoenix in Back - Part 2 – Part two of our Meteor in Front, Phoenix in Back series. Today we finish up our Franken-stack by wiring our front-end up to an actual database with Phoenix Channels.
Channels, Elixir, Meteor, Phoenix
Aug 22, 2016

Advent of Code: Not Quite Lisp – This Literate Commits post solves a Lisp-flavored code kata using Elixir!
Advent of Code 2017, Elixir, Literate Commits
Aug 17, 2016

Meteor in Front, Phoenix in Back - Part 1 – Part one of our Meteor in Front, Phoenix in Back series. Let's put our mad scientist hats on and transplant a Meteor front-end into a Phoenix application!
Elixir, Meteor, Phoenix
Aug 15, 2016

The Captain's Distance Request – This Literate Commits post solves a code kata related to finding the distance between two points on earth using the heversine formula. Here be dragons!
Codewars, Javascript, Literate Commits
Aug 10, 2016

Module Import Organization – Now that Meteor supports native modules, imports, and exports... Where do we put everything?
Javascript, Meteor
Aug 8, 2016

Nesting Structure Comparison – How do we determine if two array share the same nested structure? This Literate Commits code kata dives deep into the solution.
Codewars, Javascript, Literate Commits
Aug 3, 2016

Method Imports and Exports – When we define Meteor methods and publication in modules, what do we export? This articles dives into that question and more.
Javascript, Meteor, Testing
Aug 1, 2016

Molecule to Atoms – Let's go back to chemistry class and figure out how to break a molecule into its component elements in this Javascript Literate Commits code kata.
Codewars, Javascript, Literate Commits
Jul 27, 2016

Mocha's Grep Flag – Today I learned about Mocha's grep flag; an insanely useful tool for quickly isolating individual tests of groups of tests.
Javascript, Testing
Jul 25, 2016

Point in Polygon – Is this point in this polygon? This Literate Commits articles explores one possible solution to this code kata.
Codewars, Javascript, Literate Commits
Jul 20, 2016

Meteor's Nested Import Controversy – Meteor has introduced Reify that allows the importing of modules within a nested code block. Are we still writing Javascript?
Javascript, Meteor
Jul 17, 2016

Literate Commits – Literate Commits is a new take on the concept of Donald Knuth's Literate Programming that tells a story through your repository's commit history.
Literate Commits
Jul 11, 2016

Delete Occurrences of an Element – Let's build up our Test Driven Development chops with this simple Javascript code kata written in the Literate Commits style.
Codewars, Javascript, Literate Commits
Jul 11, 2016

Winston and Meteor 1.3 – Due to the intricacies of Meteor's build system, integrating Winston into your Meteor project is more difficult that it seems at first glance.
Javascript, Meteor
Jul 4, 2016

A New Look For East5th – The East5th page has been given a face lift! Same old content, fresh new look.
Meta
Jun 27, 2016

Node Vulnerability Scanners in a 1.3 World – Using NPM packages in your Meteor project opens you up to a world of vulnerabilities. How can you be sure you're using secure packages?
Javascript, Meteor, Security
Jun 20, 2016

NoSQL Injection and GraphQL – Are GraphQL applications vulnerable to NoSQL Injection attacks? Check out how a fully fleshed out schema can protect you and your data!
GraphQL, Javascript, Meteor, NoSQL Injection, Security
Jun 13, 2016

MongoDB With Serverless – Using MongoDB from an AWS Lambda function is more difficult than you may expect. Here's one possible solution.
Javascript, MongoDB, Serverless
Jun 6, 2016

Anatomy of an Assessment – What are Meteor security assessments? How do they work and what can I expect?
Meteor, Process, Security
May 30, 2016

AWS Lambda First Impressions – In which we build a Bitcoin-generating money bot and deploy it to AWS Lambda for free!
Bitcoin, Javascript, Node.js, Serverless
May 24, 2016

The Missing Link In Meteor's Rate Limiter – It's possible to carry out a Denial of Service attack against a Meteor application by flooding it with subscriptions. Check out how you can protect yourself.
Javascript, Meteor, Security
May 16, 2016

Transitioning to Modules With Global Imports – Transitioning your entire Meteor application towards using imports is a time-consuming and error-prone process. Thankfully, there's a middle way.
Javascript, Meteor
May 9, 2016

Meteor Unit Testing With Testdouble.js – Smooth out your Meteor testing experience with Testdouble.js.
Javascript, Meteor, Testing
May 2, 2016

Blaze Meets Clusterize.js – Blaze can be slow when rendering hundreds of elements. Speed it up with Clusterize.js!
Javascript, Meteor
Apr 18, 2016

CollectionFS Safety Considerations – Allowing file uploads to your applications opens you up to a world of potential vulnerabilities. Make sure you're protected.
Javascript, Meteor, Security
Apr 4, 2016

Bypassing Package-Based Basic Auth – Are you using Basic Auth to protect your Meteor application? You're probably not protecting your DDP endpoint. Find out how to fix it.
Javascript, Meteor, Security
Mar 28, 2016

NoSQL Injection in Modern Web Applications – Check out my presentation at the 2016 Crater Remote Conference for an in-depth overview of NoSQL Injection in Modern Web Applications!
Javascript, Meteor, MongoDB, NoSQL Injection, Security
Mar 21, 2016

Stored XSS and Unexpected Unsafe-Eval – Event your Content Security Policy can't save you from stored Cross Site Scripting attacks.
Javascript, Meteor, Security
Mar 14, 2016

Cross Site Scripting Through jQuery Components – Your application may be correctly sanitizing user-provided input, but are your jQuery components? Watch out for Cross Site Scripting attacks!
Javascript, Meteor, Security
Mar 7, 2016

Why You Should Always Check Your Arguments – Here's a video of the talk I gave at Meteor Space Camp in 2016 outlining the dangers of NoSQL Injection.
Appearance, Javascript, Meteor, MongoDB, NoSQL Injection, Security
Feb 29, 2016

Method Auditing Revisited – How would a malicious user find vulnerabilities in your Meteor methods? Put on your black hat and find out.
Meteor, NoSQL Injection, Security
Feb 15, 2016

Preparing for the Crater Conference – Be sure to buy your tickets to the 2016 Crater Remote Conference to hear my talk on NoSQL Injection in Modern Web Applications!
Meteor, MongoDB, NoSQL Injection, Security
Feb 8, 2016

Sending Emails Through Hidden Methods – Even if your methods aren't published to the client, they can still be called by malicious users to send emails or do other nefarious things.
Meteor, Security
Feb 1, 2016

Scripting With MongoDB – Scripting with Javascript is an often overlooked, but incredibly powerful feature of MongoDB. Take advantage of it!
Javascript, MongoDB
Jan 25, 2016

Home Sweet Home in Chattanooga – I've officially relocated to Chattanooga, Tennessee!
Meta
Jan 18, 2016

Unit Testing With Meteor 1.3 – Meteor's official testing solution, Velocity, is just too slow. Check out how to use ES6 modules and Mocha to write lightning fast unit tests!
Javascript, Meteor, Testing
Dec 21, 2015

Meteor Club Q&A on Security – I had a great time on Josh Owens' Meteor Club Q&A talking about Meteor security. Be sure to checkout the Youtube recording.
Meteor, Security
Dec 14, 2015

Scanning Meteor Projects for Node Vulnerabilities – Meteor applications can make use of Node.js packages, which opens them up to a world of vulnerabilities. Protect yourself by learning how to scan those packages for known vulnerabilities.
Meteor, Security
Dec 7, 2015

Giving Thanks – It's been a little over a year since I started experimenting with Meteor. In that time it has given me the confidence to start successfully working for myself. Thanks Meteor!
Meta, Meteor
Nov 30, 2015

Building Check-Checker as a Meteor Plugin – Let's use Meteor's Build Plugin API to refactor our Check Checker package into a plugin.
Javascript, Meteor, Security
Nov 23, 2015

Sorting By Ownership With MongoDB – This post explores the problem of crafting a difficult query in MongoDB. Use your tools; don't let your tools use you.
Javascript, MongoDB
Nov 16, 2015

Why I Can't Wait For ES6 Proxies – Proxies will open the door for new advances in Javascript security. To say I'm excited is an understatement.
Javascript, Meteor, NoSQL Injection, Security
Nov 9, 2015

Meteor Space Camp – Last month I had the opportunity to go to Space Camp! No, not that kind of space camp...
Meteor
Nov 2, 2015

Rename Your Way To Admin Rights – MongoDB's rename operator can be used for great evil is left unchecked. Dive into this vulnerability exploration for a detailed example and remediation.
Javascript, Meteor, NoSQL Injection, Security
Oct 19, 2015

Package Scan Community Contributions – Package Scan is getting some love from the community!
Meteor, Security
Oct 13, 2015

Slimming Down Fat Models – While fat models are better than fat controllers, sometimes your models need to trim the fat as well. Event-based architectures may be the solution to your troubles.
Javascript, Meteor
Oct 5, 2015

Package Scan Web Tool – Package Scan is now available as an easy-to-use web tool. Drag and drop your versions file to see if your application is vulnerable.
Announcement, Javascript, Meteor, Security
Sep 28, 2015

Exporting ES6 Classes From Meteor Packages – How do you export ES6 classes from Meteor packages? This articles dives into the topic.
Javascript, Meteor
Sep 23, 2015

Never Forget Where Your Code Runs – Part of designing a secure software solution is being aware of your client and server boundaries. This is especially important with working with isometric systems.
Javascript, Meteor, Security
Sep 21, 2015

Counting Fields With Mongo Aggregations – How would you write a MongoDB query to cound the number of fields in a set of documents? Let's dive into a solution!
Javascript, MongoDB
Sep 14, 2015

Hijacking Meteor Accounts With XSS – Cross Site Scripting attacks are especially dangerous in Meteor applications. Watch how an XSS vulnerability can lead to privilege escalation.
Javascript, Meteor, Security, XSS
Sep 7, 2015

Incomplete Argument Checks – Incomplete argument checks are one of the primary causes of NoSQL Injection attacks in Meteor applications.
Javascript, Meteor, NoSQL Injection, Security
Aug 31, 2015

Hijacking Meteor Accounts by Sniffing DDP – Meteor accounts can be hijacked by an attacker listening for your credentials as they fly across the wire. Find out how to protect your application.
Javascript, Meteor, Security
Aug 23, 2015

The Ecstasy of Testing – You dive in, equipped with nothing more than a creeping dissatisfaction and a passing test suite...
Javascriot, Testing, Writing
Aug 18, 2015

DOS Your Meteor Application With Where – MongoDB's 'where' operator can be used by malicious users to wreak serious havok on your database. Learn to protect yourself.
Javascript, Meteor, NoSQL Injection, Security
Aug 10, 2015

Returning Promises Synchronously – I often find myself tasked with returning promises synchronously from Meteor fibers. I've written a Meteor package that helps with the task.
Javascript, Meteor
Aug 3, 2015

Check-Checker Checks Your Checks – Check-Checker is a package that looks for missing or incomplete calls to 'check' in your Meteor methods and publications. It's a powerful tool in the fight against NoSQL Injection.
Announcement, Javascript, Meteor, NoSQL Injection, Security
Jul 27, 2015

Exploiting findOne to Aggregate Collection Data – With some clever querying, 'findOne' MongoDB queries can be explored to aggregate an entire collection's worth of data on behalf of an attacking user.
Javascript, Meteor, NoSQL Injection, Security
Jul 21, 2015

Why Is Rename Disallowed? – The MongoDB 'rename' operator is disallowed in Meteor client-side queries. Let's explore why that may be.
Javascript, Meteor, Security
Jul 14, 2015

Basic Auth For Hiding Your Application – Basic authentication is a great way to quickly lock down an application from prying eyes. Learn the ins and outs.
Javascript, Meteor, Security
Jul 6, 2015

Black Box Meteor - Shared Validators – Validator functions for Meteor collections belong on the server. Find out why from a hands-on perspective.
Black Box Meteor, Javascript, Meteor, Security
Jun 29, 2015

Meteor Club Podcast - Talking Security – Josh Owens, Ben Strahan, Dean Radcliffe, and I sat down recently and talked shop about Meteor and Meteor security. Be sure to listen!
Appearance, Javascript, Meteor, Security
Jun 22, 2015

Allow & Deny Challenge - Check Yourself – Can you write an air-tight set of allow & deny rules? Take a look at Sacha Greif's challange, try it for yourself, and take a look at my solution.
Javscript, Meteor, Security
Jun 15, 2015

Good Night 1pxsolidtomato – The name '1pxsolidtomato' is no more. But this site and all of its content will live on!
Meta
Jun 10, 2015

Authentication with localStorage – Authentication through localStorage has the handy property of being CSRF-proof. Find out what that means and why it matters in this article!
Javascript, Meteor, Security
Jun 8, 2015

Keep It Secret, Keep It Safe – Are you accidentally leaking your application's secrets to the client? It's more likely than you may think.
Javascript, Meteor, Security
May 25, 2015

Mongo's Multi Parameter Saves the Day – The 'multi' flag on MongoDB's update operator just narrowly prevented a vulnerability in this application. Check out this rundown for the details.
Javascript, Meteor, NoSQL Injection, Security
May 18, 2015

Private Package Problems – What's the best way to manage private Meteor packages? Let's compare the pros and cons of a few different potential solutions.
Git, Meteor
May 11, 2015

Meteor Security in the Wild – Read along with this deep hands-on dive into a vulnerability I found in a client's production Meteor application.
Javascript, Meteor, Security
May 5, 2015

Meteor Package Scan – Are you using Meteor packages with known security vulnerabilities? Package Scan will tell you.
Announcement, Meteor, Security
Apr 27, 2015

Black Box Meteor - Package Scanning – A malicious user can view a list of package being used by your Meteor application from the client.
Black Box Meteor, Javascript, Meteor, Security
Apr 24, 2015

Discover Meteor - Mentoring Session – I'll be hosting a Discover Meteor mentor section. Stop by and ask questions!
Appearance, Meteor
Apr 20, 2015

Black Box Meteor - Method Auditing – Malicious users can view the entire contents of every Meteor method defined in a shared location. Be sure your methods are secure!
Black Box Meteor, Javascript, Meteor, Security
Apr 15, 2015

NoSQL Injection - Or, Always Check Your Arguments! – NoSQL Injection is a very common vulnerability found in Meteor applications. Find out what it is and how you can protect your application with this article.
Javascript, Meteor, NoSQL Injection, Security
Apr 6, 2015

Black Box Meteor - Triple Brace XSS – Meteor's 'tripple braces' are a primary source of Cross Site Scripting vulnerabilities in your application. Learn how an attacker can find them in your application.
Black Box Meteor, Javascript, Meteor, Security, XSS
Apr 3, 2015

Recursive Components with Meteor and Polymer – Let's put on our mad scientist hats and build a Cantor set using recursive components in both Meteor and Polymer.
Experiments, Meteor, Polymer
Mar 30, 2015

Materialize Highs and Lows – Materialize is a CSS frameworks with its ups and downs. Here are my experiences.
Javascript
Mar 25, 2015

User Fields and Universal Publications – Universal publications are a piece of black magic that are often brushed under the rug of Meteor applications. Learn what they are and how they're used in this question and answer style article.
Javascript, Meteor
Mar 16, 2015

Meteor Composability – It can be difficult to build a truly composable application using Meteor's out-of-the-box front-end framework. Here are a few tips and tricks.
Appearance, Javascript, Meteor
Mar 9, 2015

Customizable Meteor Navbar with Orion CMS – Let's extend the Meteor-based Orion CMS with our own customizable navbar.
Javascript, Meteor
Mar 2, 2015

Custom Categories with Meteor's Orion CMS – Let's extend the Meteor-based Orion CMS with our own custom categories.
Javascript, Meteor
Feb 23, 2015

Meteor and Mongod.lock – Crashing Meteor applications can sometimes wreak havok on your MongoDB lock file. Learn how to fix that problem in this article.
Meteor, MongoDB
Feb 16, 2015

Meteor Velocity: Down the Debugging Rabbit Hole – Dive down a debugging rabbit hole with me as we identify and fix a bug in the Velocity test framework.
Debugging, Javascript, Meteor, Testing
Feb 9, 2015

Announcing East5th! – I've decided to start working for myself under the name of 'East5th'!
Announcement, Meta
Feb 4, 2015

Suffixer! Find Meaningful Unregistered Domains – Suffixer is a tool designed to find meaningful unregistered domains for your latest project.
Announcement, Javascript, Meteor
Feb 2, 2015

Mongo Text Search with Meteor – MongoDB text searches can offer significant performance boosts over simple regular expression based queries.
Javascript, Meteor, MongoDB
Jan 26, 2015

The Dangers of Debouncing Meteor Subscriptions – Debouncing Meteor subscriptions can lead to subtle bugs. Let's explore those bugs and find out how to prevent them in your application.
Javascript, Meteor
Jan 19, 2015

Javascript, Meteor
Jan 13, 2015

Zapier Named Variables - Scheduling Posts Part 2 – Zapier named variables can help you schedule posts to a Jekyll based blog. Find out how!
Jekyll, Zapier
Jan 5, 2015

Scheduling Posts with Jekyll, Github Pages & Zapier – Find out how I'm using Zapier to schedule posts to my Jekyll-powered blog hosted on Github Pages!
Jekyll, Zapier
Dec 29, 2014

Hide Menu: My First Sublime Text Plugin – I've created a Sublime Text plugin to scratch an itch, and I documented the whole process.
Python
Dec 24, 2014

BYO Meteor Package – Follow along as I build and publish my first Meteor package!
Javascript, Meteor
Dec 22, 2014

Throw Back Thursday: Julia Sets with Sass – Have you ever thought about generating a Julia set from nothing but HTML and CSS? I have...
CSS, Experiments
Dec 18, 2014

Aspect Ratio Media Queries – Aspect ratio media queries can be used to create interesting and incredibly useful layouts. Check out this example.
CSS
Dec 16, 2014

Joining the Tiling WM Master Race – Tiling window managers aren't well-known outside of the Linux ricing community, but they're an incredibly powerful tool for a developer looking to improve their efficiency.
Development Environment
Dec 15, 2014

My Meteor Hello World - countwith.me – My first application made with Meteor, countwith.me, is a simple distributed counting application. How high can the internet count?
Announcement, Javascript, Meteor
Dec 8, 2014

Meteor First Impressions – This video summarizes my first impressions of the Meteor framework. Wow!
Meteor
Dec 2, 2014

Thinking Out Loud About Screencasting Platforms – I've been thinking out loud lately about building a screen-casting platform designed for software developers.

Nov 21, 2014

Building Ms. Estelle Marie – Recently I spent some time customizing a Wordpress template for a client. Here's a quick rundown of my process and impressions.
Grunt, PHP, Wordpress
Nov 12, 2014

Chrome LiveReload Extension and Remote Machines – The Chrome LiveReload plugin doesn't work well with remote development servers. Here's a workaround.
Grunt, Javascript
Nov 5, 2014

CrossView Fun With CSS – CrossView illusions are an interesting way of hiding information in plain sight.
CSS, Experiments
Nov 2, 2014

Laravel Queue's Sleep Contributes to its Timeout – Follow along as I track down a bug in Laravel's queue system.
Debugging, Laravel, PHP
Oct 23, 2014

Laravel 4.2 Command "Queue:Restart" is Not Defined – A sudden anomalous skipe in CPU usage led me down the rabbit hole of debugging an issue with my Laravel configuration. Follow along in this article.
Laravel, PHP
Oct 15, 2014

The Quest for Scalable SVG Text – Creating an SVG with scalable text presents more challenges than you would expect. Especially when you're trying to shoot for full browser compatibility.
SVG
Oct 8, 2014

Firebase! - T.U.S.T.A.C.R. Part 2 – Follow along as I build out the back-end of a URL shortener built using Firebase!
Firebase, Javascript, Video
Oct 1, 2014

Frontend Workflow - T.U.S.T.A.C.R. Part 1 – Follow along as I build out the front-end of a URL shortener built using Firebase!
CSS, Firebase, Javascript, Video
Sep 24, 2014

Namecheap + Amazon S3 – Namecheap and Amazon's S3 are a match made in heaven. Follow these steps to get both working together seamlessly.
Infrastructure
Sep 23, 2014

Git Bisect and Commit History – Git's bisect tool is a powerhouse of a tool that often doesn't get the love it deserves.
Git
Sep 16, 2014

Responsive SVG Height Issue – I recently faced an issue with responsive SVGs not sizing correctly. Here's how I came up with a solution.
SVG
Sep 9, 2014

Smart Forms - Automate and Build Your Own Tools! – Sometimes it's the code you throw away that's the most valuable. Here's a story about how a one-off tool built quickly and poorly saved a client hundreds of hours of billable work.
Javascript, Process
Sep 4, 2014

My Concurrent Jekyll Gruntfile – Use concurrency to simultaneously run multiple Grunt commands.
Grunt, Jekyll
Aug 28, 2014

Prism.js and Github Pages – This blog is build using Jekyll and hosted on Github Pages. This presents certain difficulties when paired with the Prism.js syntax highlighter.
Jekyll
Aug 27, 2014