Skip to content

Instantly share code, notes, and snippets.


Kent Brewster kentbrew

View GitHub Profile
kentbrew /
Last active Sep 24, 2022
Finding Twitter User IDs

Finding Twitter User IDs

User accounts on Twitter are commonly identified by screen name, which may be changed by operators when they take over an account, or have been sitting on an old account for a long time and want to transition it into malicious use.

User IDs, however, are permanent. There are several services out there that will try to find them for you but it seems like a bad idea to me, since you're alerting them to the fact that there's something interesting about this account. There's also plenty of bad advice that uses many long-since-abandoned Twitter API endpoints.

As of this writing (2018-02-18) you can view source and search for /profile_banners/, which will show something like this:

.enhanced-mini-profile .mini-profile .profile-summary {
kentbrew /
Last active Aug 16, 2022
How To Get Your Stuff On Pinterest

Here's a doc we never published while I was at Pinterest. Some or all of it may be useful; please keep in mind that I've been ex-Pinterest since March 2022 and cannot help if it doesn't work.

I apologize in advance for the chirpy Pinterest editorial tone throughout; it's a Thing there.

How To Get Your Stuff On Pinterest

Hi, all. Kent Brewster here, oldest surviving engineer at Pinterest. For the past ten years we've been working on a handful of things that help people who love Pinterest find new inspiration from the Web and share it as easily as possible.

These things are:

kentbrew /
Last active Aug 14, 2022
How to change the Chrome default language on OSX

How to Change your Chrome Default Language

Open up a Terminal window. (If you have never seen Terminal before, go to Spotlight Search and type "Terminal.")

In the Terminal box, try this:

defaults read AppleLanguages

If you see this:

kentbrew / favicon-interceptor.js
Created Jan 3, 2011
How to short-circuit those annoying favicon requests in node.js
View favicon-interceptor.js
// early experiments with node had mysterious double requests
// turned out these were for the stoopid favicon
// here's how to short-circuit those requests
// and stop seeing 404 errors in your client console
var http = require('http');
http.createServer(function (q, r) {
// control for favicon
kentbrew /
Last active Jul 15, 2022
How I Got Node.js Talking on EC2's Port 80

The Problem

Standard practices say no non-root process gets to talk to the Internet on a port less than 1024. How, then, could I get Node talking on port 80 on EC2? (I wanted it to go as fast as possible and use the smallest possible share of my teeny tiny little micro-instance's resources, so proxying through nginx or Apache seemed suboptimal.)

The temptingly easy but ultimately wrong solution:

Alter the port the script talks to from 8000 to 80:

kentbrew /
Last active Jun 19, 2022
How to recreate your long-lost Pinterest bookmarklet.

How to recreate your long-lost Pinterest bookmarklet.

Right-click your bookmarks bar and choose Add Page (Chrome) or New Bookmarklet (Firefox).

In Name, put this:

Pin It

In URL, put this:

kentbrew /
Last active Jun 2, 2022
Using DOMParser to clean HTML input

Old School:

  var clean = function (input) {
    var testMe = input, dupeTest = '';
    while (testMe !== dupeTest) {
      testMe = new DOMParser().parseFromString(testMe, "text/html").documentElement.textContent;
      dupeTest = testMe;
    testMe = testMe.replace(/</g, '&lt;');

return testMe;

kentbrew /
Last active Dec 7, 2021
The One True White Elephant Gift Exchange Ruleset

The One True White Elephant Gift Exchange Ruleset

Gifts must:

  • Number the exact number of players.
  • Be wrapped so their contents cannot be visually discerned.


  • All gifts must be placed in a location where players can see all of them.
View wholikesmitt.html
<title>Who Likes Mitt?</title>
pre#output {
height: 12em;
width: 500px;
overflow: auto;
View game.js
/* use strict */
const me = {
// we could potentially set this in game.create from game["_gridWidth"]
// instead of hard-coding the number 24
board: {
height: 24,
width: 24
// starting score should be 0