Skip to content

Instantly share code, notes, and snippets.

View samdphillips's full-sized avatar

Sam Phillips samdphillips

  • Oakland, California
View GitHub Profile
@samdphillips
samdphillips / mcast-channel.rkt
Created March 8, 2023 22:35
Multicast channels using IVars
#lang racket/base
;; uses https://github.com/samdphillips/racket-syncvar
(require racket/contract
racket/match
"ivar.rkt")
(provide mcast-channel?
mcast-output?
@samdphillips
samdphillips / supervisor.rkt
Created January 17, 2023 23:41
Simple thread supervisor
#lang racket/base
(require racket/exn
racket/set
"util.rkt")
(provide supervise)
(define-logger supervise)
@samdphillips
samdphillips / aa-shapes.rhm
Last active November 11, 2022 03:25
Rhombus with class
#lang rhombus
import:
racket/base
racket/math:
expose:
pi
operator (m ** n):
~stronger_than: *
@samdphillips
samdphillips / example-doc.rkt
Created November 9, 2022 22:16
Scribble pre-processing for Commonmark
#lang cmark-scribble
# This is a test document
1 + 1 is **@+[1 1]**
@samdphillips
samdphillips / deploy-and-restart.rkt
Created November 6, 2022 20:25
Some Racket "shell" scripts
#!/usr/bin/env racket
#lang rkshell
(require racket/date
"service.rkt"
"ssh.rkt")
(define-logger deploy)
(date-display-format 'iso-8601)
#lang racket/base
(require racket/match)
(define-logger ytdl)
(struct ytdl (thread req-ch rsp-ch))
(define (make-ytdl vid dir)
(define args (list "--no-color" "-f" "bestaudio" "-w" "-o" (format "~a/vid.%(ext)s" dir) vid))
#lang racket/base
(require syncvar/mvar)
(provide make-barrier
barrier-wait-evt
barrier-wait
log-barrier-info)
(define-logger barrier)
#lang racket
(require racket/draw)
(define (mandelbrot1 z c)
(+ (* z z) c))
(define (escaped? z)
(<= 2 (magnitude z)))
@samdphillips
samdphillips / manager.rkt
Created October 9, 2022 21:05
places work channel sharing
#lang racket/base
(require racket/place)
(define-logger guess)
(define num-workers (processor-count))
(define secret-number (random 10))
(define-values (manager-work-ch worker-work-ch) (place-channel))
#!/usr/bin/env racket
#lang racket
(require lens
net/http-easy
qi
racket/date
syntax/parse/define)
(current-print