Broken in New and Fascinating Ways

Where lazr unceremoniously returns to long form writing, but with Lisp this time.

Wait what?

Well, it's been a very, very long time. Wait, that's not right... Oh, here it is.

So much has changed since then. God, I was kind of cringey. But, I've learned so much and I figure it's time to actually show it off.

So, welcome to the world, lazr.space!

This site is generated using Haunt, an absolutely fantastic static site generator that uses Guile Scheme. Here's some highlights:

An All New Old Aesthetic

One clever thing I wanted was a stripy accent like Bethesda's space shooter Starfield. In the spirit of overdesigning things, I went for an automatically generated, embedded SVG drawing. You can see the results in the header above. That's not an image; that's built when I build the website.

Here's the code for generating it:

;; nasapunk-divider ((list-of string?) colors) -> sxml?
;;
;; Create an sxml SVG drawing that looks sort of like Starfield's stripy aesthetic.
(define (nasapunk-divider . colors)
  (define stripe-width 30)

  (define total-width (* stripe-width (+ 3 (length colors))))

  (define height 100)

  (define (make-slashed-poly color offset)
    `(polygon (@ (points ,(string-join
                           (map number->string
                                (list
                                 (* stripe-width (+ 1 offset)) 0
                                 (* stripe-width offset) height
                                 (* stripe-width (+ 1 offset)) height
                                 (* stripe-width (+ 2 offset)) 0))))
                 (fill ,color))))

  `(svg (@ (viewBox ,(string-join (map number->string
                                       (list 0 0 total-width height))))
           (height "3em"))
        ,@(let ((i 0))
            (map (lambda (color)
                   (let ((poly (make-slashed-poly color i)))
                     (set! i (+ 1 i))
                     poly))
                 colors))))

A couple of notes immediately: First, I have to say that generating SVGs like this is extremely satisfying. Secondly, trying to do this with