~williewillus/r16

5d4ead101346993bbdd153e0da507fdf92d20eea — Vincent Lee a month ago ff0582b
More presentation
3 files changed, 37 insertions(+), 21 deletions(-)

A presentation/bf.png
M presentation/main.rkt
A presentation/tshirt.png
A presentation/bf.png => presentation/bf.png +0 -0
M presentation/main.rkt => presentation/main.rkt +37 -21
@@ 2,18 2,6 @@

(require slideshow/text)

#| Plan
who we are: 1m
the project & why it exists: 1m
technical details:
  - racket-cord: 1m
  - evaluator: 3m
challenges: 2m
fun stuff: 2m
questions: 2m
future plans: 1m/if time
|#

(define (title)
  (slide
   (big (t "R16"))


@@ 26,8 14,9 @@ future plans: 1m/if time
(define (who-we-are)
  (slide
   #:title "Vincent Lee (williewillus)"
   (item "New grad from Univ. of Texas at Austin")
   (item "Favorite languages: Clojure and Rust"))
   (item "2020 grad from Univ. of Texas at Austin")
   (item "Favorite languages: Clojure and Rust")
   (item "https://www.vincent-lee.net"))
  (slide
   #:title "Alwinfy"
   (item "TODO alwinfy"))


@@ 59,29 48,56 @@ future plans: 1m/if time
   #:title "Tech: Racket-Cord"
   (item "The underlying Discord library used by R16")
   (item "Not updated since 2017, many parts have rotted")
   (item "TODO willie")))
   (item "Rewrote the websocket gateway management code")
   (item "Work (slowly) continuing to fix it up")))

(define (tech-evaluator)
  "todo")
  (slide
   #:title "Tech: Evaluator"
   (item "Leverage Racket's powerful sandboxing capabilities (custodians, namespaces, inspectors)")
   (item "Uses " (tt "racket/sandbox") " evaluator with some convenience functions bound into the sandbox")))

(define (challenges)
  (slide
   #:title "Challenges and Limitations"
   (item "One OS thread: easy to lock up the bot with heavy compute, even with time limits")
   (item "Sandbox works" (it "too") "well TODO eutro")
   (item "Dedicate time to fixing racket-cord")
   (item "TODO willie")))
   (item "Significant time needed to fix racket-cord")
   ; TODO more?
   ))

(define (demos)
  (slide
   #:title "Demos"
   #:title "Demo: instant-tshirt"
   (item "Author: Alwinfy")
   (item "Full power of" (tt "pict") "and Racket's other functional drawing libraries is available")
   (bitmap "tshirt.png"))

  (slide
   #:title "Demo: fractal"
   (item "Author: FreeFull")
   (item "Mathematical beauty right at your Discord channel")
   (item "TODO: picture"))

  (slide
   #:title "Demo: brainf*ck"
   (item "Author: Eutro")
   (item "Your standard interpreter, but that's not the interesting part...")
   (item "Other tricks can specify the interpreter as part of their #lang, allowing language-based composition")
   (bitmap "bf.png"))

  (slide
   #:title "Demo: doots"
   (item "Author: Alwinfy")
   (item "Primitive sound synthesizer with a custom sexpr-based DSL")
   (item "TODO alwinfy")))

(define (future-plans)
  (slide
   #:title "Future Plans"
   (item "Continue modernization of racket-cord")
   (item "Persistent evaluation contexts")))
   (item "Persistent evaluation contexts")
   (subitem "Reuse the same evaluator state across multiple invocations")
   (subitem "Could be used for chat-based games")))

(define (questions)
  (slide (big (t "Questions?")))

A presentation/tshirt.png => presentation/tshirt.png +0 -0