Skip to content

Instantly share code, notes, and snippets.

View pdxmph's full-sized avatar

Mike Hall pdxmph

View GitHub Profile
@pdxmph
pdxmph / org-contacts-crm.org
Created April 18, 2023 22:28
Functions, helpers, and agenda views to make a plaintext CRM in org-mode with org-contacts.

Org Plaintext Crm

org-contacts CRM

A bunch of functions and views to allow org-contacts to serve as the basis for a lightweight, text-based CRM.

Basic workflow:

  1. Get your contacts into org-contacts format. Traditionally this is done with org-vcard, but that didn’t work for me so I made a script.[fn:1]
  2. Add a :CONTACTED: property to the cards. It takes a date (not an org-date, just an ISO-8601 YYYY-mm-dd date). The script adds one.
  3. Tag contacts. The custom views depend on the tags :close:, :fam:, and :network:
@pdxmph
pdxmph / makeapp.rb
Created November 19, 2023 18:48
Wrapper to make nativifier apps and create the corresponding .desktop files
#!/usr/bin/env ruby
# - `makeapp.rb --help` for help on the options
require 'optparse'
# Where do we want to put things?
app_dir = "~/Applications"
custom_dir = "/home/mph/.local/share/applications/"
@pdxmph
pdxmph / update_contact.applescript
Last active April 27, 2023 18:11
Half-working contact update
-- provided there's a custom date field in a contact record, this will prepend a datestamped note and update "last contacted" to today.
set theDate to do shell script "date +%Y-%m-%d"
tell application "Contacts"
set selectedPeople to selection
repeat with thePerson in selectedPeople
set customDates to custom dates of thePerson
repeat with aCustomDate in customDates
if label of aCustomDate is "last contacted" then
set value of aCustomDate to current date
@pdxmph
pdxmph / trains.rb
Last active April 15, 2023 06:35
ChatGPT-generated script to find the arrival time of a train at a given station in Portland, OR
#!/usr/bin/env ruby
require 'net/http'
require 'json'
require 'time'
# Replace with your TriMet API key
API_KEY = '73E10D534D59A179A687B98EDEE'
# Replace with the TriMet stop ID for the stop you're interested in
STOP_ID = '13136'
@pdxmph
pdxmph / catppuccin-simple-custom.css
Created January 22, 2023 04:16
Sample custom CSS to override simplecss with Catppuccin palette
@import url('https://fonts.googleapis.com/css2?family=Neuton:wght@700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Fira+Mono&display=swap');
@import url('https://unpkg.com/@catppuccin/palette@0.1.4/css/catppuccin.css');
h1, h2, h3, h4, h5, h6 {
font-family: 'Neuton', serif;
}
:root {
@pdxmph
pdxmph / text-transporter-config.md
Created January 12, 2023 18:16
Sample config for obsidian43-text-transporter plugin
@pdxmph
pdxmph / save_chrome_url.rb
Created November 6, 2011 03:47
Add a URL from Chrome to Safari's reading list
#!/usr/bin/env ruby -wKU
require "rubygems"
require "appscript"
include Appscript
chrome = app("Google Chrome")
safari = app("Safari")
chrome_tab = chrome.windows[1].active_tab

Keybase proof

I hereby claim:

  • I am pdxmph on github.
  • I am pdxmph (https://keybase.io/pdxmph) on keybase.
  • I have a public key ASAx8GzdJNTg9VBxmxJs5L4A8HPrAN1-6OIiHw2Zy0uGNwo

To claim this, I am signing this object:

@pdxmph
pdxmph / make_data.rb
Last active May 17, 2022 01:58
Populate Jekyll data directories with the jpegs found in _galleries/foo.
#!/usr/bin/env ruby
require 'yaml'
require 'mini_exiftool'
# Run this in the root of your jekyll install.
gallery_name = ARGV[0]
target_dir = "_galleries/#{gallery_name}"
data_file = "_data/galleries/#{gallery_name}.yml"
@pdxmph
pdxmph / jekyll_gallery_data.md
Last active May 16, 2022 19:27
Using Jekyll data to provide descriptions to a cheesy-gallery gallery