Skip to content

Instantly share code, notes, and snippets.

View canuk's full-sized avatar

Reuben Thiessen canuk

  • Stanford University
  • Greater San Diego, CA
  • 23:03 (UTC -07:00)
  • LinkedIn in/reubenthiessen
View GitHub Profile
@canuk
canuk / stop-slop.md
Created July 28, 2026 17:33
Stop-Slop Skill - Stop your LLM from producing prose that is full of "AI Slop" phrases and grammar.
name stop-slop
description Remove AI writing patterns from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI tells.
metadata
trigger
Writing prose, editing or creating email drafts, reviewing content for AI patterns

Stop Slop

Eliminate predictable AI writing patterns from prose.

@canuk
canuk / SKILL.md
Last active July 16, 2026 19:47
Explorable Explanations

name: explorable-explanations description: > Design and build interactive learning tools — "explorable explanations" — that teach a concept through direct manipulation rather than static text. Use this skill WHENEVER the user wants an interactive lesson, simulation, concept-explainer, model-to-play-with, or "let students explore it themselves" experience, AND whenever they ask to make an existing lesson or explanation more interactive, more engaging, or "less boring." Triggers: "interactive," "explorable," "simulation," "let them play with," "learning game," "explain [concept] visually," "make this interactive," or a teacher describing a hard-to-grasp concept students should build intuition for. Grounded in learning science (inquiry learning, cognitive load theory, the ICAP engagement framework, multimedia learning, Bret Victor's principles). Produces a self-contained HTML file that runs offline in any browser (ideal for Chromebooks). Not for static worksheets, slide decks, or plain prose — this is for

@canuk
canuk / qualtrics_highlight_text.js
Created July 24, 2024 00:04
This code pulls in data from an external source and turns it into a patch of "highlightable" text that a user can select words (or groups of words if the paragraph is longer than 200 words)
Qualtrics.SurveyEngine.addOnload(function()
{
/*Place your JavaScript here to run when the page loads*/
var $this = jQuery(this.questionContainer);
var question_text = $this.find('.QuestionText').text().split("|end_question|");
var question_stem = question_text[0]
// remove the piped-in text from the question stem by replacing it with just the original question_stem
$this.find('.QuestionText').text(question_stem);
@canuk
canuk / airports.json
Created October 10, 2023 17:18 — forked from tdreyno/airports.json
JSON data for airports and their locations
This file has been truncated, but you can view the full file.
[
{
"code": "AAA",
"lat": "-17.3595",
"lon": "-145.494",
"name": "Anaa Airport",
"city": "Anaa",
"state": "Tuamotu-Gambier",
"country": "French Polynesia",
@canuk
canuk / ai-engineer-summit-workshop-2023.ipynb
Created October 8, 2023 19:41 — forked from markhng525/ai-engineer-summit-workshop-2023.ipynb
ai-engineer-summit-workshop-2023.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@canuk
canuk / ca.md
Created September 15, 2020 03:45 — forked from soarez/ca.md
How to setup your own CA with OpenSSL

How to setup your own CA with OpenSSL

For educational reasons I've decided to create my own CA. Here is what I learned.

First things first

Lets get some context first.

@canuk
canuk / Gemfile
Created July 20, 2020 15:23 — forked from dhh/Gemfile
HEY's Gemfile
ruby '2.7.1'
gem 'rails', github: 'rails/rails'
gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data
# Action Text
gem 'actiontext', github: 'basecamp/actiontext', ref: 'okra'
gem 'okra', github: 'basecamp/okra'
# Drivers
@canuk
canuk / userChrome.css
Created July 28, 2019 03:55
userChrome.css file to move the Findbar up to the top right of Firefox, where it belongs.
.browserContainer > findbar {
-moz-box-ordinal-group: 0;
position: fixed !important;
right: 1em;
border: 1px solid threedshadow !important;
border-radius: 0 0 3px 3px;
padding-left: 10px;
/* Hide the "border" at the top by removing the box-shadow and background-image */
border-top: none !important;
@canuk
canuk / application.html.erb
Created October 7, 2018 18:20 — forked from handofthecode/application.html.erb
Rails Ajax Flash Messages
<div id="main" role="main">
<div class="container">
<div class="row">
<div class="span12" id="top-div"> <!--! added "top-div" id to help with ajax -->
<%= render 'layouts/messages' %>
<%= yield %>
</div>
</div>
<footer>
</footer>
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="studio-kura GPX Binder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk>
<name><![CDATA[2018-08-02 19:50:19]]></name>
<trkseg>
<trkpt lat="32.8110736236" lon="-117.1390758734">
<ele>130</ele>
<time>2018-08-03T02:50:20.000Z</time>
</trkpt>
<trkpt lat="32.8110736236" lon="-117.1390758734">