Skip to content

Instantly share code, notes, and snippets.

// Remove leading spaces
char *dst = (equals + 1);
char *src = dst;
while (*src++ == ' ')
;
src--;
while((*dst++ = *src++))
;
@jorgenschaefer
jorgenschaefer / erc_notifier.py
Created December 13, 2016 17:13
Modern form of self-modifying code
#!/usr/bin/env python3
import sys, os, subprocess, signal
#usage $~/lab/erc-notifier.py title message
### pop up the first notify window, and kill it when pop up the second notify window
controler=0
previous_pid=0
if controler == 0:
p0=subprocess.Popen(['/home/jusss/lab/notifier.py', sys.argv[1], sys.argv[2]], shell=False)
### just replace once! sed -i '0,/a/ s//e/' example
os.system("sed -i -e '0,/controler=0/ s//controler=1/' ~/lab/erc-notifier.py")
@jorgenschaefer
jorgenschaefer / expire1.js
Created December 12, 2016 23:59
Which is better?
exports.handler = (event, context, callback) => {
var ec2 = new AWS.EC2({region: process.env.AWS_REGION});
ec2.describeSnapshots(params).promise()
.then(data => {
return Promise.all(
data.Snapshots
.filter(snap => daysOld(snap.StartTime) > MAX_AGE)
.map(snap => ec2.deleteSnapshot({SnapshotId: snap.SnapshotId}).promise())
);
@jorgenschaefer
jorgenschaefer / logtest.py
Created July 5, 2016 19:26
Log a record with and without exception information
import logging
class NoExceptionsFormatter(logging.Formatter):
def format(self, record):
record.message = record.getMessage()
if self.usesTime():
record.asctime = self.formatTime(record, self.datefmt)
return self._fmt % record.__dict__
@jorgenschaefer
jorgenschaefer / alist-benchmark.el
Created June 17, 2016 16:38
Emacs Lisp alist vs. hash
(require 'cl)
(defun test-alis-1 (i n)
(let* ((alis (loop for i from 0 to 10 collect (list i)))
(start (float-time)))
(dotimes (_ n)
(assq i alis))
(- (float-time)
start)))
(require 'json)
(require 'subr-x)
(defun fix-string (s)
(string-join
(delq nil (mapcar (lambda (ch)
(encode-coding-char ch 'utf-8 'unicode))
s))))
(with-current-buffer (url-retrieve-synchronously
(setq-default mode-line-format
`(""
" %b"
(:eval
(if (and buffer-file-name
(buffer-modified-p))
"*"
" "))
" %l"
(column-number-mode
@jorgenschaefer
jorgenschaefer / circe-slack.el
Created September 11, 2015 13:05
Display slack users in Circe
(circe-set-display-handler "irc.message" 'my/display-PRIVMSG)
(defun my/display-PRIVMSG (nick userhost command target text)
(if (not (equal nick "slack-irc-bot"))
(circe-display-PRIVMSG nick userhost command target text)
(let ((circe-format-say "[{nick}] {body}"))
(when (string-match "^<\\([^>]*\\)> \\(.*\\)" text)
(setq nick (match-string 1 text)
text (match-string 2 text)))
(circe-display-PRIVMSG nick userhost command target text))))
(defun ref-define (type-symbol getter setter)
(put type-symbol 'ref-getter getter)
(put type-symbol 'ref-setter setter))
(defun ref (obj &rest args)
(apply (get (type-of obj) 'ref-getter)
obj
args))
(gv-define-simple-setter
@jorgenschaefer
jorgenschaefer / test-circe.el
Created May 11, 2015 08:19
Circe debugging aid
(add-to-list 'load-path "~/Projects/circe")
(load "circe")
(load "profiler")
(setf (caar profiler-report-cpu-line-format)
500)
(setq circe-default-nick "forcer-"
irc-debug-log t