Skip to content

Instantly share code, notes, and snippets.


Kent Brewster kentbrew

View GitHub Profile
kentbrew / spinny_button.svg
Last active Jan 31, 2018
Recreating the Pinterest Spinny Button
View spinny_button.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
kentbrew /
Last active Sep 30, 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 / content.js
Last active Jan 5, 2018
Alt-Titler: fill blank image TITLE attributes with what's in their ALT attribute, if found.
View content.js
// Fill blank image TITLE attributes with what's in their ALT attribute, if found.
((w, d) => {
let $ = {
// w = window
w: w,
// d = document
d: d,
f: {
// return an event's target element
kentbrew / background.js
Last active Nov 30, 2017
Tracker Jacker
View background.js
const BLOCK_ME = "://";
function(r) {
return {
cancel: r.url.indexOf(BLOCK_ME) != -1
{urls: ["<all_urls>"]},
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 /
Created Jul 11, 2017
Some Notes On Zetterberg's Static Search Widget
kentbrew / wilensky.js
Created Jul 9, 2017
Imagine a room full of 100 people with 100 dollars each. With every tick of the clock, every person with money gives a dollar to one randomly chosen other person. After some time progresses, how will the money be distributed?
View wilensky.js
// paste me into console to explore the counterintuitive problem found here:
// setup: tweak as needed
var rounds = 10, turns = 1000, max = 100, start = 100;
// play one round
var round = function () {
// setup
kentbrew / behavior.js
Created Jun 23, 2017
Scale and Render an Image for Visual Search
View behavior.js
(function (w, d, a) {
var $ = w[a.k] = {
"a": a, "w": w, "d": d,
"s": {},
"v": {},
"f": (function () {
return {
// get a DOM property or text attribute
get: function (el, att) {
var v = null;
kentbrew /
Last active Sep 11, 2017
Towards A Modernized JavaScript Class Name Changer

Towards A Modernized JavaScript Class Name Changer

Previously we'd do something horrible with string matching when we wanted to change an HTML element's class name with JavaScript.

var changeClass = function (el, add, remove) {
  if (el) {

    if (!el.className) {
      el.className = '';
kentbrew /
Last active Dec 30, 2017
Toggling Global Features in Browser Extensions

Toggling Global Features in Browser Extensions

Developers wanting to add context menus to browser extensions face an all-or-nothing situation: context menu items, being global features, will be present on all pages once created. Adding a context menu item is easy, but if we want it to show only on certain Internet domains we will need to:

  • keep an eye on the active tab
  • check its domain whenever it changes
  • show or hide the context menu depending on the domain of the page in the tab

APIs we'll be using: