Skip to content

Instantly share code, notes, and snippets.

View raymyers's full-sized avatar
🌳
Automating!

Ray Myers raymyers

🌳
Automating!
View GitHub Profile
@raymyers
raymyers / commit-msg
Last active June 17, 2024 12:23
Simple git hook enforcing Arlo Belshee's commit notation with hints, put in a repo as .git/hooks/commit-msg
#!/usr/bin/env python
import sys, os, re
from subprocess import check_output
# Collect the parameters
commit_msg_filepath = sys.argv[1]
allowed_prefixes = (
'f - ', 'F - ', 'F!! ', 'F**',
@raymyers
raymyers / Menderfile
Last active August 25, 2023 01:16
Mend Demo - August 2023
FROM 43a3a253
ENV DEFAULT_FILE=main.c
ENV UNTANGLER_DEFAULT_FILE=main.c
ENV JAVA_HOME=/Library/Java/JavaVirtualMachines/graalvm-jdk-20.0.2+9.1/Contents/Home/
ENV PATH="$PATH:/Users/rmyers/dev/untangler/build/install/untangler/bin"
## Aliases
RECIPE move_includes_to_top \
grep "^#include" $UNTANGLER_DEFAULT_FILE > a.tmp && \
@raymyers
raymyers / CharsetUtils.java
Created August 13, 2023 13:31
Wrap icu4j charset detection
package your.name;
import com.ibm.icu.text.CharsetDetector;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
@raymyers
raymyers / extract-metrics.js
Last active April 22, 2023 01:48
GPT4 generated code to extract metrics from GitHub, NOT debugged
// Warning: This code is LLM output and has NOT been debugged.
const { Octokit } = require("@octokit/rest");
// Initialize the Octokit client
const octokit = new Octokit({ auth: "your_personal_access_token" });
// Variables for your specific repository
const owner = "your_github_username";
const repo = "your_repository_name";
@raymyers
raymyers / TransactionLoader.java
Last active March 21, 2022 01:48
Mixed Concern Kata Sketch
package org.gamenet.kata.untestable;
import java.sql.*;
import java.text.DecimalFormat;
public class TransactionLoader {
// This is intended as a refactoring / testing kata for improving separation of concerns.
// Goal might be to introduce JSON output in addition to XML.
public String load() throws SQLException {
// Produces result like:
@raymyers
raymyers / LockCleaner.java
Created March 1, 2020 21:07
Delete old Lucene write.lock file
import java.io.File;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LockCleaner {
private static final Logger logger = LoggerFactory.getLogger(LockCleaner.class);
public void clearOldLockInLuceneIndexDir(File indexDir) {
@raymyers
raymyers / .gitignore
Created March 1, 2020 16:38
Backup Jenkins Config Daily Job
# Last tested in Jenkins 2.22
*
!/.gitignore
!/*.xml
!/nextBuildNumber
!/jobs
!/jobs/*
!/jobs/*/*.xml
@raymyers
raymyers / trimmedMean.js
Created February 14, 2020 16:15
Trimmed Mean and Median in ES6.
const mean = (values) => {
let sum = values.reduce((previous, current) => current += previous);
return sum / values.length;
};
const median = (arr) => {
const mid = Math.floor(arr.length / 2);
const sorted = [...arr].sort((a, b) => a - b);
return arr.length % 2 == 0 ? (sorted[mid - 1] + sorted[mid]) / 2 : sorted[mid];
};
@raymyers
raymyers / index.html
Last active January 29, 2020 07:42
Using diff2html on output of 'diff -u'
<html>
<head>
<!-- CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css" />
<link rel="stylesheet" type="text/css" href="vendor-js/diff2html-3.0.0/bundles/css/diff2html.min.css" />
<!-- Javascripts -->
<script type="text/javascript" src="vendor-js/diff2html-3.0.0/bundles/js/diff2html-ui.min.js"></script>
<script type="text/javascript" src="vendor-js/diff2html-3.0.0/bundles/js/diff2html.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
@raymyers
raymyers / AstWalker.java
Created January 7, 2020 23:37
Abstract Tree Walker using Type-safe Heterogeneous Container pattern.
import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import java.util.Collection;
import java.util.function.Consumer;
public class AstWalker {
private final Multimap<Class<?>, Consumer<?>> enterNodeListeners = MultimapBuilder.linkedHashKeys().arrayListValues().build();
private final Multimap<Class<?>, Consumer<?>> exitNodeListeners = MultimapBuilder.linkedHashKeys().arrayListValues().build();