Skip to content

Instantly share code, notes, and snippets.

@jikamens
jikamens / server-sucker.el
Last active August 27, 2025 15:33
Keep the Emacs server running in the Emacs in the current active systemd session
;; Copyright 2023 Jonathan Kamens <jik@kamens.us>.
;;
;; This program is free software: you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by the Free
;; Software Foundation, either version 3 of the License, or (at your option)
;; any later version. See <https://www.gnu.org/licenses/>.
;;
;; This program is distributed in the hope that it will be useful, but WITHOUT
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
@jikamens
jikamens / perlmod_install_info.py
Last active August 10, 2024 18:05
Ansible module to figure out from where to install Perl modules
#!/usr/bin/python
# Copyright (c) 2023, Jonathan Kamens <jik@kamens.us>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
# pylint: disable=missing-module-docstring
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
@jikamens
jikamens / namecheap-dns.py
Last active January 6, 2026 18:36
namecheap-dns.py - Export/import DNS records from/to Namecheap
#!/usr/bin/env python3
"""
namecheap-dns.py - Export/import DNS records from/to Namecheap
This script can export DNS records from a domain in Namecheap to a YAML file or
import records from a YAML file in the same format into Namecheap. I use this
script to maintain my Namecheap DNS records in a source repository with change
history, i.e., "configuration as code" for my Namecheap DNS records.
@jikamens
jikamens / toodledo-agenda.py
Last active January 7, 2026 15:31
toodledo-agenda.py - Prepare your daily agenda in Toodledo
#!/usr/bin/env python3
'''toodledo-agenda.py - Prepare your daily agenda in Toodledo
Toodldeo doesn't _quite_ do the right thing, at least for me, whether I sort by
date and then priority, or by priority and then date.
* If I sort by date first, then top-priority items that aren't due by a
specific date get pushed all the way to the bottom of my to-do list and I
never see them.
@jikamens
jikamens / wayback-check.py
Last active December 24, 2022 16:10
Script for filtering URLs before submitting them to the Wayback Machine for archiving
#!/usr/bin/env python3
# This script filters a list of URLs to determine which of them should be
# submitted to the Internet Archive's Wayback Machine for archiving because
# they are valid URLs and/or they aren't already archived in the Wayback
# Machine.
#
# To check for and filter out URLs which are invalid, specify --check on the
# command line. To filter out URLs that are already archived in the Wayback
# Machine, specify --check-archive on the command line. You must specify either
// https://bugzilla.mozilla.org/show_bug.cgi?id=128072#c32
// Credit: Alexander Bergmann
"use strict;"
// Toggle Replied and Forwarded
if (location == "chrome://messenger/content/messenger.xhtml") {
let toggleRepliedAndForward = {
@jikamens
jikamens / auto-dnsbl.pl
Last active May 27, 2024 08:06
auto-dnsbl.pl (iptables version)
#!/usr/bin/env perl
=pod
=head1 SUMMARY
auto-dnsbl.py - add DNSBL entries to iptables automatically
=head1 DESCRIPTION
@jikamens
jikamens / deposit_notification.cgi
Last active January 7, 2026 15:28
Scripts and configs for "enhancing" Eastern Bank emailed deposit notifications
#!/bin/bash -e
TF=/fillmein/deposit_notification.$$
trap "rm -f $TF" EXIT
echo "Content-type: message/rfc822"
echo
if /fillmein/eastern-deposit-notification.py >| $TF; then
cat $TF
@jikamens
jikamens / hirsute-510-kernel.sh
Created August 9, 2021 12:58
Script to force Ubuntu 21.04 to use kernel version 5.10
#!/bin/bash -e
# You will probably need to adjust this script if you aren't using
# the generic kernel.
to_install=
to_hold=
pd=/tmp/packages.$$
mkdir $pd