Skip to content

Instantly share code, notes, and snippets.

@jikamens
jikamens / cups_conf.py
Created December 29, 2024 02:04
Ansible module for editing CUPS config files such as printers.conf
#!/usr/bin/python3
# Copyright (c) 2024, Jonathan Kamens <[email protected]>
# 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
import copy
import os
import re

The canonical location of this list has moved here.

@jikamens
jikamens / browserAction.html
Created September 18, 2023 18:56
messenger.mailTabs.getSelectedMessages() demo
<!DOCTYPE html>
<html>
<body>
<div id="messageList">
</div>
<script src="browserAction.js"></script>
</body>
</html>
@jikamens
jikamens / bitwarden-backup.py
Last active June 1, 2024 13:01
Simple script for backing up your Bitwarden vault using the Bitwarden CLI
#!/usr/bin/env python3
# Simple script for backing up your Bitwarden vault using the Bitwarden CLI
#
# Copyright 2021 Jonathan Kamens <[email protected]>
#
# 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.
@jikamens
jikamens / bwsc-usage.py
Created June 16, 2023 21:22
Check your daily Boston Water (BWSC) usage and alert about potential leaks
#!/usr/bin/env python3
"""
Check your daily Boston Water (BWSC) usage and alert about potential leaks
This script logs into the Boston Water and Sewer Commission customer portal
using the Chrome Selenium driver, downloads your daily usage for the past 30
days, and prints a warning if the most recent daily usage number is more than
three standard deviations higher than the mean of all the usage numbers. This
@jikamens
jikamens / server-sucker.el
Last active August 10, 2024 18:03
Keep the Emacs server running in the Emacs in the current active systemd session
;; Copyright 2023 Jonathan Kamens <[email protected]>.
;;
;; 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 <[email protected]>
# 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 / scan-bill.sh
Last active August 10, 2024 18:03
Demonstration of how to automatically scan and file bills
#!/bin/bash -e
WHOAMI=$(basename $0)
DEV_FILE=$HOME/.scan-bill.dev
RETRY=false
MULTIPLE=false
DUPLEX_SOURCE='Automatic Document Feeder(centrally aligned,Duplex)'
SIMPLEX_SOURCE='Automatic Document Feeder(centrally aligned)'
SOURCE="$DUPLEX_SOURCE"
STARTED=false
@jikamens
jikamens / namecheap-dns.py
Last active January 17, 2025 22:34
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 August 10, 2024 18:04
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.