Skip to content

Instantly share code, notes, and snippets.

View ideasasylum's full-sized avatar

Jamie Lawrence ideasasylum

View GitHub Profile
@ideasasylum
ideasasylum / counter.py
Last active May 16, 2023 12:50
Badger examples
# A very simple Badger script which displays a counter and allows you to increment/decrement it with the up/down buttons
import badger2040
badger = badger2040.Badger2040()
display = badger.display
display.set_update_speed(badger2040.UPDATE_FAST)
number = 0
def clear():
@ideasasylum
ideasasylum / 1.txt
Created May 14, 2022 09:53
This is a script to present "slides" (text files) on a [Badger 2040](https://shop.pimoroni.com/products/badger-2040?variant=39752959852627)
image
images/podia-logo.bin
@ideasasylum
ideasasylum / character_frequency.rb
Created January 17, 2022 21:14
Counts the frequency of characters in an AR collection
class CharacterFrequency
include Enumerable
# Take an AR collection and a block to extract the attribute value
def initialize collection, &block
@collection = collection
@block = block
end
def print
@ideasasylum
ideasasylum / active_record_dependancy_graph.rb
Last active February 27, 2021 23:13
Check if an ActiveRecord model can be destroyed, and in what order the association should be deleted
Rails.application.eager_load!
class ActiveRecordDependancyGraph
include TSort
attr_reader :graph
def initialize root_model
@graph = {}
@model = root_model
fetch_children @model
@ideasasylum
ideasasylum / translate_amazon.js
Last active July 30, 2020 23:18
Translate Amazon service names into plain English (see https://www.expeditedssl.com/aws-in-plain-english)
// ==UserScript==
// @name Translate Amazon
// @namespace http://your.homepage/
// @version 0.1
// @description Translate the Amazon service names into plain English. See https://www.expeditedssl.com/aws-in-plain-english
// @author @ideasasylum
// @match https://*.console.aws.amazon.com/console/home?*
// @grant none
// ==/UserScript==
@ideasasylum
ideasasylum / pre-commit
Created March 7, 2013 21:49
A pre-commit Git hook for preventing commits containing focus: true, debugger, binding.pry etc Based on a blog post I wrote http://jamie.ideasasylum.com/2013/02/preventing-the-stupid-mistakes-like-committing-focustrue/ (which in turn was based on someone else's script). This version allows you to easily setup new rules at the head of the script
#!/usr/bin/env ruby
spec_hits = []
checks = {
'_spec\.rb$' => ['focus:[:space:]*true'],
'\.rb$' => ['binding\.pry', 'debugger']
}
# Find the names of all the filenames that have been (A)dded (C)opied or (M)odified
filenames = `git diff --cached --name-only --diff-filter=ACM`.split("\n")
@ideasasylum
ideasasylum / translate_aws.js
Created May 6, 2016 10:22
A Chrome UserScript to replace AWS names with sensible stuff
// ==UserScript==
// @name Translate Amazon
// @namespace http://ideasasylum.com
// @version 0.1
// @description Translate the Amazon service names into plain English. See https://www.expeditedssl.com/aws-in-plain-english
// @author @ideasasylum
// @match https://*.console.aws.amazon.com/console/home?*
// @grant none
// ==/UserScript==
@ideasasylum
ideasasylum / DaftHousePrices.js
Last active July 1, 2019 11:08
Daft House Prices
// ==UserScript==
// @name Daft House Prices
// @namespace http://ideasasylum.com
// @version 0.2
// @description Replace Daft house prices with CB deposit and income limits
// @author Jamie Lawrence @ideasasylum
// @match https://www.daft.ie/*
// @grant none
// ==/UserScript==
@ideasasylum
ideasasylum / upgrade.rake
Created March 21, 2018 14:23
Stupid rake task to randomly pick one outdated gem
require 'open3'
require 'rainbow'
desc "Upgrade gems"
namespace :upgrade do
desc "Find a random gem to update"
task :bingo => :environment do
cmd = 'bundle outdated'
stdout, stderr, status = Open3.capture3(cmd)
@ideasasylum
ideasasylum / copy_markdown_from_trello.js
Created August 10, 2015 12:16
Copies a Trello board to the Clipboard as Markdown
// originally found in a comment on: http://www.secretgeek.net/trello_ws
var s = [];
s.push("# " + jQuery(".board-header").children()[0].innerText);
jQuery(".list:has(.list-header-name)").each(function() {
s.push("\n## " + jQuery(this).find(".list-header-name")[0].innerText + "\n");
jQuery(this).find(".list-card-title").each(function() {
s.push("* " + this.innerText);
});
});