Pete Corey
Pete Corey is an independent consultant, web developer, and writer based out of Denver, Colorado. He writes weekly articles on software development and his eternal quest to build Cool Stuff™.
- Posts
- 418 from 27 Aug 2014 to 9 Oct 2026
- Posting
- monthly (7 in the last year)
- Kind
- personal blog
- Feed
- https://www.petecorey.com/feed.xml
2026 6
2025 2
2024 6
2023 4
2022 2
2021 3
2020 18
- Mongodb lookup aggregation
- On this day im officially a father
- Now youre thinking with arrays
- Descending dungeon numbers in j
- The progression that led me to build glorious voice leader
- Suggesting chord names with glorious voice leader
- Recursive roguelike tiles
- Hello roguelike
- Adding more chords to glorious voice leader
- Guitar chord voicings with prolog
- Clapping music with tidalcycles
- Wolfram style cellular automata with vim macros
- Glorious voice leader reborn
- Lissajous curves
- Querying for mongodb documents where every subdocument matches a pattern
- Mongodb object array lookup aggregation
- Timing streams in nodejs
- Random seeds lodash and es6 imports
2019 29
- Count the divisible numbers
- Setting apollo context from http headers in a meteor application
- The collatz sequence in j
- Rendering a react application across multiple containers
- Generating guitar chords with cartesian products
- Animating a canvas with phoenix liveview an update
- All hail glorious voice leader
- Apollo quirks polling after refetching with new variables
- Elixir style conditions in javascript
- Obverse and under
- Animating a canvas with phoenix liveview
- Prime parallelograms
- Til about nodejs repl module
- Animating a canvas with react hooks
- Fly straight dammit
- Embedding react components in jekyll posts
- Clipping convex hulls with thing
- The many ways to define verbs in j
- Building my own spacemacs
- How i actually write my first ebook
- Minimum viable phoenix
- Is my apollo client connected to the server
- Generating realistic pseudonyms with fakerjs and deterministic seeds
- Anonymizing graphql resolvers with decorators
- Fizzbuzz is just a three against five polyrhythm
- Bending jest to our will restoring nodes require behavior
- A better mandelbrot iterator in j
- Secure meteor is live
- Secure meteor releasing next week
2018 56
- Advent of code subterranean sustainability
- Optional notes and exact pitches in chord
- Advent of code chronal charge
- Advent of code marble mania
- Advent of code the stars align
- Advent of code memory maneuver
- Advent of code the sum of its parts
- Advent of code chronal coordinates
- Advent of code alchemical reduction
- Advent of code repose record
- Advent of code no matter how you slice it
- Allow yourself to do things poorly
- Advent of code inventory management system
- Advent of code chronal calibration
- Property testing a permutation generator
- Elixir mix
- Permutations with and without repetition in elixir
- Bending jest to our will caching modules across tests
- Rendering ascii chord charts with react
- Snapshot testing graphql queries
- Living the simple life with recursive parsing and serialization
- Minimal coding with spacemacs and olivetti
- Using facades to simplify elixir modules
- Computing fingering distance with dr levenshtein
- Coffee tea and theanine
- Algorithmically fingering guitar chords with elixir
- Voice leading with elixir
- Building a better receive loop
- Ping pong and unresponsive bitcoin nodes
- Golfing for fizzbuzz in clojure and elixir
- Making noise with j
- Limiting peers with dynamicsupervisor options
- Generating test fixtures with wireshark
- Be careful using with in tests
- Modeling formulas with recursive discriminators
- Spreading through the bitcoin network
- Beefing up our bitcoin node with connection
- Reversing bip39 and the power of property testing
- Visualizing the oplog with splunk
- Connecting an elixir node to the bitcoin network
- Writing mandelbrot factals with hooks and forks
- Hex dumping with elixir
- Shutting down and open sourcing inject detect
- Js low level obfuscation leads to higher levels of clarity
- Building mixed endian binaries with elixir
- The headache and heartache of unhandled rejections
- Mining for mnemonic haiku with elixir
- Fear is the mind killer
- From bytes to mnemonic using elixir
- Property testing our base58check encoder with an external oracle
- Mining for bitcoin vanity addresses with elixir
- Hacking prototypal inheritance for fun and profit
- Generating bitcoin private keys and public addresses with elixir
- Secure meteor
- Bitcoins base58check in pure elixir
- Things i learned during the advent of code
2017 49
- Do you know that a man is not dead while his name is still spoken
- Lets get personal
- Fleshing out urls with elixir
- Generating sequences with elixir streams
- Crawling for cash with affiliate crawler
- Being john malkovich on twitter
- Rum boogie cafe
- Grokking the y combinator with elixir
- Formatting with vim scripts
- Learning to crawl building a bare bones web crawler with elixir
- User authentication kata with elixir and phoenix
- Using graphql schema types with apollo server
- Exploring the bitcoin blockchain with elixir and phoenix
- Inject detect is live
- Controlling a bitcoin node with elixir
- Inject detect is launching soon
- Advanced mongodb query batching with dataloader and sift
- Batching graphql queries with dataloader
- What if elixir were homoiconic
- Offline graphql mutations with redux offline and apollo
- Offline graphql queries with redux offline and apollo
- Recurring tasks in elixir
- Detecting nosql injection
- What is nosql injection
- Distributed systems are hard
- Genservers and memory images a match made in heaven
- Graphql nosql injection through json types
- Behold the power of graphql
- Have you tried just using a function
- Nosql injection in kadira
- Graphql authentication with apollo and react
- Graphql authentication with elixir and absinthe
- Inject detect progress report
- Passwordless authentication with phoenix tokens
- Who needs lodash when you have elixir
- Using apollo client with elixirs absinthe
- Using create react app with phoenix
- Intercepting all queries in a meteor application
- How am i building inject detect
- Why Security?
- Inject Detect - Coming Soon!
- My Favorite Pattern Revisited
- Rendering Life on a Canvas with Phoenix Channels
- Build Your Own Code Poster with Elixir
- Playing the Game of Life with Elixir Processes
- My Favorite Pattern Without a Name
- Upgrade Releases With Edeliver
- Simplifying Elixir Releases With Edeliver
- Upgrade Releases With Distillery
2016 62
- Deploying Elixir Applications with Distillery
- Intentionally Learning Elixir
- How to use MongoDB With Elixir - Revisited
- Using Apollo Client with Elixir’s Absinthe
- Phoenix Todos - Public and Private Lists
- Basic Meteor Authentication in Phoenix
- Phoenix Todos - Authorized Sockets
- NoSQL Injection in Phoenix Applications
- How to Use MongoDB with Elixir
- Phoenix Todos - Updating and Deleting
- A Five Minute Introduction to NoSQL Injection
- Phoenix Todos - Adding Lists and Tasks
- Can Meteor Applications be “Mobile Only?”
- Phoenix Todos - Preloading Todos
- How to Safely Store Application Links
- Phoenix Todos - Public Lists
- Accounts is Everything Meteor Does Right
- Phoenix Todos - Finishing Authentication
- My Kingdom for Transactions
- Phoenix Todos - Transition to Redux
- Clone Meteor Collection References
- Phoenix Todos - Back-end Authentication
- Rewriting History
- Phoenix Todos - The User Model
- Querying Non-Existent MongoDB Fields
- Phoenix Todos - Static Assets
- Assessing Mobile Meteor Applications
- Meteor in Front, Phoenix in Back - Part 2
- Advent of Code: Not Quite Lisp
- Meteor in Front, Phoenix in Back - Part 1
- The Captain’s Distance Request
- Module Import Organization
- Nesting Structure Comparison
- Method Imports and Exports
- Molecule to Atoms
- Mocha’s Grep Flag
- Point in Polygon
- Meteor’s Nested Import Controversy
- Delete Occurrences of an Element
- Literate Commits
- Winston and Meteor 1.3
- A New Look For East5th
- Node Vulnerability Scanners in a 1.3 World
- NoSQL Injection and GraphQL
- MongoDB With Serverless
- Anatomy of an Assessment
- AWS Lambda First Impressions
- The Missing Link In Meteor’s Rate Limiter
- Transitioning to Modules With Global Imports
- Meteor Unit Testing With Testdouble.js
- Blaze Meets Clusterize.js
- CollectionFS Safety Considerations
- Bypassing Package-Based Basic Auth
- NoSQL Injection in Modern Web Applications
- Stored XSS and Unexpected Unsafe-Eval
- Cross Site Scripting Through jQuery Components
- Why You Should Always Check Your Arguments
- Method Auditing Revisited
- Preparing for the Crater Conference
- Sending Emails Through Hidden Methods
- Scripting With MongoDB
- Home Sweet Home in Chattanooga
2015 54
- Unit Testing With Meteor 1.3
- Meteor Club Q&A on Security
- Scanning Meteor Projects for Node Vulnerabilities
- Giving Thanks
- Building Check-Checker as a Meteor Plugin
- Sorting By Ownership With MongoDB
- Why I Can’t Wait For ES6 Proxies
- Meteor Space Camp
- Rename Your Way To Admin Rights
- Package Scan Community Contributions
- Slimming Down Fat Models
- Package Scan Web Tool
- Exporting ES6 Classes From Meteor Packages
- Never Forget Where Your Code Runs
- Counting Fields With Mongo Aggregations
- Hijacking Meteor Accounts With XSS
- Incomplete Argument Checks
- Hijacking Meteor Accounts by Sniffing DDP
- The Ecstasy of Testing
- DOS Your Meteor Application With Where
- Returning Promises Synchronously
- Check-Checker Checks Your Checks
- Exploiting findOne to Aggregate Collection Data
- Why Is Rename Disallowed?
- Basic Auth For Hiding Your Application
- Black Box Meteor - Shared Validators
- Meteor Club Podcast - Talking Security
- Allow & Deny Challenge - Check Yourself
- Good Night 1pxsolidtomato
- Authentication with localStorage
- Keep It Secret, Keep It Safe
- Mongo’s Multi Parameter Saves the Day
- Private Package Problems
- Meteor Security in the Wild
- Meteor Package Scan
- Black Box Meteor - Package Scanning
- Discover Meteor - Mentoring Session
- Black Box Meteor - Method Auditing
- NoSQL Injection - Or, Always Check Your Arguments!
- Black Box Meteor - Triple Brace XSS
- Recursive Components with Meteor and Polymer
- Materialize Highs and Lows
- User Fields and Universal Publications
- Meteor Composability
- Customizable Meteor Navbar with Orion CMS
- Custom Categories with Meteor’s Orion CMS
- Meteor and Mongod.lock
- Meteor Velocity: Down the Debugging Rabbit Hole
- Announcing East5th!
- Suffixer! Find Meaningful Unregistered Domains
- Mongo Text Search with Meteor
- The Dangers of Debouncing Meteor Subscriptions
- Custom Block Helpers and Meteor Composability
- Zapier Named Variables - Scheduling Posts Part 2
2014 23
- Scheduling Posts with Jekyll, Github Pages & Zapier
- Hide Menu: My First Sublime Text Plugin
- BYO Meteor Package
- Throw Back Thursday: Julia Sets with Sass
- Aspect Ratio Media Queries
- Joining the Tiling WM Master Race
- My Meteor Hello World - countwith.me
- Meteor First Impressions
- Thinking Out Loud About Screencasting Platforms
- Building Ms. Estelle Marie
- Chrome LiveReload Extension and Remote Machines
- CrossView Fun With CSS
- Laravel Queue’s Sleep Contributes to its Timeout
- Laravel 4.2 Command “Queue:Restart” is Not Defined
- The Quest for Scalable SVG Text
- Firebase! - T.U.S.T.A.C.R. Part 2
- Frontend Workflow - T.U.S.T.A.C.R. Part 1
- Namecheap + Amazon S3
- Git Bisect and Commit History
- Responsive SVG Height Issue
- Smart Forms - Automate and Build Your Own Tools!
- My Concurrent Jekyll Gruntfile
- Prism.js and Github Pages
Undated 104
- http://www.petecorey.com/blog/2/
- http://www.petecorey.com/blog/3/
- http://www.petecorey.com/blog/4/
- http://www.petecorey.com/blog/5/
- http://www.petecorey.com/blog/6/
- http://www.petecorey.com/blog/7/
- http://www.petecorey.com/blog/8/
- http://www.petecorey.com/blog/9/
- http://www.petecorey.com/blog/10/
- http://www.petecorey.com/blog/11/
- http://www.petecorey.com/blog/12/
- http://www.petecorey.com/blog/13/
- http://www.petecorey.com/blog/14/
- http://www.petecorey.com/blog/15/
- http://www.petecorey.com/blog/16/
- http://www.petecorey.com/blog/17/
- http://www.petecorey.com/blog/18/
- http://www.petecorey.com/blog/19/
- http://www.petecorey.com/blog/20/
- http://www.petecorey.com/blog/21/
- http://www.petecorey.com/blog/22/
- http://www.petecorey.com/blog/23/
- http://www.petecorey.com/blog/24/
- http://www.petecorey.com/blog/25/
- http://www.petecorey.com/blog/26/
- http://www.petecorey.com/blog/27/
- http://www.petecorey.com/blog/28/
- http://www.petecorey.com/blog/29/
- http://www.petecorey.com/blog/30/
- http://www.petecorey.com/blog/31/
- http://www.petecorey.com/blog/32/
- http://www.petecorey.com/blog/33/
- http://www.petecorey.com/blog/34/
- http://www.petecorey.com/blog/35/
- http://www.petecorey.com/blog/36/
- http://www.petecorey.com/blog/37/
- http://www.petecorey.com/blog/38/
- http://www.petecorey.com/blog/39/
- http://www.petecorey.com/blog/40/
- http://www.petecorey.com/blog/41/
- http://www.petecorey.com/blog/42/
- http://www.petecorey.com/blog/43/
- http://www.petecorey.com/blog/44/
- http://www.petecorey.com/blog/45/
- http://www.petecorey.com/blog/46/
- http://www.petecorey.com/blog/47/
- http://www.petecorey.com/blog/48/
- http://www.petecorey.com/blog/49/
- http://www.petecorey.com/blog/50/
- http://www.petecorey.com/blog/51/
- http://www.petecorey.com/blog/52/
- http://www.petecorey.com/blog/53/
- http://www.petecorey.com/blog/54/
- http://www.petecorey.com/blog/55/
- http://www.petecorey.com/blog/56/
- http://www.petecorey.com/blog/57/
- http://www.petecorey.com/blog/58/
- http://www.petecorey.com/blog/59/
- http://www.petecorey.com/blog/60/
- http://www.petecorey.com/blog/61/
- http://www.petecorey.com/blog/62/
- http://www.petecorey.com/blog/63/
- http://www.petecorey.com/blog/64/
- http://www.petecorey.com/blog/65/
- http://www.petecorey.com/blog/66/
- http://www.petecorey.com/blog/67/
- http://www.petecorey.com/blog/68/
- http://www.petecorey.com/blog/69/
- http://www.petecorey.com/blog/70/
- http://www.petecorey.com/blog/71/
- http://www.petecorey.com/blog/72/
- http://www.petecorey.com/blog/73/
- http://www.petecorey.com/blog/74/
- http://www.petecorey.com/blog/75/
- http://www.petecorey.com/blog/76/
- http://www.petecorey.com/blog/77/
- http://www.petecorey.com/blog/78/
- http://www.petecorey.com/blog/79/
- http://www.petecorey.com/blog/80/
- http://www.petecorey.com/blog/81/
- http://www.petecorey.com/blog/82/
- http://www.petecorey.com/blog/83/
- http://www.petecorey.com/blog/84/
- http://www.petecorey.com/blog/85/
- http://www.petecorey.com/blog/86/
- http://www.petecorey.com/blog/87/
- http://www.petecorey.com/blog/88/
- http://www.petecorey.com/blog/89/
- http://www.petecorey.com/blog/90/
- http://www.petecorey.com/blog/91/
- http://www.petecorey.com/blog/92/
- http://www.petecorey.com/blog/93/
- http://www.petecorey.com/blog/94/
- http://www.petecorey.com/blog/95/
- http://www.petecorey.com/blog/96/
- http://www.petecorey.com/blog/97/
- http://www.petecorey.com/blog/98/
- http://www.petecorey.com/blog/99/
- http://www.petecorey.com/blog/100/
- http://www.petecorey.com/blog/101/
- http://www.petecorey.com/blog/102/
- http://www.petecorey.com/blog/103/
- http://www.petecorey.com/blog/104/
- http://www.petecorey.com/blog/105/