Skip to content

Instantly share code, notes, and snippets.

@jbedo
jbedo / hilbert.c
Created November 30, 2011 01:08
Matrix multiplication with Hilbert space-filling curves
#include<u.h>
#include<libc.h>
#define MAX(a, b) ((a) > (b) ? (a) : (b))
/* Hilbert curve functions (from Wikipedia) */
/* rotate/flip a quadrant appropriately */
void rot(int n, int *x, int *y, int rx, int ry)
{
@jbedo
jbedo / solar.c
Created March 25, 2012 20:06
Local solar time clock
#include<u.h>
#include<libc.h>
#define MIN /60.0
#define DEG * 2 * PI / 360.0
#define RAD * 360.0 / (2 * PI)
double longitude = 2.0 + 20.0 MIN;
const double Eccentricity = 0.0167;
@jbedo
jbedo / rer-d
Created March 27, 2012 18:21
Fetches next train times for RER D line to/from Paris and Evry Courcouronnes and displays minutes remaining
#!/bin/rc
urlfrom='http://www.transilien.mobi/TempReelSaisieSubmit.do?debutDepart=chatelet&debutArrivee=evry+courcouronnes'
urlto='http://www.transilien.mobi/TempReelSaisieSubmit.do?debutDepart=evry+courcouronnes&debutArrivee=chatelet'
url=$urlfrom
for(i) switch $i {
case -t
url=$urlto
}
@jbedo
jbedo / reddit.c
Created July 18, 2012 19:54
reddit client
#include<u.h>
#include<libc.h>
#include<json.h>
#include<bio.h>
#include<String.h>
const char url[] = "http://www.reddit.com/.json?feed=ffffffffffffffffffffffffffffffffffffffff&user=jbedo";
/* Does the webfs query */
String *
@jbedo
jbedo / com
Created November 18, 2012 22:56
Acme script for adding/removing comments (from 9fans)
#!/usr/bin/env rc
fn f {
n=$1
if(! cat $f | cut -c1-$n | 9 grep -v '^[ ]+$' >/dev/null){
x=`{f `{expr $n + 1}}
echo '.'$"x
}
}
@jbedo
jbedo / ind
Created November 18, 2012 22:58
Acme script for indenting one tab
#!/usr/bin/env rc
. 9.rc
exec awk '{print " " $0}'
@jbedo
jbedo / unind
Created November 18, 2012 22:58
Acme script for unindenting one tab
#!/usr/bin/env rc
. 9.rc
exec sed 's/^ //'
@jbedo
jbedo / gist:4107982
Created November 18, 2012 22:59
Like fmt(1) but intended for TeX. Terminates sentences with newline.
#!/usr/bin/env rc
. 9.rc
f=/tmp/fmt.$pid
fmt -l9999 | sed -e 's/([;\.])[ ]+/\1\n/g' > $f
cat $f | while(line=`{read}){
if(! ~ $line "" )
@jbedo
jbedo / sha256sum
Created May 8, 2013 23:24
Simple wrapper for FreeBSD around sha256 to provide more standard output formatting.
#!/bin/sh
sha256 $* | awk '{match($0, /\(.*\)/);
path = substr($0, RSTART+1, RLENGTH-2)
print $NF, path}'
@jbedo
jbedo / fmt.awk
Created May 13, 2013 06:53
LaTeX code beautifier. Wraps text chunks at 70c, indents between begin/end, and puts a hard line break after every sentence. Does not wrap math.
#!/usr/bin/awk -f
BEGIN{
linelen=70
indent=0
braces=0
FS="\\.[\t ]+"
}
/\\end\{/{indent--}