Skip to content

Instantly share code, notes, and snippets.

View ruliana's full-sized avatar

Ronie Uliana ruliana

View GitHub Profile
@ruliana
ruliana / FIN-load-from-url.lua
Last active August 13, 2023 03:55
Lua script for loading and executing files from URLs in FICSIT Network
-- All the scripts that should be loaded.
-- Put then in load order
local URLs = {
"https://gist.githubusercontent.com/ruliana/b48dcbaa1ddd92882e9a3cca36d6777f/raw/819bb7ebbd530a1d94601549fd6ae819ecea1cf4/FIN-item-flow-measurement.lua"
}
local card = computer.getPCIDevices(findClass("FINInternetCard"))[1]
if not card then
error("Internet card not found")
end
@ruliana
ruliana / FIN-item-flow-measurement.lua
Last active August 17, 2023 01:16
Lua script for print in a screen the belt throughput in FICSIT Network
---------------------
----- UTILITIES -----
---------------------
-- Utilities to get components from the network
function getComponents(className)
local compos = component.proxy(component.findComponent(findClass(className)))
if #compos == 0 then
error(string.format("No component of class \"%s\" found", className))
end
@ruliana
ruliana / xslt-pseudo.el
Created June 18, 2023 09:04
XSLT Pseudo Implementation in Elisp
(defun apply-templates (node templates)
(let (output)
;; loop through each template
(dolist (template templates output)
;; if the current node matches the template
(when (matches node (car template))
;; apply the template and stop processing further templates
(setq output (apply-template node template))
(return output)))
;; if no template matched, process the node's children
@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 / builder-function.rkt
Last active October 11, 2021 09:03
Functional design patterns - builder function (Racket)
(define (builder builder-param other-builder-param)
; ... optionally some initialization code
(λ (trivial-param)
; ... do stuff
something))
@ruliana
ruliana / builder_function.py
Last active October 11, 2021 09:05
Functional design patterns - builder function (Python)
def builder(builder_param, other_builder_param):
# ... optionally some initialization code
def the_actual_function(trivial_param):
# ... do stuff
return something
return the_actual_function
# Then later...
my_func = builder(x, y)
@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 (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 / 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))]