Skip to content

Instantly share code, notes, and snippets.

View davidsharp's full-sized avatar

David Sharp davidsharp

View GitHub Profile
@davidsharp
davidsharp / mailto-on-hover.html
Created November 8, 2020 12:27
Obfuscated email address mailto href on hover [PoC]
<!--some obfuscated email address-->
<a id="email">&#xfeff;&#xff48;&#xff45;&#xff4c;&#xff4c;&#xff4f;🍥&#xff45;&#xff58;&#xff41;&#xff4d;&#xff50;&#xff4c;&#xff45;👾&#xff43;&#xff4f;&#xff4d;</a>
@davidsharp
davidsharp / use-context-with-immutable-fn-hook.js
Created October 20, 2020 16:31
An example of a React context hook, but with an extra immer-powered immutable setter
import React, { createContext, useState, useContext } from 'react'
import immer from 'immer';
const ExampleStateContext = createContext()
const ExampleDispatchContext = createContext()
const ExampleProvider = ({children}) => {
const [example, setExample] = useState(null)
return (
<ExampleStateContext.Provider value={example}>
@davidsharp
davidsharp / clipboard-spy.10s.sh
Created October 20, 2020 11:12
bitbar plugin that shows whats in your clipboard, and allows you to clear it too [wip]
#!/bin/bash
function check(){
pbpaste | wc -m
}
function render(){
pbpaste
}
function clear(){
echo -n '' | pbcopy
@davidsharp
davidsharp / bounce.lua
Last active October 5, 2020 21:40
quick dumb lua/love2d script, keyboard and mouse controls and a bouncy ball
-- built for love
ball = {
x = 400,
y = 100,
r = 25
}
paddle = {
w = 100,
@davidsharp
davidsharp / sheets-widen-array.js
Created September 10, 2020 19:00
Widen an array of (row) arrays
function widenArray(arr,width) {
return arr.map(row=>row.length>=width?row:[...row,...(Array(width-row.length).fill(''))])
}
@davidsharp
davidsharp / shareable-text-hl.js
Last active September 8, 2020 10:05
quick node terminal script to get a shareable Chrome text highlight
#!/usr/bin/env node
const encode = text => `#:-:text=${encodeURI(shorten(text))}`
const shorten = text => {
const words = text.split(' ')
return words.length>10?
`${words.slice(0,5).join(' ')},${words.slice(words.length-5).join(' ')}`:
text
}
@davidsharp
davidsharp / transform-translate-2-x-y-regex.txt
Created August 26, 2020 12:09
find and replace string for turning illustrator `transform="translate(x y)"` to x and y attributes
// replace transform translate with x & y
transform="translate\(([0-9]*\.[0-9]*) ([0-9]*\.[0-9]*)\)"
x="$1" y="$2"
@davidsharp
davidsharp / nzip.sh
Created August 6, 2020 09:15
Quick ngrok-powered folder zipper and sharer (Better bash version of nzip.js)
#!/bin/bash
mkdir nzip-temp
zip -r nzip-temp/nzip $1
npx servor nzip-temp 8080 &
~/ngrok http 8080 &
open http://127.0.0.1:4040
@davidsharp
davidsharp / nzip.js
Last active August 5, 2020 16:25
quick ngrok-powered folder zipper and sharer
#!/usr/bin/env /usr/local/bin/node
const { exec } = require('child_process');
exec('mkdir nzip-temp')
exec('zip -r nzip-temp/nzip '+process.argv[2])
exec('npx servor nzip-temp 8080')
exec('~/ngrok http 8080')
exec('open http://127.0.0.1:4040')
exec('rm -rf nzip-temp')
@davidsharp
davidsharp / package.1h.js
Last active June 25, 2020 15:38
bitbar plugin that naively grabs package tracking info from package.place
#!/usr/bin/env /usr/local/bin/node
const bitbar = require('bitbar');
const http = require('https');
// change me for your package
const package = '188946163494'
let provider = null //'FEDEX'
http.get(`https://package.place/api/track/${package}`, (res) => {