Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Chris Jones cmsj

🏠
Working from home
View GitHub Profile
View led_effects.ino
#include <Adafruit_NeoPixel.h>
#include <Adafruit_DotStar.h>
// led_effects
// by Chris Jones <cmsj@tenshu.net>
// 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
cmsj / muteEnforcer.js
Created Mar 28, 2022
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];
[skin checkArgs:LS_TUSERDATA, USERDATA_TAG, LS_TBREAK];
HSCamera *camera = [skin toNSObjectAtIndex:1];
// This was the original code here, crashed every time
// lua_pushboolean(skin.L, camera.isInUse);
// return 1;
@cmsj
cmsj / Labists.diff
Created Jan 12, 2021
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
cmsj / X3.diff
Created Jan 12, 2021
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
cmsj / ContentView.swift
Created Aug 21, 2020
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
cmsj / gist:23935c42a10cf10c9ea0d544b8c31f65
Created Aug 4, 2020
Google Script mail header example
View gist:23935c42a10cf10c9ea0d544b8c31f65
function processInbox() {
// process all recent threads in the Inbox (see comment to this answer)
var threads = GmailApp.search("from:(bugzilla@redhat.com) newer_than:1d");
GmailApp.createLabel('Bugzilla');
Logger.log("Got threads: " + threads.length);
for (var i = 0; i < threads.length; i++) {
processThread(threads[i]);
}
}
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
@cmsj
cmsj / ContentView.swift
Created Jun 25, 2020
Trying to use @ObservableObject and @EnvironmentObject, but changes in subviews don't propagate
View ContentView.swift
class Person: RawRepresentable, ObservableObject {
@Published var name: String
@Published var age: Int
// RawRepresentable
var rawValue: String {
get {
let value = "\(name):\(age)"
print("Returning raw value: "+value)
return value