Software engineering graduate & Java developer

My Career Timeline

It has been
• 9 years and 10 months since… Very first scripts in VBScript
• 9 years and 6 months since… Hello World in Java
• 4 years and 6 months since… Developer at KadeL Data servis, spol. s r.o.
• 3 years and 6 months since… Bachelor's degree in Computer Science (Faculty of Applied Sciences, UWB) – with honors
• 0 years and 5 months since… Master's degree in Software Engineering (Faculty of Applied Sciences, UWB)

Significant Works

2021
Older
Before you leave...

Draw something nice for me

Default values:

• Default position = [0, 0] (center)
• Default step = 20
• Default angle = 0 deg (→)
• Default angle change = 45 deg
• Default stroke width = 1
• Default recursion limit = 100

Commands:

Relative plotting:

• M – move forward by step
• D – draw forward by step
• S(n) – set step to n
• M(n) – move forward by n
• D(n) – draw forward by n
• + – increment angle by 45 deg
• - – decrement angle by 45 deg
• +(n) – increment angle by n degrees
• -(n) – decrement angle by n degrees
• [ – push position and angle into stack
• ] – pop position and angle from stack

Absolute plotting:

• M(x, y) – move to absolute position
• D(x, y) – draw to absolute position
• H – move home (0x0)
• A(n) – set angle to n degrees

Graphics & paths:

• B(r, g, b, a) – set background color (rgb = 0-255, a = 0-1)
• C(r, g, b, a) – set stroke color (rgb = 0-255, a = 0-1)
• W(n) – set stroke width
• Z – close path (connects first and last point)
• E – end path (C, W, Z, F and B also end path)
• F – fill path

Program flow:

• ?(x) { ... } – evaluates body only if x is not zero
• R(n) { ... } – repeat body n times
• @xxx(\$x, \$y...) { ... } – define procedure named xxx with arguments x, y...
• @xxx() – execute procedure named xxx
• !(n) – set stack (recursion) limit to n (max: 1000)
• \$xxx(y) – set global variable xxx to y

Expressions:

• Standard infix notation, support for parenthesis
• Arithmetical operators: +-√∛²³ (unary), +-*×/÷%^ (binary)
• Logical operators: ! (unary), |&=<> >= <= != (binary)
• Custom variables: \$xxx for variable named xxx
• Build-in variables: \$\$x, \$\$y, \$\$a, \$\$s, \$\$width, \$\$height, \$\$rnd, \$\$it (only in R block)

Interpreter behaviour:

• Designed to be fault tolerant (the main reason is rendering while typing)
• Case insensitive
• Argument list is also terminated by line feed or curly bracket
• Characters allowed in identifiers (variable/procedure names): A-Z, _
• The maximum number of executed commands is limited to 1,000,000 (no infinite loops)