Peter Lyons

Pete's Points

A blog about web development, programming, and technology

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