Skip to content

Instantly share code, notes, and snippets.

@blippy
blippy / chain.scm
Created May 6, 2019 08:02
Chain procures together
#lang racket
(define (chain arg0 . lambdas)
(let loop ((arg arg0) (lambdas lambdas))
(if (empty? lambdas)
arg
(loop ((car lambdas) arg) (cdr lambdas)))))
; example usage
(define (add1 n) (+ 1 n))
@blippy
blippy / pacc.pl
Created May 5, 2019 07:26
Accounts package in perl
#!/usr/bin/env perl
#use Date::Manip;
use Time::Piece;
use POSIX;
my %gaaps;
my %qtys;
my $start_date = "2019-04-06";
my $pracc; # the default account we want to print
@blippy
blippy / debounce.ino
Created December 31, 2018 19:15
Button debounce
/*
* Started 20-Jan-2018
* You probably need the clock running at 8MHz
*/
#include <Arduino.h>
#if defined(__AVR_ATtiny85__)
#define F_CPU 8000000UL
constexpr int buzzer = PB1;
constexpr int btn = PB4;
@blippy
blippy / airport.ino
Created December 18, 2018 22:03
airport ringtone for aduino
constexpr auto spk = A0;
void setup() {
// put your setup code here, to run once:
pinMode(spk, OUTPUT);
}
void tn(unsigned long f) {
tone(spk, f);
delay(300);
@blippy
blippy / fip.ps
Last active September 30, 2018 11:36
ultimc images
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
%%CreationDate: Sun Sep 30 11:28:49 2018
%%DocumentNeededResources: font Times-Roman
%%DocumentSuppliedResources: procset grops 1.22 3
%%Pages: 1
%%PageOrder: Ascend
%%DocumentMedia: Default 595 842 0 () ()
%%Orientation: Portrait
%%EndComments
@blippy
blippy / mass.scm
Created August 26, 2018 19:55
Micro assembly using scheme
;;(load "mass.scm")
(require-extension anaphora)
(require-extension holes)
(require-extension s)
(require-extension srfi-69)
(define program "MOV a 3
ADD a a -1
JNE 1 a 1")
@blippy
blippy / rmdir.cc
Created August 16, 2018 19:03
Remove a direcotry recursively
// http://www.linuxquestions.org/questions/programming-9/deleting-a-directory-using-c-in-linux-248696/
// remove directory recursively
// include dirent.h sys/types.h
int rmdir(const char *dirname)
{
DIR *dir;
struct dirent *entry;
char path[PATH_MAX];
if (path == NULL) {
@blippy
blippy / tsv.scm
Created August 6, 2018 15:38
Create tab-separated fields
#lang racket
(require (planet dyoo/while-loop:1:=1)) ; while / break / continue
(require data/queue)
(define-syntax-rule (defq var queuer)
(begin
(define var (make-queue))
(define (queuer lst) (enqueue! var lst))))
@blippy
blippy / for-next.scm
Created July 29, 2018 13:59
for ... next BASIC type loop in scheme
#lang racket
(define-syntax for-next
(syntax-rules ()
((_ var lo hi body ...)
(let loop ((var lo))
body ...
(when (< var hi)
(loop (+ 1 var)))))))
;; Example
@blippy
blippy / variant.yy
Created May 18, 2018 09:50
Using std::variant as YYSTYPE/yylval in gnu bison for C++
%{
#include <string>
#include <variant>
typedef std::variant<std::string, double> value_t;
#define YYSTYPE value_t
extern YYSTYPE yylval;
int yylex();
void yyerror(char const *s);
int main();
%}