Skip to content

Instantly share code, notes, and snippets.

;(use-package noflet :ensure t)
(provide 'auto-recover-mode)
(define-minor-mode auto-recover-mode
"more documentation"
:global t
(if auto-recover-mode
(progn
(advice-add 'after-find-file :around #'auto-recover-mode/after-find-file-no-warn)
(advice-add 'recover-this-file :around #'auto-recover-mode/always-yes)
@lionicsheriff
lionicsheriff / chorded_keyboard.ino
Created August 19, 2014 15:19
The start of a chorded keyboard for the arduino.
// set up flags for the buttons
#define b1 B0000001
#define b2 B0000010
#define b3 B0000100
#define b4 B0001000
#define b5 B0010000
#define b6 B0100000
#define b7 B1000000
// make pin numbers easier to notice
@lionicsheriff
lionicsheriff / version.tt
Last active August 29, 2015 14:03
The start of a t4 template to automatically update the version (based off the TFS revision). It was supposed to be able to work out of the box without any dependencies past VS Professional, but it is currently unable to update on build.
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Diagnostics" #>
<# #if false
* WTF
@lionicsheriff
lionicsheriff / backup.sh
Last active January 1, 2016 22:59
Backup kindle books (from the kindle itself). For use in cron.
#!/bin/sh
SSID="YOUR WIRELESS SSID"
REMOTE_LOCATION="rsync://SERVER/module"
# wake up. Not sure if this is neccessary
# will error if already awake
lipc-set-prop com.lab126.powerd wakeUp 1
# start wireless
@lionicsheriff
lionicsheriff / devenv-compile.el
Last active October 7, 2016 16:19
Emacs: Compile visual studio projects from within emacs (M-x compile)
(defun mbg/devenv-compile nil
"Set up compile command for Visual Studio"
(interactive)
(let ((vsvars (shell-quote-argument "C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\Tools\\vsvars32.bat"))
(solution-file (shell-quote-argument
;; awesomely, locate-dominating-file returns the directory for the file
;; so when you use a pattern to find a file, you need to run it again in
;; the directory itself to get the file name. Who knew.
(car (directory-files
(locate-dominating-file default-directory
@lionicsheriff
lionicsheriff / wc.rb
Last active December 18, 2015 06:08
Store word counts of files over a period
#!/usr/bin/env ruby
require 'sqlite3'
require 'date'
require 'optparse'
require 'iconv' unless String.method_defined?(:encode) # needed to fix dodgy encoding in files (String#encode is Ruby 1.9+)
CONFIG = {
:db_name => 'wc.db',
:base => '.',
:ignore_regexp => /^\s*(#|\*)/,
@lionicsheriff
lionicsheriff / flag-branches.el
Last active December 16, 2015 21:21
Log the path a program through branches. Currently perl only
(defun warn-unique ()
"Inserts a warn statement with an incrementing buffer local id"
(interactive nil)
(if (not (boundp 'warn-unique-count))
(set (make-local-variable 'warn-unique-count) 0)
(set 'warn-unique-count (+ 1 warn-unique-count)))
(end-of-line)
(newline-and-indent)
(insert (concat "warn '**** " (number-to-string warn-unique-count) "';")))
@lionicsheriff
lionicsheriff / mailadm.py
Last active March 9, 2023 16:03
postfix & dovecot virtual user administration tool
#!/usr/bin/env python
import argparse
import subprocess,errno
import os,sys
import fileinput
MAILBOX_MAP = '{{ virtual_mailbox_maps }}'
ALIAS_MAP = '{{ virtual_alias_maps }}'
USER_FILE = '{{ users_file }}'
@lionicsheriff
lionicsheriff / google_grumpy.xml
Last active December 15, 2015 16:19
OpenSearch plugin that removes features from google that annoy me
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>google-grumpy</os:ShortName>
<os:Description>Google (ssl,always show tools,verbatim,no instant)</os:Description>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:Image width="16" height="16">
data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7PT7/3zF6/9Ptu//RbHx/0227/+Tzvb/9vv5/97h0f9JeBz/NHoA/z98Av9AfAD/PHsA/0F6AP8AAAAA/vz7/1+33/8Mp+z/FrHw/xWy8f8bs/T/Hqrx/3zE7v////7/t8qp/zF2A/87gwH/P4ID/z59AP8+egD/Q3kA/97s8v8botj/ELn3/wy58f8PtfL/D7Lw/xuz9P8vq+f/8/n///779v9KhR3/OYYA/0GFAv88hgD/QIAC/z17AP/0+/j/N6bM/wC07/8Cxf7/CsP7/wm+9v8Aqur/SrDb//7+/v///P7/VZEl/zSJAP87jQD/PYYA/0OBBf8+fQH///3//9Dp8/84sM7/CrDf/wC14/8CruL/KqnW/9ns8f/8/v//4OjX/z+GDf85kAD/PIwD/z2JAv8+hQD/PoEA/9C7pv/97uv////+/9Xw+v+w3ej/ls/e/+rz9///////+/z6/22mSf8qjQH/OJMA/zuQAP85iwL/PIgA/zyFAP+OSSL/nV44/7J+Vv/AkG7/7trP//7//f/9//7/6/Lr/2uoRv8tjQH/PJYA/zuTAP87kwD/PY8A/z2KA
(define-minor-mode infer-indentation-mode
"infer-indentation"
""
:keymap nil
;; store the original settings so we can switch back
(when (not (boundp 'infer-indentation-original-style))
(set (make-local-variable 'infer-indentation-original-style) indent-tabs-mode))
(when (not (boundp 'infer-indentation-original-width))
(set (make-local-variable 'infer-indentation-original-width) tab-width))