Skip to content

Instantly share code, notes, and snippets.

Avatar

John Mertz JohnMertz

View GitHub Profile
@JohnMertz
JohnMertz / suit.c
Created Oct 9, 2015
How many cards do you have to deal before an entire suit has been dealt?
View suit.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main(){
long long int total = 0;
long long int i = 0;
for (i = 0; i<1000000; i++){
@JohnMertz
JohnMertz / fourth.c
Last active Nov 23, 2015
Matt Parker's Fourth Power Problem
View fourth.c
#include <stdio.h>
int main(void){
// define variables
long long int x, fourth[32], total, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, remaining[16], solved;
total = 0;
solved = 0;
// the list of fourth powers, just for reference
for (x = 0; x < 32; x++){
fourth[x] = x*x*x*x;
@JohnMertz
JohnMertz / price.sh
Created Aug 12, 2017
Bash Price-Checker Robot
View price.sh
#!/bin/bash
# Price-Checker Robot
# All dependencies should be pre-installed (at least on Debian): bash, curl, echo, grep, sed, tail, date, bsd-mailx, bc, cut
# Alerts user if the price has dropped for defined items.
# Reduced items result in alerts to the defined recipient.
# Errors are sent to the maintainer
# All are logged to $HOME/.price.log
@JohnMertz
JohnMertz / darksky_to_php.sh
Last active Nov 30, 2017
Darksky.net API to PHP Associative Array
View darksky_to_php.sh
#/bin/bash
# Note: This is not secure! If you somehow get malicious code back from Darksky.net, this can run arbitrary code. Use wisely and sanitize your inputs! https://www.xkcd.com/327/
output="yourOutputPathHere.php"
# Replace with your API key and coordinates. Should be fine with other units and may work without excluding minutel and flags.
# I have only teste this format (hourly and daily with SI units). This works for Ottawa, Canada.
# Pipes force into separate lines with quoted fields in PHP associative array format: "attribute_name1"=>"value","attribute_name2"=>...
# Outputs to a .tmp of your defined file name.
curl --compress 'https://api.darksky.net/forecast/<api_key_here>/45.421,-75.69?units=si&exclude=minutely,flags' | tr '{' '\n' | sed 's/},$//' | sed 's/,\ /\ /' | sed -r 's/([^"]),"/\1","/g' | sed -r 's/":([^"])/":"\1/g' | sed -r 's/([^"])\}/\1"\n/' | grep '^"time"' | sed 's/":"/"=>"/g' > $output.tmp
@JohnMertz
JohnMertz / lxc-debian-wheezy
Last active Oct 4, 2018 — forked from tpokorra/lxc-debian-wheezy
lxc template for Debian Wheezy to install on Debian Stretch
View lxc-debian-wheezy
#!/bin/bash
#
# lxc: linux Container library
# Authors:
# Daniel Lezcano <daniel.lezcano@free.fr>
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@JohnMertz
JohnMertz / OCTranspo.pl
Created Feb 15, 2019
OCTranspo Alert Scraper
View OCTranspo.pl
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
use Data::Dump qw/ dump /;
use JSON::Any;
# Define the routes that I actually care about
@JohnMertz
JohnMertz / Duolingo.pl
Created Jun 18, 2019
Duolingo API Script
View Duolingo.pl
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
use JSON::Any;
use HTTP::CookieJar::LWP;
my $user = 'username';
@JohnMertz
JohnMertz / mocp-start-cec.pl
Last active Jun 18, 2019
Start Music On Console Player and Force Active Input via HDMI-CEC
View mocp-start-cec.pl
#!/usr/bin/perl
use strict;
use warnings;
use JSON::XS;
# Checking for devices every time takes a few seconds, so store these
# settings in a file. Do so in /tmp so that it will be re-checked on reboot
my $tmp = '/tmp/cec-devices';
@JohnMertz
JohnMertz / clone-lxc.pl
Created Jul 20, 2019
Extract and Configure LXC from Archived Backup
View clone-lxc.pl
#!/usr/bin/perl
# Note for GitHub:
# This script makes several assumptions based on the backup image I use.
# Mine is a freshly installed Debian image preconfigured just how I want it.
# The script relies on the name 'fresh-lxc' and IP '10.0.3.1' being set.
# It is also written with Debian Buster as the host, some paths may differ.
# Make changes appropriately.
use strict;
@JohnMertz
JohnMertz / wordfind.pl
Created Dec 29, 2019
Wordscape - Anagram word search assistant
View wordfind.pl
#!/usr/bin/perl
# Program to find all words from a given pool of letters. Written to solve the
# Android puzzle game "Wordscape".
use strict;
use warnings;
# Default Debian ispell dictionary
my $dict = "/etc/dictionaries-common/words";