Skip to content

Instantly share code, notes, and snippets.

View josh-works's full-sized avatar

Josh Thompson josh-works

View GitHub Profile
josh-works /
Last active May 23, 2024 19:24
notes for profiling/benchmarking/improving the Mastodon rails app

I always keep a text file in the repo I'm working in, containing all my notes, and I'll periodically copy that document over to here. I'll link between the notes, the PR that i'll make soon, and more. This is spiritually similar to me speeding up the OpenStreetMap website test harness by 70% (sorta working in public/teaching/explaining/creating collateral)

josh's ongoing dev notes

PR associated with this work: @mastodon, Help the test harness run more speedily #29992

Public version of this file you're reading right now

josh-works /
Last active April 19, 2024 00:33
dev notes for OpenStreetMap test harness fix. 8 minutes -> 5 minutes
josh-works /
Last active April 11, 2023 20:02
Affordable (to buy/rent) and profitable (to build): uncovering unicorns in housing/development policy in the USA today.

Thesis: Housing can be affordable to the purchaser and profitable to the developer. For example, a finished studio apartment could be available at $700/mo, or a three-bed at $1300/mo, and the developer who builds it will consider the ROI on the project/investment to be exceptional.

The need to do something tends to trump the need to understand what needs to be done. And without data, anyone who does anything is free to claim success.

  • Angus Deaton, The Great Escape

Housing, broadly, is often considered a political issue, to be fixed by politicians.

I'll be quoating broadly from a recent seminal book by Urban Economist Alain Bertaud, specifically from Chapter 6: Affordability (p 219).

josh-works /
Last active May 21, 2021 18:14
Ongoing course notes for Idahosa's Flow School

I often write detailed walk-throughs of difficult learning projects I take on.

This document serves as the same, a bit of an active scratch pad, and a way to quickly ask detailed questions of my team, and perhaps provide detailed answers for my team.

Useful links

1. I am not on a leaderboard, but I want to be

josh-works /
Last active March 8, 2021 06:35
I'm making a plea for help from others for resolving my display problems. This is basically what I would write in StackOverflow, if I knew which StackOverflow topic to use. Any help is much appreciated!

currently trying: USB-C->DisplayPort cord with SwitchResX to "force" the display up to a reasonable level

My home office setup has suffered some problems of late that are driving me insane.

The most annoying is my wired mouse. I use a wired Redragon Mammoth hooked up to my USB-C hub, and it started giving me problems when dragging anything. Like... a file, a screenshot, a window, it would rapidly (dozens of times a second) "drop" what I was dragging and then pick it up again.

This had extremely unpredictable effects, and was highly disruptive to my workflow.

I don't think my mouse is failing (my bluetooth mouse works fine, and for a variety of reasons I think the problem is my monitor is running at 30hz, not 60. more on that later.)

josh-works /
Last active April 14, 2022 01:35
Process & Workflow for solving programming challenges, Turing

"Process" is greater than everything

Having a good process is how you go about doing anything that takes a long time and is hard. A good process can be a faithful tool to help you learn dozens of things, now, and five years from now. It's flexible and it's powerful.

One of the biggest pieces of "having a good process" is "taking plentiful notes, easily and quickly"

I won't try to convince you. Here's Arique, currently in Mod 1, on how she's made use of this general process:

josh-works / exceptional_values.rb
Last active February 10, 2021 18:07
test, and the code that makes the test pass, to understand whole values and exceptional values, from Avdi Grim's, based on
class Object
def exceptional?
Course =, :duration) do
def duration=(new_duration)
self[:duration] = Duration(new_duration)
josh-works /
Last active April 13, 2018 17:45
ruby, benchmarking, double_inject

Double inject. What does it mean?

i want to know how long it takes to do some stuff. I've got some code like this:

def count_stuff(list)
  list.inject([]) do |results, item|
    results << get_results_from_something_else(values)

I needed a URL validator - it needed to check that URL's had HTTP or HTTPS at the beginning. I initially wrote a "before save" action, but didn't like it cluttering up my model. I found a reference to basically "monkey patching" Rail's default Validator class, so that's what I did!

# concerns/url_validator.rb
require 'uri'

class UrlValidator < ActiveModel::Validator

  def validate(record)
    if record.url?

On Learning

topics: {
      DEEP WORK:
        protect and cultivate (limited) attention,
        ear plugs,
        skeptical of music,
        examine your own process,