Skip to content

Instantly share code, notes, and snippets.

Working from home

Chris Jones cmsj

Working from home
View GitHub Profile
cmsj / kyber.lua
Last active February 13, 2023 09:47
Proxmark3 (iceman) Lua script to easily write Galaxy's Edge kyber crystal data to EM4305 rfid tags
View kyber.lua
local cmds = require('commands')
local getopt = require('getopt')
local bin = require('bin')
local utils = require('utils')
local cmds = require('commands')
local ansicolors = require('ansicolors')
copyright = 'Various copyrights - Based on hf_mfu_amiibo_sim.lua'
author = 'Chris Jones <>'
version = 'v2.0'
View led_effects.ino
#include <Adafruit_NeoPixel.h>
#include <Adafruit_DotStar.h>
// led_effects
// by Chris Jones <>
// Released under the MIT License.
// RGB LED built in to the Trinket M0
Adafruit_DotStar dot = Adafruit_DotStar(1, INTERNAL_DS_DATA, INTERNAL_DS_CLK, DOTSTAR_BGR);
cmsj / muteEnforcer.js
Created March 28, 2022 09:16
gmail mute that actually mutes
View muteEnforcer.js
// Enforce thread muting
// When you mute a thread in Gmail, it adds a "Muted" label
// Unfortunately, it doesn't really completely mute the thread - e.g. emails added to the thread will still be marked as unread and show up against folder counts
// This script will ensure that all emails appearing on muted threads, will be marked read, and archived.
// By default it will only look for emails that are less than 3 days old, to limit the size of the query results. You can adjust that if you want to
var age_max="3d"
function enforceMutes() {
View gist:e697e9e0cbed53ab4cef48be30567c08
> Found 188 debug information files
> Prepared debug information files for upload
> Uploaded 188 missing debug information files
> File upload complete:
PENDING 023f433a-8828-3373-8720-e6dec1fd6af2 (libosascript.dylib.dSYM/Contents/Resources/DWARF/libosascript.dylib; x86_64 debug companion)
PENDING 8391d288-aa61-3a71-bbc1-6b7835adf8e1 (libdockicon.dylib.dSYM/Contents/Resources/DWARF/libdockicon.dylib; arm64 debug companion)
PENDING 9a926012-63a8-3c6a-a0d6-d6411ff4bcb3 (libnetworkping.dylib.dSYM/Contents/Resources/DWARF/libnetworkping.dylib; arm64 debug companion)
PENDING 8e680fea-cc8b-3be1-8663-41de2e387242 (libdialog.dylib.dSYM/Contents/Resources/DWARF/libdialog.dylib; arm64 debug companion)
PENDING 4623d0a4-dcc2-355f-b794-b6b98e63a563 (libscreen.dylib.dSYM/Contents/Resources/DWARF/libscreen.dylib; arm64 debug companion)
View gist:ff64a2267c8017d6447b741848be07da
static int camera_isinuse(lua_State *L) {
LuaSkin *skin = [LuaSkin sharedWithState:L];
HSCamera *camera = [skin toNSObjectAtIndex:1];
// This was the original code here, crashed every time
// lua_pushboolean(skin.L, camera.isInUse);
// return 1;
cmsj / Labists.diff
Created January 12, 2021 17:56
Changes in Labists X1 vs EasyThreeD X1
View Labists.diff
diff --git Marlin/Configuration.h Marlin/Configuration.h
index 949f021d6a..55f5baa152 100644
--- Marlin/Configuration.h
+++ Marlin/Configuration.h
@@ -296,8 +296,8 @@ Here are some standard links for getting your machine calibrated:
* the firmware will halt as a safety precaution.
-#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
-#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed
cmsj / X3.diff
Created January 12, 2021 17:54
EasyThreeD X3 diff vs EasyThreeD X1
View X3.diff
diff --git Marlin/Configuration.h Marlin/Configuration.h
index 949f021d6a..965a523e41 100644
--- Marlin/Configuration.h
+++ Marlin/Configuration.h
@@ -149,7 +149,7 @@ Here are some standard links for getting your machine calibrated:
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
-#define TEMP_SENSOR_BED 0
+#define TEMP_SENSOR_BED 1
cmsj / ContentView.swift
Created August 21, 2020 22:14
Extending someone else's Swift enum to make it more friendly for a SwiftUI Picker
View ContentView.swift
// ContentView.swift
// EnumExtensionPicker
// Created by Chris Jones on 21/08/2020.
import SwiftUI
enum Strategy {
cmsj / gist:23935c42a10cf10c9ea0d544b8c31f65
Created August 4, 2020 20:24
Google Script mail header example
View gist:23935c42a10cf10c9ea0d544b8c31f65
function processInbox() {
// process all recent threads in the Inbox (see comment to this answer)
var threads ="from:( newer_than:1d");
Logger.log("Got threads: " + threads.length);
for (var i = 0; i < threads.length; i++) {
cmsj / gist:ccc7e7b60661a705c1003788436382fe
Created August 4, 2020 20:12
Gmail scripting example
View gist:ccc7e7b60661a705c1003788436382fe
// Configuration data
// Each config should have the following keys:
// * age_min: maps to 'older_than:' in gmail query terms.
// This is how old you want matching emails to be before they are archived.
// * age_max: maps to 'newer_than:' in gmail query terms.
// This is how far back in history you want to search, to find emails to archive.
// It's useful to set fairly long for your first run, but after that set it to a
// reasonably low value (don't expect Google to search your entire email archive
// every time this script runs!)
// * query: freeform gmail query terms to match against