The Curious Engineer

All blogs / Elixir / Erlang

Pete Corey

petecorey.com

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™.

Elixir / ErlangJavaScript / TypeScriptMusicSecurity

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

  1. A Better Way to Represent Notes
  2. Two Ways to Set a Date’s Time
  3. I Don’t Like AI
  4. Painless Google APIs with Elixir and Assent
  5. AI Gems: Part 1
  6. How Many Scales Are Modes of Other Scales?

2025 2

  1. Scales as Multipermutations of 0 and 1 into Twelve Places
  2. Generating Musical Scales

2024 6

  1. Generated TSVector Columns in Elixir
  2. One-off Startup Tasks in Elixir Applications
  3. Non deterministic test failures
  4. This is a dark magic
  5. Decompress a tarball in nodejs
  6. True insert trigger in postgresql

2023 4

  1. Git quine
  2. Scripting tmux session creation
  3. Finding queries with missing indexes in meteor applications
  4. A tip for managing a dotfiles git repository

2022 2

  1. Javascript destructing and untrusted data
  2. Recursively handle query parameters in a phoenix api

2021 3

  1. Nested resources camel casing and open api spex
  2. Genuary 2021
  3. The long and short case for elixir

2020 18

  1. Mongodb lookup aggregation
  2. On this day im officially a father
  3. Now youre thinking with arrays
  4. Descending dungeon numbers in j
  5. The progression that led me to build glorious voice leader
  6. Suggesting chord names with glorious voice leader
  7. Recursive roguelike tiles
  8. Hello roguelike
  9. Adding more chords to glorious voice leader
  10. Guitar chord voicings with prolog
  11. Clapping music with tidalcycles
  12. Wolfram style cellular automata with vim macros
  13. Glorious voice leader reborn
  14. Lissajous curves
  15. Querying for mongodb documents where every subdocument matches a pattern
  16. Mongodb object array lookup aggregation
  17. Timing streams in nodejs
  18. Random seeds lodash and es6 imports

2019 29

  1. Count the divisible numbers
  2. Setting apollo context from http headers in a meteor application
  3. The collatz sequence in j
  4. Rendering a react application across multiple containers
  5. Generating guitar chords with cartesian products
  6. Animating a canvas with phoenix liveview an update
  7. All hail glorious voice leader
  8. Apollo quirks polling after refetching with new variables
  9. Elixir style conditions in javascript
  10. Obverse and under
  11. Animating a canvas with phoenix liveview
  12. Prime parallelograms
  13. Til about nodejs repl module
  14. Animating a canvas with react hooks
  15. Fly straight dammit
  16. Embedding react components in jekyll posts
  17. Clipping convex hulls with thing
  18. The many ways to define verbs in j
  19. Building my own spacemacs
  20. How i actually write my first ebook
  21. Minimum viable phoenix
  22. Is my apollo client connected to the server
  23. Generating realistic pseudonyms with fakerjs and deterministic seeds
  24. Anonymizing graphql resolvers with decorators
  25. Fizzbuzz is just a three against five polyrhythm
  26. Bending jest to our will restoring nodes require behavior
  27. A better mandelbrot iterator in j
  28. Secure meteor is live
  29. Secure meteor releasing next week

2018 56

  1. Advent of code subterranean sustainability
  2. Optional notes and exact pitches in chord
  3. Advent of code chronal charge
  4. Advent of code marble mania
  5. Advent of code the stars align
  6. Advent of code memory maneuver
  7. Advent of code the sum of its parts
  8. Advent of code chronal coordinates
  9. Advent of code alchemical reduction
  10. Advent of code repose record
  11. Advent of code no matter how you slice it
  12. Allow yourself to do things poorly
  13. Advent of code inventory management system
  14. Advent of code chronal calibration
  15. Property testing a permutation generator
  16. Elixir mix
  17. Permutations with and without repetition in elixir
  18. Bending jest to our will caching modules across tests
  19. Rendering ascii chord charts with react
  20. Snapshot testing graphql queries
  21. Living the simple life with recursive parsing and serialization
  22. Minimal coding with spacemacs and olivetti
  23. Using facades to simplify elixir modules
  24. Computing fingering distance with dr levenshtein
  25. Coffee tea and theanine
  26. Algorithmically fingering guitar chords with elixir
  27. Voice leading with elixir
  28. Building a better receive loop
  29. Ping pong and unresponsive bitcoin nodes
  30. Golfing for fizzbuzz in clojure and elixir
  31. Making noise with j
  32. Limiting peers with dynamicsupervisor options
  33. Generating test fixtures with wireshark
  34. Be careful using with in tests
  35. Modeling formulas with recursive discriminators
  36. Spreading through the bitcoin network
  37. Beefing up our bitcoin node with connection
  38. Reversing bip39 and the power of property testing
  39. Visualizing the oplog with splunk
  40. Connecting an elixir node to the bitcoin network
  41. Writing mandelbrot factals with hooks and forks
  42. Hex dumping with elixir
  43. Shutting down and open sourcing inject detect
  44. Js low level obfuscation leads to higher levels of clarity
  45. Building mixed endian binaries with elixir
  46. The headache and heartache of unhandled rejections
  47. Mining for mnemonic haiku with elixir
  48. Fear is the mind killer
  49. From bytes to mnemonic using elixir
  50. Property testing our base58check encoder with an external oracle
  51. Mining for bitcoin vanity addresses with elixir
  52. Hacking prototypal inheritance for fun and profit
  53. Generating bitcoin private keys and public addresses with elixir
  54. Secure meteor
  55. Bitcoins base58check in pure elixir
  56. Things i learned during the advent of code

2017 49

  1. Do you know that a man is not dead while his name is still spoken
  2. Lets get personal
  3. Fleshing out urls with elixir
  4. Generating sequences with elixir streams
  5. Crawling for cash with affiliate crawler
  6. Being john malkovich on twitter
  7. Rum boogie cafe
  8. Grokking the y combinator with elixir
  9. Formatting with vim scripts
  10. Learning to crawl building a bare bones web crawler with elixir
  11. User authentication kata with elixir and phoenix
  12. Using graphql schema types with apollo server
  13. Exploring the bitcoin blockchain with elixir and phoenix
  14. Inject detect is live
  15. Controlling a bitcoin node with elixir
  16. Inject detect is launching soon
  17. Advanced mongodb query batching with dataloader and sift
  18. Batching graphql queries with dataloader
  19. What if elixir were homoiconic
  20. Offline graphql mutations with redux offline and apollo
  21. Offline graphql queries with redux offline and apollo
  22. Recurring tasks in elixir
  23. Detecting nosql injection
  24. What is nosql injection
  25. Distributed systems are hard
  26. Genservers and memory images a match made in heaven
  27. Graphql nosql injection through json types
  28. Behold the power of graphql
  29. Have you tried just using a function
  30. Nosql injection in kadira
  31. Graphql authentication with apollo and react
  32. Graphql authentication with elixir and absinthe
  33. Inject detect progress report
  34. Passwordless authentication with phoenix tokens
  35. Who needs lodash when you have elixir
  36. Using apollo client with elixirs absinthe
  37. Using create react app with phoenix
  38. Intercepting all queries in a meteor application
  39. How am i building inject detect
  40. Why Security?
  41. Inject Detect - Coming Soon!
  42. My Favorite Pattern Revisited
  43. Rendering Life on a Canvas with Phoenix Channels
  44. Build Your Own Code Poster with Elixir
  45. Playing the Game of Life with Elixir Processes
  46. My Favorite Pattern Without a Name
  47. Upgrade Releases With Edeliver
  48. Simplifying Elixir Releases With Edeliver
  49. Upgrade Releases With Distillery

2016 62

  1. Deploying Elixir Applications with Distillery
  2. Intentionally Learning Elixir
  3. How to use MongoDB With Elixir - Revisited
  4. Using Apollo Client with Elixir’s Absinthe
  5. Phoenix Todos - Public and Private Lists
  6. Basic Meteor Authentication in Phoenix
  7. Phoenix Todos - Authorized Sockets
  8. NoSQL Injection in Phoenix Applications
  9. How to Use MongoDB with Elixir
  10. Phoenix Todos - Updating and Deleting
  11. A Five Minute Introduction to NoSQL Injection
  12. Phoenix Todos - Adding Lists and Tasks
  13. Can Meteor Applications be “Mobile Only?”
  14. Phoenix Todos - Preloading Todos
  15. How to Safely Store Application Links
  16. Phoenix Todos - Public Lists
  17. Accounts is Everything Meteor Does Right
  18. Phoenix Todos - Finishing Authentication
  19. My Kingdom for Transactions
  20. Phoenix Todos - Transition to Redux
  21. Clone Meteor Collection References
  22. Phoenix Todos - Back-end Authentication
  23. Rewriting History
  24. Phoenix Todos - The User Model
  25. Querying Non-Existent MongoDB Fields
  26. Phoenix Todos - Static Assets
  27. Assessing Mobile Meteor Applications
  28. Meteor in Front, Phoenix in Back - Part 2
  29. Advent of Code: Not Quite Lisp
  30. Meteor in Front, Phoenix in Back - Part 1
  31. The Captain’s Distance Request
  32. Module Import Organization
  33. Nesting Structure Comparison
  34. Method Imports and Exports
  35. Molecule to Atoms
  36. Mocha’s Grep Flag
  37. Point in Polygon
  38. Meteor’s Nested Import Controversy
  39. Delete Occurrences of an Element
  40. Literate Commits
  41. Winston and Meteor 1.3
  42. A New Look For East5th
  43. Node Vulnerability Scanners in a 1.3 World
  44. NoSQL Injection and GraphQL
  45. MongoDB With Serverless
  46. Anatomy of an Assessment
  47. AWS Lambda First Impressions
  48. The Missing Link In Meteor’s Rate Limiter
  49. Transitioning to Modules With Global Imports
  50. Meteor Unit Testing With Testdouble.js
  51. Blaze Meets Clusterize.js
  52. CollectionFS Safety Considerations
  53. Bypassing Package-Based Basic Auth
  54. NoSQL Injection in Modern Web Applications
  55. Stored XSS and Unexpected Unsafe-Eval
  56. Cross Site Scripting Through jQuery Components
  57. Why You Should Always Check Your Arguments
  58. Method Auditing Revisited
  59. Preparing for the Crater Conference
  60. Sending Emails Through Hidden Methods
  61. Scripting With MongoDB
  62. Home Sweet Home in Chattanooga

2015 54

  1. Unit Testing With Meteor 1.3
  2. Meteor Club Q&A on Security
  3. Scanning Meteor Projects for Node Vulnerabilities
  4. Giving Thanks
  5. Building Check-Checker as a Meteor Plugin
  6. Sorting By Ownership With MongoDB
  7. Why I Can’t Wait For ES6 Proxies
  8. Meteor Space Camp
  9. Rename Your Way To Admin Rights
  10. Package Scan Community Contributions
  11. Slimming Down Fat Models
  12. Package Scan Web Tool
  13. Exporting ES6 Classes From Meteor Packages
  14. Never Forget Where Your Code Runs
  15. Counting Fields With Mongo Aggregations
  16. Hijacking Meteor Accounts With XSS
  17. Incomplete Argument Checks
  18. Hijacking Meteor Accounts by Sniffing DDP
  19. The Ecstasy of Testing
  20. DOS Your Meteor Application With Where
  21. Returning Promises Synchronously
  22. Check-Checker Checks Your Checks
  23. Exploiting findOne to Aggregate Collection Data
  24. Why Is Rename Disallowed?
  25. Basic Auth For Hiding Your Application
  26. Black Box Meteor - Shared Validators
  27. Meteor Club Podcast - Talking Security
  28. Allow & Deny Challenge - Check Yourself
  29. Good Night 1pxsolidtomato
  30. Authentication with localStorage
  31. Keep It Secret, Keep It Safe
  32. Mongo’s Multi Parameter Saves the Day
  33. Private Package Problems
  34. Meteor Security in the Wild
  35. Meteor Package Scan
  36. Black Box Meteor - Package Scanning
  37. Discover Meteor - Mentoring Session
  38. Black Box Meteor - Method Auditing
  39. NoSQL Injection - Or, Always Check Your Arguments!
  40. Black Box Meteor - Triple Brace XSS
  41. Recursive Components with Meteor and Polymer
  42. Materialize Highs and Lows
  43. User Fields and Universal Publications
  44. Meteor Composability
  45. Customizable Meteor Navbar with Orion CMS
  46. Custom Categories with Meteor’s Orion CMS
  47. Meteor and Mongod.lock
  48. Meteor Velocity: Down the Debugging Rabbit Hole
  49. Announcing East5th!
  50. Suffixer! Find Meaningful Unregistered Domains
  51. Mongo Text Search with Meteor
  52. The Dangers of Debouncing Meteor Subscriptions
  53. Custom Block Helpers and Meteor Composability
  54. Zapier Named Variables - Scheduling Posts Part 2

2014 23

  1. Scheduling Posts with Jekyll, Github Pages & Zapier
  2. Hide Menu: My First Sublime Text Plugin
  3. BYO Meteor Package
  4. Throw Back Thursday: Julia Sets with Sass
  5. Aspect Ratio Media Queries
  6. Joining the Tiling WM Master Race
  7. My Meteor Hello World - countwith.me
  8. Meteor First Impressions
  9. Thinking Out Loud About Screencasting Platforms
  10. Building Ms. Estelle Marie
  11. Chrome LiveReload Extension and Remote Machines
  12. CrossView Fun With CSS
  13. Laravel Queue’s Sleep Contributes to its Timeout
  14. Laravel 4.2 Command “Queue:Restart” is Not Defined
  15. The Quest for Scalable SVG Text
  16. Firebase! - T.U.S.T.A.C.R. Part 2
  17. Frontend Workflow - T.U.S.T.A.C.R. Part 1
  18. Namecheap + Amazon S3
  19. Git Bisect and Commit History
  20. Responsive SVG Height Issue
  21. Smart Forms - Automate and Build Your Own Tools!
  22. My Concurrent Jekyll Gruntfile
  23. Prism.js and Github Pages

Undated 104

  1. http://www.petecorey.com/blog/2/
  2. http://www.petecorey.com/blog/3/
  3. http://www.petecorey.com/blog/4/
  4. http://www.petecorey.com/blog/5/
  5. http://www.petecorey.com/blog/6/
  6. http://www.petecorey.com/blog/7/
  7. http://www.petecorey.com/blog/8/
  8. http://www.petecorey.com/blog/9/
  9. http://www.petecorey.com/blog/10/
  10. http://www.petecorey.com/blog/11/
  11. http://www.petecorey.com/blog/12/
  12. http://www.petecorey.com/blog/13/
  13. http://www.petecorey.com/blog/14/
  14. http://www.petecorey.com/blog/15/
  15. http://www.petecorey.com/blog/16/
  16. http://www.petecorey.com/blog/17/
  17. http://www.petecorey.com/blog/18/
  18. http://www.petecorey.com/blog/19/
  19. http://www.petecorey.com/blog/20/
  20. http://www.petecorey.com/blog/21/
  21. http://www.petecorey.com/blog/22/
  22. http://www.petecorey.com/blog/23/
  23. http://www.petecorey.com/blog/24/
  24. http://www.petecorey.com/blog/25/
  25. http://www.petecorey.com/blog/26/
  26. http://www.petecorey.com/blog/27/
  27. http://www.petecorey.com/blog/28/
  28. http://www.petecorey.com/blog/29/
  29. http://www.petecorey.com/blog/30/
  30. http://www.petecorey.com/blog/31/
  31. http://www.petecorey.com/blog/32/
  32. http://www.petecorey.com/blog/33/
  33. http://www.petecorey.com/blog/34/
  34. http://www.petecorey.com/blog/35/
  35. http://www.petecorey.com/blog/36/
  36. http://www.petecorey.com/blog/37/
  37. http://www.petecorey.com/blog/38/
  38. http://www.petecorey.com/blog/39/
  39. http://www.petecorey.com/blog/40/
  40. http://www.petecorey.com/blog/41/
  41. http://www.petecorey.com/blog/42/
  42. http://www.petecorey.com/blog/43/
  43. http://www.petecorey.com/blog/44/
  44. http://www.petecorey.com/blog/45/
  45. http://www.petecorey.com/blog/46/
  46. http://www.petecorey.com/blog/47/
  47. http://www.petecorey.com/blog/48/
  48. http://www.petecorey.com/blog/49/
  49. http://www.petecorey.com/blog/50/
  50. http://www.petecorey.com/blog/51/
  51. http://www.petecorey.com/blog/52/
  52. http://www.petecorey.com/blog/53/
  53. http://www.petecorey.com/blog/54/
  54. http://www.petecorey.com/blog/55/
  55. http://www.petecorey.com/blog/56/
  56. http://www.petecorey.com/blog/57/
  57. http://www.petecorey.com/blog/58/
  58. http://www.petecorey.com/blog/59/
  59. http://www.petecorey.com/blog/60/
  60. http://www.petecorey.com/blog/61/
  61. http://www.petecorey.com/blog/62/
  62. http://www.petecorey.com/blog/63/
  63. http://www.petecorey.com/blog/64/
  64. http://www.petecorey.com/blog/65/
  65. http://www.petecorey.com/blog/66/
  66. http://www.petecorey.com/blog/67/
  67. http://www.petecorey.com/blog/68/
  68. http://www.petecorey.com/blog/69/
  69. http://www.petecorey.com/blog/70/
  70. http://www.petecorey.com/blog/71/
  71. http://www.petecorey.com/blog/72/
  72. http://www.petecorey.com/blog/73/
  73. http://www.petecorey.com/blog/74/
  74. http://www.petecorey.com/blog/75/
  75. http://www.petecorey.com/blog/76/
  76. http://www.petecorey.com/blog/77/
  77. http://www.petecorey.com/blog/78/
  78. http://www.petecorey.com/blog/79/
  79. http://www.petecorey.com/blog/80/
  80. http://www.petecorey.com/blog/81/
  81. http://www.petecorey.com/blog/82/
  82. http://www.petecorey.com/blog/83/
  83. http://www.petecorey.com/blog/84/
  84. http://www.petecorey.com/blog/85/
  85. http://www.petecorey.com/blog/86/
  86. http://www.petecorey.com/blog/87/
  87. http://www.petecorey.com/blog/88/
  88. http://www.petecorey.com/blog/89/
  89. http://www.petecorey.com/blog/90/
  90. http://www.petecorey.com/blog/91/
  91. http://www.petecorey.com/blog/92/
  92. http://www.petecorey.com/blog/93/
  93. http://www.petecorey.com/blog/94/
  94. http://www.petecorey.com/blog/95/
  95. http://www.petecorey.com/blog/96/
  96. http://www.petecorey.com/blog/97/
  97. http://www.petecorey.com/blog/98/
  98. http://www.petecorey.com/blog/99/
  99. http://www.petecorey.com/blog/100/
  100. http://www.petecorey.com/blog/101/
  101. http://www.petecorey.com/blog/102/
  102. http://www.petecorey.com/blog/103/
  103. http://www.petecorey.com/blog/104/
  104. http://www.petecorey.com/blog/105/