Skip to content

Instantly share code, notes, and snippets.

@hiiamboris
hiiamboris / inspect.red
Created December 11, 2018 17:09
image inspector func
Red []
inspect: function [i] [
pixel: 10x10
? (also i': make image! i/size * pixel
x: y: repeat y i/size/y [
repeat x i/size/x [
p: as-pair x y
draw i' compose [
line-width 1 pen (i/:p) fill-pen (i/:p)
@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-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 / 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 / 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