Skip to content

Instantly share code, notes, and snippets.

Avatar

Dan Q Dan-Q

View GitHub Profile
@Dan-Q
Dan-Q / clicker.rbw
Created Aug 25, 2020
Runs in the background, makes an (inaudible?) sound every so often to keep your soundbar awake.
View clicker.rbw
# Dependencies
require 'bundler/inline'
gemfile(true) do
source 'https://rubygems.org'
gem 'win32-sound', require: 'win32/sound'
end
include Win32
FREQUENCY = 37 # Hz; 37-32767 - what pitch sound?
DURATION = 1 # Ms - how long to play for?
@Dan-Q
Dan-Q / loader-modern-browsers.js
Last active Aug 9, 2020
Lazy-loading CSS without introducing a mandatory JS dependency; see https://danq.me/lazy-css-without-js/ for more or https://danq.me/2020/08/09/lazy-css/ for discussion
View loader-modern-browsers.js
// This version works with modern browsers
function lazyLoadCSS(){
[...document.querySelectorAll('noscript[lazyload]')].forEach(ns=>ns.outerHTML=ns.innerHTML);
}
(document.readyState != 'loading') ? lazyLoadCSS() : document.addEventListener('DOMContentLoaded', lazyLoadCSS);
@Dan-Q
Dan-Q / wp-post-kinds-prefix-kind-in-rss.php
Last active Mar 1, 2020
Add Post Kinds for Wordpress kinds as a prefix to titles in RSS. https://danq.me/2020/03/01/post-kinds-rss/
View wp-post-kinds-prefix-kind-in-rss.php
<?php
// Make titles in RSS feed be prefixed by the Kind of the post.
function add_kind_to_rss_post_title(){
$kinds = wp_get_post_terms( get_the_ID(), 'kind' );
if( ! isset( $kinds ) || empty( $kinds ) ) return get_the_title(); // sanity-check.
$kind = $kinds[0]->name;
$title = get_the_title();
return trim( "[{$kind}] {$title}" );
}
@Dan-Q
Dan-Q / countdown.html
Last active Sep 3, 2019
Workday countdown timer
View countdown.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Countdown</title>
<style type="text/css">
body {
margin: 0;
font-family: sans-serif;
font-size: 8vh;
@Dan-Q
Dan-Q / bbc-news-rss-filter-sport-out.rb
Last active May 13, 2019
Filter the Sport section out of the BBC News RSS feed and put the result into a Backblaze B2 bucket
View bbc-news-rss-filter-sport-out.rb
#!/usr/bin/env ruby
# # Sample crontab:
# # At 41 minutes past each hour, run the script and log the results
# 41 * * * * ~/bbc-news-rss-filter-sport-out.rb > ~/bbc-news-rss-filter-sport-out.log 2>>&1
# Dependencies:
# * open-uri - load remote URL content easily
# * nokogiri - parse/filter XML
# * b2 - command line tools, described below
@Dan-Q
Dan-Q / consolepic.rb
Created Dec 12, 2018
Convert a (small!) PNG image into JS/CSS that 'draws' the image in a Firefox/Chrome debug console.
View consolepic.rb
#!/usr/bin/env ruby
# Bundler/Gemfile (inline mode)
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'chunky_png'
end
# Check for PNG file passed at command line or error out
@Dan-Q
Dan-Q / google-authenticator.rb
Last active Mar 8, 2019
Command-line Google Authenticator (TOTP)
View google-authenticator.rb
#!/usr/bin/env ruby
# frozen_string_literal: true
# encoding: utf-8
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'rotp'
gem 'thor'
end
View Basic Reddit Content Exporter.js
// Basic Reddit Content Exporter
// Author: Dan Q <https://danq.me/>
// License: The Unlicense <https://unlicense.org/> / Public Domain
// 1. Go to www.reddit.com and log in (logging in means that we don't have to worry about a modhash)
// 2. Edit this script to include YOUR username and the content you want to download
// 3. Paste this script into your browser console
(()=>{
const username = 'avapoet'; // <-- your username goes here (be sure to be logged in as it, too!)
const content = 'submitted'; // <-- valid options: overview (everything), submitted (posts), comments,
@Dan-Q
Dan-Q / ev-ssl-ca-experiment.sh
Created Sep 4, 2018
Experiment to use OpenSSL to establish an EV-capable CA and issue illigitimate certificates which will be accepted and displayed as full valid EV certificates by Microsoft Internet Explorer and Edge on appropriately-configured Windows computers.
View ev-ssl-ca-experiment.sh
#!/bin/bash
# The following steps, which were tested on Ubuntu 18.04 LTS and on the Ubuntu-powered Linux for Windows Subsystem on Windows,
# will:
#
# * Compile a recent version of OpenSSL (you can skip this step and use your package maintainer's version if you prefer, but you
# might have to tweak a few bits)
# * Create a separate set of configuration files suitable for configuring a basic CA capable of signing EV certificates
# * Create such a CA (hackerca.local / HackerCA EV Root CA)
# * Create a certificate request for a site, hackersite.local, belonging to company "Barclays PLC [GB]"
@Dan-Q
Dan-Q / geohash-pcwater.js
Last active Aug 22, 2018
Perform pixel-analysis on OpenStreetMap tiles to estimate water coverage of a graticule. More info: https://danq.me/2018/08/21/graticule-water-coverage-calculator/
View geohash-pcwater.js
/*
* More details can be found at:
* https://danq.me/2018/08/21/graticule-water-coverage-calculator/
*
* Given a graticule (e.g. 51 -1), returns the percentage water cover
* of that graticule based on pixel colour sampling of OpenStreetMap
* tile data. Change the zoomLevel to sample with more (higher) or less
* (lower) granularity: this also affects the run duration. Higher
* granularity improves accuracy both by working with a greater amount
* of data AND by minimising the impact that artefacts (e.g. text,
You can’t perform that action at this time.