Skip to content

Instantly share code, notes, and snippets.

View mnutt's full-sized avatar

Michael Nutt mnutt

View GitHub Profile
@mnutt
mnutt / example.md
Last active December 27, 2023 14:10
TreeStyleTab sidebar tabs only

Example:

firefox

diff --git a/src/gui/configure.json b/src/gui/configure.json
index 0202f17b21..c095859ca6 100644
--- a/src/gui/configure.json
+++ b/src/gui/configure.json
@@ -302,8 +302,9 @@
"hb_buffer_destroy(buffer);"
]
},
- "headers": "harfbuzz/hb.h",
+ "headers": "hb.h",
@mnutt
mnutt / Instrument Anything in Rails 3.md
Created September 6, 2010 06:50
How to use Rails 3.0's new notification system to inject custom log events

Instrument Anything in Rails 3

With Rails 3.0 released a few weeks ago I've migrated a few apps and I'm constantly finding useful new improvements. One such improvement is the ability to log anything in the same way that Rails internally logs ActiveRecord and ActionView. By default Rails 3 logs look slightly spiffier than those produced by Rails 2.3: (notice the second line has been cleaned up)

Started GET "/" for 127.0.0.1 at Mon Sep 06 01:07:11 -0400 2010
  Processing by HomeController#index as HTML
  User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE (`users`.`id` = 3) LIMIT 1
  CACHE (0.0ms)  SELECT `users`.* FROM `users` WHERE (`users`.`id` = 3) LIMIT 1

Rendered layouts/_nav.html.erb (363.4ms)

function relativeHash(newUrl);
const currentUrl = new URL("http://somesite.com/index.html#/page/a"); // or just document.location
const newPath = new URL("../blog/b", `http://example.com${currentUrl.hash.slice(1)}`).pathname;
currentUrl.hash = `#${newPath}`;
}
@mnutt
mnutt / created-times.rb
Last active April 17, 2020 00:37
Generate CSV of file created/modified times
# USAGE:
# 1. Save this file to your Desktop (Cmd-S, click Desktop in the left sidebar)
# 2. Open Terminal.app (Cmd-space, type "terminal", hit enter)
# 3. Type this, exactly: ruby ~/Desktop/created-times.rb
# 4. You should see some output about checking directories and how many files were loaded.
# 5. A media-.......csv file will appear on your Desktop, which can be loaded with Excel
require 'time'
extensions = ["jpg", "jpeg", "mov", "heic", "mp4"]
@mnutt
mnutt / prettier.sh
Created June 6, 2019 18:51
Prettier project wrapper
#!/bin/bash
# This wrapper prefers your project's prettier version, and only runs prettier if your project has configured it.
# Save this file as `prettier` in your $PATH, or set your editor's prettier plugin to use it as the prettier binary
# find the file prettier is trying to prettify
file=${BASH_ARGV[0]:="."}
# optionally set where the real prettier command can be found
@mnutt
mnutt / before-async-await.js
Last active May 15, 2019 19:52
In-memory write-through cache with async/await
// before async/await
cache.oldThrough(cacheKey, function getData(cb) {
fetch(appUrl, function(response) {
response.text(function(data) {
cb(data);
});
});
}, function (template) {
res.end(template);

Some HTML attack vectors (not all)

POST/PUT/DELETE/PATCH actions

  • via XHR
    • sends user's cookies
    • cross-origin restrictions protect against malicious sites, unless you have bad CORS settings
  • via form
    • sends user's cookies
    • need to protect with csrf token
  • or you can prevent form POST entirely with x-requested-with request header check
{
"_class": "page",
"do_objectID": "E3FF0D84-6B60-4A08-80D9-EDDA368D2198",
"booleanOperation": -1,
"exportOptions": {
"_class": "exportOptions",
"exportFormats": [],
"includedLayerIds": [],
"layerOptions": 0,
"shouldTrim": false
@mnutt
mnutt / gist:9937805
Last active February 2, 2018 16:45
Determining URL schemes of an iTunes app
  1. Get The Unarchiver (compression utility) here: https://theunarchiver.com/
  2. Opens iTunes for Mac and download the app from the app store
  3. Open Finder and navigate to Music/iTunes/iTunes Media/Mobile Applications
  4. Select the application you downloaded, and drag it into The Unarchiver to extract it
  5. Navigate into the extracted directory, then into Payload, and you should see an app
  6. Right-click the app and select "Show Package Contents"
  7. Find the file "Info.plist", right-click it and select "Quick Look"
  8. Look through the file for CFBundleURLSchemes (it'll be indented)
  9. Right below that should be , with each URL scheme inside a tag.