Skip to content

Instantly share code, notes, and snippets.

View jack126guy's full-sized avatar

Half-Gray jack126guy

View GitHub Profile
@jack126guy
jack126guy / freelist.c
Last active August 29, 2015 14:19
"Free list" example
/*
* http://en.wikipedia.org/wiki/Free_list
* This code in the public domain under Creative Commons CC0 1.0 Universal Public Domain Dedication:
* http://creativecommons.org/publicdomain/zero/1.0/
*/
typedef struct free_list_node {
void* memory;
size_t size;
struct free_list_node* next;
@jack126guy
jack126guy / cleanwhitespace.pl
Last active February 1, 2022 16:01
Remove trailing whitespace
#!/usr/bin/perl
#This does not read the file from standard input; rather, it processes a list of files, one per line, from standard input.
#This script is in the public domain (http://creativecommons.org/publicdomain/zero/1.0/)
use strict;
use feature 'unicode_strings';
use File::Copy 'move';
while(<STDIN>) {
chomp;
print 'Processing ', $_, "\n";
my ($SOURCEFILE, $NEWSOURCE);
@jack126guy
jack126guy / JackBot.java
Last active April 8, 2016 09:50
JackBot (Canternet)-specific files for PCommandBot
/*
Main class for JackBot. Like the default main class, it requires a path to the configuration file to be provided on the command line.
PCommandBot: http://github.com/jack126guy/pcommandbot
Custom responders:
* tk.halfgray.pcommandbot.responders.XkcdResponder: http://github.com/jack126guy/pcb-xkcd
Available under the MIT License (below):
@jack126guy
jack126guy / fixdirs.pl
Last active August 29, 2015 14:11
Fix files created with Windows path names
#!/usr/bin/perl
#Instructions: On a Unix-like system, run: find [basedir] -type f | perl fixdirs.pl
#This script is in the public domain (http://creativecommons.org/publicdomain/zero/1.0/)
use strict;
use File::Path 'make_path';
use File::Copy 'copy';
my ($dn, $fn);
while(<STDIN>) {
chomp;
($dn, $fn) = m/(.*)\\([^\\]*)/;
@jack126guy
jack126guy / ccports.txt
Last active August 29, 2015 14:10
List of Creative Commons license ports, in a machine-readable format
;Creative Commons license ports
;Each jurisdiction is on a separate line. Data for each jurisdiction is presented in fields, separated by semicolons.
;The first field is the jurisdiction code (used in URLs and standard abbreviations), the second is the full name of the jurisdiction, and all subsequent fields are versions in which there was a port for that jurisdiction.
;If the first field is empty or contains only whitespace, then the line shall be considered a comment.
;Note that there were no unported 2.1 licenses.
;This list is derived from the Creative Commons Wiki <https://wiki.creativecommons.org/CC_Ports_by_Jurisdiction>, but it is believed that the data itself is uncopyrightable. This list is in the public domain <http://creativecommons.org/publicdomain/zero/1.0/>.
AR;Argentina;2.5
AU;Australia;3.0;2.5;2.1;2.0
AT;Austria;3.0;2.0
BE;Belgium;2.0
@jack126guy
jack126guy / pause
Last active May 28, 2020 21:22
Emulate the DOS/Windows PAUSE command on Unix-like systems
#!/bin/sh
#You probably want to put this in /usr/local/bin
echo "Press Enter to continue... "
read REPLY
@jack126guy
jack126guy / maliksigi.pl
Last active August 29, 2015 14:03
Forigi iksojn el X-sistema Esperanto (Remove X's from X-system Esperanto)
#!/usr/bin/perl
#Tiu-ĉi programo estas en la publikaĵo (This program is in the public domain) http://creativecommons.org/publicdomain/zero/1.0/
#Legi tekston el norma enigo (Read text from standard input)
while(<STDIN>) {
#Anstataŭigi X-sistemajn vicojn (se ne estas alia X poste) [Replace X-system sequences (if there is not another X afterwards)]
s/c[xX]([^xX])/ĉ$1/g;
s/g[xX]([^xX])/ĝ$1/g;
s/h[xX]([^xX])/ĥ$1/g;
s/j[xX]([^xX])/ĵ$1/g;