Skip to content

Instantly share code, notes, and snippets.

View ruliana's full-sized avatar

Ronie Uliana ruliana

View GitHub Profile
@ruliana
ruliana / builder-function.rkt
Created October 9, 2021 16:40
Functional design patterns - builder function (Racket)
(define ((builder builder-param other-builder-param) trivial-param)
; ... do stuff
something)
@ruliana
ruliana / experimental-struct.rkt
Created September 25, 2021 02:50
Experiment expanding the basic nature of Racket structs to allow reflection and dynamic reference to fields. Also, use the struct as a procedure for get and set.
#lang racket
(require
racket/generic
(for-syntax racket/syntax
racket/function
syntax/parse
syntax/parse/define))
(provide struct*
fields name get set)
@ruliana
ruliana / empty-regexp-reader.rkt
Created February 13, 2021 22:42
Empty regexp-reader file
#lang regexp-reader racket
@ruliana
ruliana / in-groups.rkt
Last active December 16, 2020 13:48
Consecutive sequences of elements matching a predicate in Racket (lazy-version)
#lang racket
(define (in-groups keep? seq)
(let loop ([rem seq] ;; Remaining elements.
[group empty]) ;; Accumulates the sequence until we spit it.
(cond [(empty? rem)
(if (empty? group) ;; When hit the end condition, check if there
empty-stream ;; is something to spit.
group)]
[(keep? (first rem)) ;; Keep the element? Add to group.
(loop (rest rem) (cons (first rem) group))]
@ruliana
ruliana / in-groups.rkt
Last active December 16, 2020 13:48
Consecutive sequences of elements matching a predicate in Racket (eager-version)
#lang racket
(define (in-groups keep? seq)
(let loop ([rem seq] ;; Remaining elements.
[group empty]) ;; Accumulates the sequence until we spit it.
(cond [(empty? rem)
(if (empty? group) ;; When hit the end condition, check if there
empty ;; is something to spit.
group)]
[(keep? (first rem)) ;; Keep the element? Add to group.
(loop (rest rem) (cons (first rem) group))]
@ruliana
ruliana / a_qwerty.txt
Created October 22, 2020 02:04
Kinesis Advantage 2 (Nativo Brasileiro) with CAPS mapped to CTRL (on hold) and ESC (on hit)
[T]>[X]
[R]>[H]
[E]>[.]
[W]>[,]
[Q]>[/]
[G]>[U]
[F]>[O]
[D]>[A]
[S]>[E]
[A]>[I]
@ruliana
ruliana / spacemacs-utilities.el
Created September 29, 2020 13:38
Spacemacs utilities - minor stuff I use here and there
;; Reference: https://stackoverflow.com/questions/18102004/emacs-evil-mode-how-to-create-a-new-text-object-to-select-words-with-any-non-sp
(defmacro define-and-bind-text-object (key start-regex end-regex)
"Create and bind a text object to a key using regexp as delimiters"
(let ((inner-name (make-symbol "inner-name"))
(outer-name (make-symbol "outer-name")))
`(progn
(evil-define-text-object ,inner-name (count &optional beg end type)
(evil-select-paren ,start-regex ,end-regex beg end type count nil))
(evil-define-text-object ,outer-name (count &optional beg end type)
(evil-select-paren ,start-regex ,end-regex beg end type count t))
@ruliana
ruliana / o_abismo.md
Created September 18, 2020 14:27
RPG em 300 palavras - O Abismo

O Abismo

(Um RPG sobre descer e nunca mais voltar em 242 palavras)

Um artefato antigo foi perdido no Abismo. Os jogadores são a equipe designada para recuperá-lo. Cada um foi escolhido especificamente por ser um especialista.

Cada jogador começa com dois dados de 6 faces à sua frente. O primeiro é usado em todas as rolagens, o segundo é adicionado quando o desafio é relacionado à sua especialidade.

@ruliana
ruliana / dia_de_jogo.md
Last active September 9, 2020 20:42
RPG em 300 palavras - Dia de jogo

Dia de jogo

(Um RPG rápido sobre preservar os dentes em 260 palavras)

Os jogadores são torcedores do Cabreúva saindo de um jogo no estádio do adversário.

O objetivo é passar pela torcida organizada do Madureira com o maior número possível de dentes na boca.

O GM descreve uma cilada do Madureira e os jogadores tomam suas ações.

@ruliana
ruliana / vida_de_otavio.md
Last active September 9, 2020 16:05
RPG em 300 palavras - A vida de Otávio

A vida de Otávio

(Um RPG de 5 minutos em 140 palavras)

Otávio morreu.

Ele era um cara bem mediano.

Os jogadores são Deus e o Diabo discutindo se ele merece o céu ou o inferno.