Skip to content

Instantly share code, notes, and snippets.

@Joopmicroop
Joopmicroop / extractRSSFromItunesURL
Created November 8, 2018 13:20
extract the rss feed from an itunes podcast url
#!/bin/bash
#URL="https://itunes.apple.com/us/podcast/surprisingly-awesome/id1053898"
isValidURLRegex='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
if [[ $1 =~ $isValidURLRegex ]]
then
# extract id from url
ID=$(echo $1 | grep -oP 'id\d+' | grep -oP '\d+')
else
ID=$1
@Joopmicroop
Joopmicroop / saveSelection and restoreSelection
Created August 30, 2018 13:41
to save and restore the cursor position/selection of eg contentEditable elements after update render
var saveSelection, restoreSelection;
if (window.getSelection && document.createRange) {
saveSelection = function(containerEl) {
var range = window.getSelection().getRangeAt(0);
var preSelectionRange = range.cloneRange();
preSelectionRange.selectNodeContents(containerEl);
preSelectionRange.setEnd(range.startContainer, range.startOffset);
var start = preSelectionRange.toString().length;
@Joopmicroop
Joopmicroop / compareSentences
Last active June 1, 2018 16:17
compare sentences / equality fitness function
function calculateStringFitness(str0,str1,opt){
function countMatches(a0, a1){
var matches, pos0, pos1, matchObj;
matches = pos0 = pos1 = 0;
matchObj = {};
a0 = a0.sort();
a1 = a1.sort();
// writen but untested
function HashTable(obj){
this.length = 0;
this.items = { };
for(var p in obj){
if(obj.hasOwnProperty(p)){
this.items[p] = obj[p];
this.length++;
@Joopmicroop
Joopmicroop / bash open urlList in Chrome
Created February 2, 2018 15:33
bash open urlList in Chrome
#!/bin/bash
if command -v chrome 1>/dev/null; then
chromeUrlList=(
"https://google.com"
"https://gmail.com"
)
# create subShell
( chrome ${chromeUrlList[*]} &>/dev/null 2>/dev/null & )
fi
@Joopmicroop
Joopmicroop / onCD bash
Last active January 5, 2018 19:58
run script on cd'ing into and out of a directory
# onCD
# -----
# Place the code below in your .bashrc file.
# then place a script in any directory, named 'oncd.sh'
# the script will receive an argument of 'enter' or 'leave'
# when cd'ing into or out of the directory.
#(doesn't work with "shopt -s autocd", use COMMAND_PROMPT for that)
cd () {
oldpath=$PWD
@Joopmicroop
Joopmicroop / unified amd, exports, window
Last active August 12, 2016 09:12
write modules compatible for amd require/exports or root/window
(function (root, factory) {
if (typeof define === "function" && define.amd) define(factory); // amd
else if(typeof module == 'object') module.exports = factory(); // node require
else if(typeof exports == 'object') exports = factory(); // browserify
else root.ResizeSensor = factory(); // root/window
})(this, function () {
// code here
// return foo;
})
@Joopmicroop
Joopmicroop / canvas gradient circle - ball
Last active May 25, 2016 10:17
canvas helper functions
var gradientCircle = function(x,y,r,innerColor,outerColor){
this.beginPath();
this.arc(x,y,r,0*Math.PI,2*Math.PI);
var grd = this.createRadialGradient(x, y, 0, x, y, r);
grd.addColorStop(0,innerColor);
grd.addColorStop(1,outerColor);
this.fillStyle = grd;
this.fill();
this.closePath();
}.bind(this.ctx);
// match everything within style tags
(?<=(<style[^>]*>))([^]+?)(?=(<\/style>))
@Joopmicroop
Joopmicroop / array add-remove
Last active January 5, 2016 12:58
Array add/remove item reminder
Summary:
--------
add: unshift -> array <- push
remove: shift <- array -> pop
Chart:
------
add remove start end
push X X
pop X X