Skip to content

Instantly share code, notes, and snippets.

@hiiamboris
hiiamboris / slow-redraw.red
Created May 22, 2020 18:00
Time redraw of an image
Red [needs: view] ;) run as `red --cli ...` to eliminate GUI console influence!
img: make image! 2000x1000 ;) need a big enough image
system/view/auto-sync?: no ;) disable auto-update so we can profile it
view [
panel [
base font-color black "CHASE THE MOUSE AROUND" 1000x500 img
all-over on-over [
t0: now/precise
face/image/(10x10): random white ;) update the image
@hiiamboris
hiiamboris / react-mark.red
Last active May 25, 2020 15:51
Reactivity benchmark
Red [title: "reactivity benchmark" needs: view] ;) run as `red --cli ...` to eliminate GUI console influence!
do https://gitlab.com/hiiamboris/red-mezz-warehouse/-/raw/master/clock.red
do-unseen: function [code [block!]] [
old: system/view/auto-sync?
system/view/auto-sync?: no
do code
system/view/auto-sync?: old
]
@hiiamboris
hiiamboris / react-mark-view.red
Last active June 19, 2020 13:23
Reactivity benchmark (using faces)
Red [title: "reactivity benchmark" needs: view] ;) run as `red --cli ...` to eliminate GUI console influence!
do https://gitlab.com/hiiamboris/red-mezz-warehouse/-/raw/master/clock.red
do-unseen: function [code [block!]] [
old: system/view/auto-sync?
system/view/auto-sync?: no
do code
system/view/auto-sync?: old
]
@hiiamboris
hiiamboris / lagometer.red
Last active January 28, 2021 16:51
lagometer
Red [needs: view]
img: draw 4000x2000 [scale 2 2 fill-pen yello circle 1000x500 1000 500]
lag: object [max: avg: 0.0]
offset: 0x0
plot: []
system/view/auto-sync?: off
view/no-wait [
below
@hiiamboris
hiiamboris / rolling-text.red
Last active March 16, 2021 08:48
Smooth rolling text
Red []
speed: 50
rt: rtd-layout [{ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}]
rt/font: make font! [name: "Colonna MT" size: 100]
rt/size: 99999x999
rt/size: size-text rt
draw: compose/deep [scale 0.5 0.5 [pen cyan text 0x20 (rt)]]
draw2: compose/only/deep [translate 0x0 (draw) translate (rt/size * 1x0 / 2) (draw)]
t0: now/precise
@hiiamboris
hiiamboris / func-cache-estimation.red
Created March 18, 2021 21:08
Function cache size estimation and cache creation prototype
Red []
#include %assert.red
#include %keep-type.red
#include %composite.red
#include %map-each.red
#include %format-number.red
#macro [#print string!] func [[manual] s e] [insert remove s [print #composite] s]
word-id: routine [word [any-type!] return: [integer!] /local w] [
@hiiamboris
hiiamboris / arity.red
Last active April 12, 2021 17:50
get arity of any word or path
arity?: func [p [word! path!] /local p2] [
either word? p [
preprocessor/func-arity? spec-of get :p
][
; path format: obj1/obj2.../func/ref1/ref2...
; have to find a point where in that path a function starts
; i.e. p2: obj1/obj2.../func
; and the call itself is: func/ref1/ref2...
p2: as path! clear [] ; reuse the same block over and over again
until [
@hiiamboris
hiiamboris / react-mark-noview.red
Last active June 6, 2021 08:13
Reactivity benchmark (using reactors)
Red [title: "reactivity benchmark"] ;) run as `red --cli ...` to eliminate GUI console influence!
do https://gitlab.com/hiiamboris/red-mezz-warehouse/-/raw/master/clock.red
recycle/off
print-count: does [
attempt [print ["relations count:" (length? system/reactivity/relations) / 4]]
attempt [print ["relations count:" system/reactivity/relations-count]]
]
@hiiamboris
hiiamboris / crash.red
Created June 29, 2021 15:12
try/keep crasher
Red []
;--- IRRELEVANT CODE ---
;--- IF IT DOESN'T CRASH TRY DUPLICATING SOME OR REMOVING ----
assert: function [contract [block!]][
set/any [cond msg] reduce contract
unless :cond [
print ["ASSERTION FAILURE:" mold/part contract 100] ;-- limit the output in case we have face trees or images
@hiiamboris
hiiamboris / practice-split-2021-12-17-17-20-35.red
Created December 23, 2021 16:02
practice-split-2021-12-17-17-20-35.red
[[
id: #01
desc: ""
input: "a,b,c"
goal: ["a" "b" "c"]
hint: ""
dial-status: correct
dial-solution: {","}
dial-tries: [23-Dec-2021/19:00:43+03:00 {","}]
ref-status: correct