Peter Lyons
Pete's Points
A blog about web development, programming, and technology
Kipra Keyboard v2 Build Video
August 25, 2024
Dev Logs Without the Noise
August 24, 2024
Paginaton for Product Managers
July 27, 2024
Tips for Switching from Linux to Mac
July 20, 2024
Where I Get Tech News in 2024
June 29, 2024
Kipra Keyboard Build Guide
May 18, 2024
Kipra Keyboard
May 11, 2024
Range Daily Checkins
January 16, 2024
Cuddle Up to KDL
November 16, 2023
Skeletyl Keyboard Build
April 23, 2023
Markdown to PDF with weasyprint
February 21, 2023
Tolerable HTML and CSS
December 07, 2022
Squeezebox Scorecard
December 03, 2022
Engram Plans
October 22, 2022
Squeezebox Keyboard v2209
October 13, 2022
Focus Retreat Center Programming Retreat
June 28, 2022
Squeezebox Tweaks and Plans
March 12, 2022
Squeezebox Daily Driver Update
February 25, 2022
Squeezebox Keyboard v2112
January 02, 2022
Exploring Editors
August 30, 2021
Squeezebox Keyboard v2105
June 11, 2021
Squeezebox Keyboard
April 17, 2021
Staff Engineer Solver Archetype
March 23, 2021
Home LAN Improvements
January 24, 2021
The Problem Mindset
November 28, 2020
Novelty Makes Novices
September 19, 2020
Original ErgoDox is Better than Infinity
September 17, 2020
ErgoThink T420 Laptop Tray
September 10, 2020
Reading Pseudogrammars
June 12, 2020
Which files do they edit
June 05, 2020
GraphQL Pagination and Sorting
April 15, 2020
Switched to Arch Linux
January 12, 2020
cargo doc and linux default browser
October 02, 2019
Sorting YAML keys
April 10, 2019
New Work Journal System
January 15, 2019
Handling optional arguments in bash
December 19, 2018
Fuzzball Desktop Automation
November 25, 2018
tealeaves gets rust and docker updates
September 17, 2018
Securing local development with containers
July 13, 2018
The Art of the node.js Rescue
July 11, 2018
Linux Mint 19 Cinnamon
July 04, 2018
Linux Setup Progress
April 21, 2018
Switching Back to Linux
April 16, 2018
Denver Rust Meetup Reactivated
March 01, 2018
StackOverflow 100K
February 15, 2018
Hourly Billing Is OK
January 13, 2018
zsh lazy loading
January 04, 2018
Available for Consulting
January 03, 2018
rust dependency hell with features
December 20, 2017
rust converting bytes chars and strings
December 16, 2017
Recurse Center 23: SQL window functions
December 12, 2017
Recurse Center 22: tealeaves refactored
December 12, 2017
Recurse Center 21: nom and combinators
December 09, 2017
Recurse Center 20: Parsing is hard. Let's go shopping.
December 08, 2017
Recurse Center 19: ASN.1 Tagged Context
December 06, 2017
Recurse Center 18: SQL joins
December 05, 2017
How to use docker to run local databases
December 05, 2017
Recurse Center 17: ssh public keys
December 05, 2017
Recurse Center 16: tealeaves is useful
December 01, 2017
OpenSSH ed25519 private key file format
December 01, 2017
Recurse Center 14: OpenSSH key files
November 30, 2017
Recurse Center 13: ssh private key PEM files
November 28, 2017
rust custom Display and sorting
November 28, 2017
Recurse Center 12: AsRef
November 27, 2017
Recurse Center 11: rsfs rust associated types
November 21, 2017
Recurse Center 10: filesystem palindrome
November 21, 2017
Recurse Center 9: rayon par iter
November 17, 2017
Never Graduate
November 17, 2017
Recurse Center 8: binary literals
November 17, 2017
Recurse Center 7: blockchain mining in rust
November 16, 2017
Recurse Center 6: nth prime
November 14, 2017
Recurse Center 5: command line arg parsing
November 13, 2017
Quick Thoughts: Machine Learning
November 12, 2017
Recurse Center 4: Reservoir Sampling
November 10, 2017
Recurse Center 3: Box
November 10, 2017
Recurse Center 2: Generics
November 08, 2017
Recurse Center 1: Shuffle Iterator
November 07, 2017
Recurse Center 0: Rust Anagrams
November 07, 2017
How I Plan to Learn Rust
October 25, 2017
Quick Thoughts
October 08, 2017
Quick Thoughts: Less Twitter
September 01, 2017
I hate electron apps
May 17, 2017
VPN annoyances
May 10, 2017
Meaning in Technical Communication
April 25, 2017
AWS Lambda Object Mother
April 24, 2017
secrets in zsh history
April 17, 2017
Python Last Month
April 01, 2017
Transforming Gaia
March 27, 2017
Fun with Inodes
March 17, 2017
Right tool for the job
February 18, 2017
localstorage Analogy
February 18, 2017
AWS API Gateway Misleading Error
February 02, 2017
Level 1 Web Development
January 26, 2017
Learning elm
December 10, 2016
JSON comment tricks
December 10, 2016
Podcast Roster
November 08, 2016
Words to Avoid
November 02, 2016
How to Ally
October 23, 2016
ripgrep is the new hotness
October 21, 2016
A Tale of Two Nows
October 14, 2016
JavaScript Air Async Patterns
October 12, 2016
Best Regular Expression Dev Tools
September 05, 2016
Atom Self-Update Script
August 08, 2016
settimeout and nanoseconds
July 30, 2016
Using lambdas with Bluebird.map
July 26, 2016
Debugging built into node
July 17, 2016
Check for Pull Requests in All Your Repos
June 09, 2016
SQLite on The Changelog
June 03, 2016
Why is Node Running
April 08, 2016
javascript try catch is fail
March 23, 2016
keeping npm dependencies up to date
March 15, 2016
expressjs gratitude
February 28, 2016
Quick Thoughts: Universe Lifetime
January 02, 2016
Command Line: Newbie to Ninja
December 06, 2015
Terrible Customer Support from Chase
November 25, 2015
Announcing White Glove
November 16, 2015
Project Fi and Nexus 5X report
November 11, 2015
Tools for Cleaning Up Messy JavaScript
October 22, 2015
eslint: toward javascript lint nirvana
October 22, 2015
Eliminate Useless Callback Wrappers in JavaScript
September 03, 2015
The Virtuous Traitor
June 29, 2015
12-Factor Apps in node
May 27, 2015
OSX Development Setup
February 06, 2015
setTimeout and Friends
March 12, 2014
Article on using the JavaScript Debugger
February 24, 2014
Announcing Plus Party
February 22, 2014
Announcing Wallah
February 21, 2014
Web Site Overhaul
February 20, 2014
Open Office Hours Tuesday at Scrib
January 26, 2014
From CoffeeScript Back to JavaScript
January 22, 2014
New Geek Badge: Soldering
November 19, 2013
Quick Tips for Setting Up TLS
October 17, 2013
Flickr Date Fixer
April 28, 2013
AirPair on TechCrunch
March 04, 2013
My Airpair Session was written up
February 26, 2013
Airpair
February 23, 2013
npm modules: development and release versions
February 01, 2013
Hilarious Recruiter Email
December 12, 2012
Find closer OKCupid matches with this bookmarklet
October 23, 2012
Great Support from Herman Miller
September 27, 2012
Managing Per-Project Interpreters and the PATH
September 02, 2012
CoffeeScript and Progress
March 05, 2012
Noding for Sococo
February 21, 2012
Node Summit
January 31, 2012
Build a Consumer App With Node.js
January 21, 2012
Troubleshooting responsive layout with :after
January 11, 2012
Tips for MongoDB Migrations in Rails
December 27, 2011
No Need for npm -g
December 22, 2011
The destiny of complex languages
December 04, 2011
Hands off my window title!
November 29, 2011
Linkzie gets a stack upgrade
November 24, 2011
Thoughts on launching and scaling quickly
October 24, 2011
New Linkzie Release: Nice UI improvements
July 30, 2011
Web Framework Woes
July 05, 2011
Linkzie 0.7.1 released
July 05, 2011
Commander: Utility Automation
July 02, 2011
MicroConf
June 05, 2011
Great Design: Fat Brain Toys Order Confirmation
May 02, 2011
Good node.js things are happenning
April 13, 2011
Node docs vs. Rails docs
April 05, 2011
Baby steps in node.js
March 24, 2011
Show HN: My bookmarking app
March 17, 2011
My Lifestyle Business Hero
March 10, 2011
Startup Weekend Boulder: Bridge My Path
February 28, 2011
Linkzie gets a bookmarklet
February 20, 2011
House of Genius
February 19, 2011
Going all in on Google Calendar and Android
February 18, 2011
New web designs
February 16, 2011
Going all in on gmail
February 10, 2011
node.js and command line jQuery
February 09, 2011
The Perfect Exercise Headphones
February 07, 2011
And the bots show up
February 06, 2011
dayJob.quit()
January 28, 2011
Wiki migration from MoinMoin to gitit
January 10, 2011
Unit tests are like Ewoks
December 02, 2010
Managing complexity and chaos
November 23, 2010
OS X and CD burning non-smartness
October 19, 2010
jQuery and Ball World
October 14, 2010
Home LAN fails and wins
October 11, 2010
Cease and desist your password restrictions
September 09, 2010
A response to "Handling Bugs in an Agile Context"
September 08, 2010
Sonos pricing insanity continued
September 07, 2010
No one really cares about web accessibility anyway...
September 07, 2010
No squids for me, Bruce
September 05, 2010
UNIX is broken
September 04, 2010
On flash eating my key browser keyboard commands
August 30, 2010
How to Install Ubuntu 10.04 over a LAN
July 17, 2010
Windows Server 2008 Setup Annoyances
July 10, 2010
Remove your SCM system from your job postings
July 07, 2010
On Idempotence, intention, and unix commands
May 21, 2010
Bleeding Edge and Rotting Core
March 19, 2010
MoinMoin Columns Macro
March 08, 2010
Optional Syntax Should Be Illegal
February 14, 2010
Environment Variables Considered Harmful
February 14, 2010
Business hours
September 22, 2009
The wheel of not waiting
September 18, 2009
How to disable wpautop in WordPress blogs
May 23, 2009
Maritz: 1 - Very Dissatisfied
May 17, 2009
How to zip a directory in python
April 27, 2009
Thoughts on Scrum
April 17, 2009
Code Conventions
March 15, 2009
How to run two wordpress blogs on one web site
March 15, 2009
Music subscription and Rhapsody
March 15, 2009
Announcing Pete's Points
March 15, 2009