**Looking back at my two years of reducing** Intro ====================================== Here I list most of my projects done while learning and playing with Red. Some of these are silly simple and some are maybe unnecessarily complicated. Some may not work any more or may work differently than originally intended, because Red is developing and from time to time some internal workings are changing and earlier scripts are broken. But I have included some broken things too in hope to come back to and repair these soon. Projects are not necessarily chronologically ordered, but are rather grouped by similarity. As I make often gifs to share my joy of discovering new things (or may be just bragging) I also included old gifs which may reflect behavior of earlier stages of projects and not the latest one (which may also be broken). Projects are taken from my Github gists and repos. Red types ======================================== One of my first attempts was trying to understand how type system is organised. So I created two diagrams, one for implementation types and the other which is probably more useful, where implementation hierarchy is shown together with typset hierarchy. Implementation types hierarchy ---------------------------------------- Implementation and typset hierarhies ---------------------------------------- Browser experiments ======================================== Image-viewer ---------------------------------------- repo Picbrowser ---------------------------------------- repo Micro-browser ---------------------------------------- repo Playing with colors ======================================== Big color-picker ---------------------------------------- gist Continuous color-picker ---------------------------------------- gist
RGB-cube ---------------------------------------- Sectors ---------------------------------------- gist Pie ---------------------------------------- gist Dashed ======================================== gist Auto-portrait Deduction ======================================== repo Diager ======================================== repo First steps to diagramming ======================================== gist Drawing-pad ======================================== repo Studying easing ======================================== Easing study tool ---------------------------------------- gist Comparison of easing functions ---------------------------------------- gist Gather data from graph ---------------------------------------- gist Makedoc ======================================== Adaption of REBOL's Makedoc ``` do/args %makedoc.red %makedoc.txt ``` Result: makedoc.html Easy-VID ======================================== Simple Easy-VID (Adaption from REBOL) ---------------------------------------- In repo Easy-VID with rich-text ---------------------------------------- In repo Markdown ======================================== Half-way done but ... unfinished Database ======================================== Toy database engine Editors ======================================== Live layout editor ---------------------------------------- repo Simple editor ---------------------------------------- repo Games ======================================== L-System ---------------------------------------- gist with models Hanoi tower ---------------------------------------- gist Cryptarithm ---------------------------------------- gist Game of Life ---------------------------------------- gist repo Graphs ======================================== ### Study of edge-arrows gist Graph description DSL ---------------------------------------- gist Some layout examples ``` graph [ n1 -> [n3 n4] n1 -> n2 nodes big-square mint n4 -> n5 "three" n2 -> n5 n3 -> [n6 "one" n7 "two"] ] ``` ``` graph [ star away edges step [a -> [down b c d e]] [a -> [left a1 -> [f g h]]] [a -> [up cw i j k]] [a -> [right across edges straight a2 - [l m n]]] ] ``` ``` graph [ star away nodes no-draw glass edges step [a -> [down b c d e]] [a -> [left a1 -> [f g h]]] [a -> [up cw i j k]] [a -> [right across edges straight a2 - [l m n]]] ] ``` Logic-gates ---------------------------------------- repo First experiments Three half-adders Full-adder 8-to-1 selector 3-to-8 decoder Level-triggered D-type flip-flop LTDTFF with clear Edge-triggered D-type flip-flop ETDTFF with clock Ripple-carry-adder 4-bit counter DaVinci code (Mirror script) ======================================== gist Exploring Red ======================================== Syntax highlighter ---------------------------------------- repo Explorer ---------------------------------------- repo AST ---------------------------------------- repo ### Beginnings ### Towards syntax-tree Syntax tree of Red code itself (@rebolek's Voronoi) ST of Draw DSL ST of Parse DSL ST of VID ST of Spec DSL Some demos ======================================== Rich-text box ---------------------------------------- gist More rich-text demos ---------------------------------------- In repo How to build a scroller ---------------------------------------- In repo Matrix ---------------------------------------- Usage examples gist repo Rotation ---------------------------------------- In repo Messing with styles ======================================== Accordion style ---------------------------------------- Drop-to-list ---------------------------------------- gist Multi-selection text-list ---------------------------------------- gist Flowing style ---------------------------------------- In repo Glimpses of Fluid ---------------------------------------- In repo (earlier) In repo (later) Shrinkable ---------------------------------------- gist repo Tabbing ---------------------------------------- gist and required actors Layout demo ---------------------------------------- gist Simplified syntax for rich-text ---------------------------------------- gist ``` view compose/only [ rich-text data ( rtd-simple/only "\[f 24 red] The \[b i] Journey \[b bg orange]Begins\b!\ " ) ] ``` ``` view compose/deep [ rich-text 310x70 draw [ text 10x10 (new: rtd-simple/width "\[f 24 red] The \[b i] Journey \[b bg orange]Begins\b!\ " 310) ] ] ``` Tools-making ======================================== Drawable area ---------------------------------------- gist Regex ---------------------------------------- Needs resuscitation gist repo Red-Graphviz ---------------------------------------- repo Block-flattening ---------------------------------------- gist Function-info tool ---------------------------------------- gist (early version) Current Matrix ---------------------------------------- gist Unicode hacking ---------------------------------------- gist repo Date picker ---------------------------------------- gist Conversion lab ---------------------------------------- gist Complex plane ---------------------------------------- gist Arc stydy ---------------------------------------- gist Dotty-font ======================================== repo Beziers ======================================== Quadratic bezier ---------------------------------------- gist Cubic bezier ---------------------------------------- gist Infinite runner ---------------------------------------- gist Uncategorized animations ======================================== Red dragon ---------------------------------------- gist Dragon-func: ``` dragon: func [n /local m k][ m: -1 until [odd? k: n / (2 ** (m: m + 1))] pick [90 -90] 0 = (k - 3 % 4) ] ... ``` Flower ---------------------------------------- gist Shape rotation demo ---------------------------------------- Nostalgic clock ---------------------------------------- gist Desktop clock ---------------------------------------- gist Eyes ---------------------------------------- Autoportrait in action Ellipse construction ---------------------------------------- gist Spirograph ---------------------------------------- gist Turtle taming ---------------------------------------- gist Playing with a stick ---------------------------------------- gist 3D-animations ======================================== Tutorials ======================================== Text-browser ---------------------------------------- repo Drawing-box ---------------------------------------- repo