Skip to content

Instantly share code, notes, and snippets.

Avatar

Jeremie Miserez jmiserez

View GitHub Profile
@jmiserez
jmiserez / rightclick-element-ios-safari-bookmarklet.js
Last active Oct 22, 2018 — forked from foobear/copy-element-text-bookmarklet.js
JavaScript bookmarklet to right click an element in Safari Mobile. Only works when "Request Desktop Site" is used, tested on 12.0.1. Adapted from https://gist.github.com/foobear/f19f2cca87eaf005922323fe04f993c7 (license: MIT).
View rightclick-element-ios-safari-bookmarklet.js
# Bookmarklet on one line:
javascript:(function(){var x=0;var y=0;var overlay=document.createElement('div');Object.assign(overlay.style,{position:'fixed',top:0,left:0,width:'100vw',height:'100vh',zIndex:99999999,background:'transparent',cursor:'crosshair'});document.body.append(overlay);overlay.addEventListener('click',function(event){Object.assign(overlay.style,{width:0,height:0});x= event.clientX;y=event.clientY; var element=document.elementFromPoint(x,y);var position=element.getBoundingClientRect();Object.assign(overlay.style,{background:'rgba(0,128,255,0.25)',outline:'1px solid rgba(0,128,255,0.5)',top:''+position.top+'px',left:''+position.left+'px',width:''+position.width+'px',height:''+position.height+'px'});setTimeout(function(){var ev1=new MouseEvent("mousedown",{bubbles:true,cancelable:false,view:window,button:2,buttons:2,clientX:x,clientY:y});element.dispatchEvent(ev1);var ev2=new MouseEvent("mouseup",{bubbles:true,cancelable:false,view:window,button:2,buttons:0,clientX:x,clientY:y});element.dispatc
@jmiserez
jmiserez / wslsuspendresumeps.sh
Last active Jun 12, 2019
Bash on WSL or Cygwin: suspend and resume Windows processes by name and optionally command line part
View wslsuspendresumeps.sh
# Add this to your Cygwin or WSL Ubuntu .bashrc
# Args:
# - process name
# - optional: commandline (use '%' as wildcards)
# Example: suspendps name commandline
# - suspendps notepad.exe %mytextfile.txt%
# - resumeps notepad.exe
# Note: pssuspend64.exe must be installed and available (https://docs.microsoft.com/en-us/sysinternals/downloads/pssuspend)
getwin32processid() {
# WSL / Windows 10 suitable version without spawning a shell
@jmiserez
jmiserez / forallsubdirs.sh
Last active Jun 12, 2019
Bash: "Execute for all subdirectories", execute commands in all subdirectorys, cache output and print sequentially with locking
View forallsubdirs.sh
# Add this to your .bashrc and source it (source ~/.bashrc)
# Example: forallsubdirs basedir commands
# - forallsubdirs . "ls | wc -l; git status"
# - forallsubdirs . "git fetch --all; git merge --ff-only"
# Note:
# - To include hidden directories (starting with a "."), set the dotglob option in Bash: shopt -s dotglob
# - Silencing job control (see comments) is only partially possible, in certain cases job control output will still be printed (see https://stackoverflow.com/a/38278291/202504).
forallsubdirs() {
if [ -d "$1" ]; then
dir="$1"
@jmiserez
jmiserez / extensions.zotfile.wildcards.user
Created May 27, 2016
Zotero ZotFile Renaming user json for setting: zotfile.wildcards.user. Simplifies series field (remove all non-words, e.g. "PLDI '14" -> "PLDI14") for journal articles and conference papers. Use like this: "{%a_}{%y_}{%1|%w_}{%t}" in ZotFile settings. Also see this bug report: https://github.com/jlegewie/zotfile/issues/170
View extensions.zotfile.wildcards.user
{
"1":{
"default":{},
"journalArticle":{
"field":"series",
"operations":[
{
"function":"replace",
"regex":"\\W",
"replacement":"",
View gist:65450a29fecf9d1e48eba100feaef889
#!/bin/bash
# Make default camera /dev/video0 point to the "best" camera present.
# Source: Jason Eisner http://askubuntu.com/a/520857/145754
# on question http://askubuntu.com/questions/396952/how-to-change-the-default-webcam-changing-dfaults-in-multimedia-selctor-not-wor
setdefaultwebcam() {
if [ -h /dev/video0 ]; then
sudo rm /dev/video0 # not first run: remove our old symlink
elif [ -e /dev/video0 ]; then
sudo mv /dev/video0 /dev/video0.original # first run: rename original video0
View keybase.md

Keybase proof

I hereby claim:

  • I am jmiserez on github.
  • I am jmiserez (https://keybase.io/jmiserez) on keybase.
  • I have a public key ASB1Z3r-6WbG1JJ12os9xUuXhFMe5QElabQLKWD_M29nPQo

To claim this, I am signing this object:

@jmiserez
jmiserez / vm.c
Created Jan 6, 2016
X86 (subset) interpreter, prototype. Reads instructions from plaintext file, instructions separated by spaces.
View vm.c
/*
* vm.c - Simple X86 interpreter
*
* Copyright (c) 2013, Jeremie Miserez <jeremie@miserez.org>
*/
/*
* Highlights/Features not specified in assignment
* ===============================================
* - Memory simulation of all 4GB with paging
View xenvm_decrypt_backup.sh
#!/bin/bash
#
# xenvm_decrypt_backup.sh
#
# Author: Jeremie Miserez <jeremie@miserez.org>
# Latest version: https://gist.github.com/jmiserez/11a8aafeee9256645ac5
#
# This script will decrypt encrypted images generated by xenvm_backup_encrypted.sh,
# (https://gist.github.com/jmiserez/f7771d0c82455128839d), when given a .key.enc file
# and if all related files are in the same directory as the .key.enc file.
@jmiserez
jmiserez / xenvm_backup_encrypted.sh
Last active Jan 6, 2016
Offline backup (cold, with shutdown/startup) of a XenServer VM with gzip, rate-limiting (pv), and public key + AES256 encryption (openssl). See xenvm_decrypt_backup.sh (https://gist.github.com/jmiserez/11a8aafeee9256645ac5) for decryption. Note: You *must* trust both the remote and local server, as well as the SSH connection.
View xenvm_backup_encrypted.sh
#!/bin/bash
#
# xenvm_backup_encrypted.sh
#
# Author: Jeremie Miserez <jeremie@miserez.org>
# Latest version: https://gist.github.com/jmiserez/f7771d0c82455128839d
#
# This script will:
# 1. Connect to a remote XenServer server over SSH
# 2. Shutdown the specified VM
@jmiserez
jmiserez / pidtree.sh
Last active Oct 6, 2015
Find child processes (and their children, etc.) with one ps call (no race conditions)
View pidtree.sh
#!/bin/bash
# Original idea: http://superuser.com/a/784102/59125
pidtree(){
pids_for_ppid=()
while read pid ppid; do
pids_for_ppid[$ppid]+=" $pid"
done < <(ps -e -o pid,ppid --no-headers)
You can’t perform that action at this time.