Techy blog of Kalle

I rant, I devlog, I guide. Don't expect anything serious, although sometimes there are golden nuggets.

#devlog #g1ant #adventiredOfG1ant #programming #csharp #unicode

+141 additions, -6 deletions, 5 files changed, 4 hours. Easily my quickest PR so far.

Sometimes you can feel the tingle of “hey, you know that’s probably done already 201395 times before, probably much better too” but keep on doing it anyways…

Exactly that feeling is what I got when I just now produced this list:


#devlog #rant #g1ant #adventiredOfG1ant #programming #csharp #tdd

Naming methods is legit one of my biggest priorities in getting rhoight. However, when you mix TDD and my usual level of sleep dep, the names stack on with so many words it’s really unmuzzleable.

Like I cry blood when reading this, but I don’t have the energy to come up with a better name:

Unit test with extreamly long name

Oooo yea the main reason I logged into bloglr!; I just got if-else statements working! And I’m fiddling around a little with some minor optimizations for like when the code block is empty and all that jazz.

I love this codebase. Most fun I’ve had with a single project ever. I have had no planning done aT ALL but I’ve lapped a distance. I’m jolly.

Lizzlio, spudvucks!

This post was originally posted (by me) here:

#devlog #g1ant #adventiredOfG1ant #programming #csharp #tdd #codedesign

I’m quite burnt out atm, have had 12 consecutive 8 hour work days, so my mind is kinda fried. Help a soul out would I?

In my adventure of doing this in the spiritanimalkingdom of test-driven development, anymes got a neat solution in their cranium capsule of how I could make this code more readable?

Bloated unit tests


#devlog #g1ant #adventiredOfG1ant #programming #csharp

Not only the lazyness of me implementing this but also about posting this. I try to keep up to date with myself but this shitpost has fallen a week after due the pull request was merged.

The ruckus new feature is what to be expected as one of the simplest of things.

It’s negative numbers.

Twenty7seven days since the start of the project. Waaaay to long if I ask me.

I’m usually against negativity, so therefore I didn’t want to add this feature. But with a hard argument with the b0ss and numerous angry users (me, me, & me), I ended up adding it anywayssss. Oh me people.


#devlog #g1ant #adventiredOfG1ant #programming #csharp

33 commits, 44 files changed, +3k additions, 1 (① one) feature…

So bappin happy this feature is finally in a working state. I’ve been procrastinating this hippo for so long, but now it’s implemented and it works wonders!

In G1ANT you have commands and not functions to call, and they use a kind of out parameter structure for the commands results. Like for example, to get the result from a dialog box you do it like this:

Sample G1ANT.Robot code using dialog.ask


#devlog #g1ant #adventiredOfG1ant #programming #csharp

Short post this time ‘cause I want to sleep.

But here’s a cool insight of my regex-based tokenizer:

Had to tweak the number tokenization because was fiddling arouynd with the dot operations. Looks like hell but hey it’s not too bad.

It’s by far my longest regex in the current codebase.

For a little easier sight of it in the works:

Sleep wheel, truckputts

This post was originally posted (by me) here:

#devlog #g1ant #adventiredOfG1ant #programming #csharp

Tremendous amount of time have been spent solely for expression parsing, ‘cause I want that stupid shitpile to work in a proper way.

I’ve just now successfully rewritten the compiling part to in a cleaner way parse expressions and statements, and dahym it’s working like a charm.

With the new system I can much easier handle expressions; look at their content and for example, remove unneeded parentheses, extract statements that needs to compile ahead of time, and other fun stuff.


#devlog #g1ant #adventiredOfG1ant #programming #csharp

So in the spirit of not-enough-chores-at-work I’ve today found a sickly bad workaround for how to handle try-catch statements.

My solution is (like the code of your website) solved by a clump of workarounds to achieve a pretty simple goal. Howevery, because of my humbleness, I find my solution to be quite best and 300IQ’d.

The G1ANT.Robot lang has some sort of error handling built in, which is nice; but only for commands. What you can do is to append the arguments errorresult and errorjump to any command, and they’ll catch ‘em all. Like take a peakis at this dungus script example:

try-catch of a function call


#devlog #g1ant #adventiredOfG1ant #programming #csharp

This is a follow-up on my rant

Ever been so tired of the syntax of a programming language that you just couldn’t stand it? But in the meantime being forced to use it because of your workplace? So you develop a new language to compensate so you don’t have to handle the absolute shitstorm headaches from using the language?

I know I am. (Because I have a lot of free time at the moment)

Welcome to the devlog of Robot++. A compiler written in C# that translates the syntax of my made up language Robot++ into executable G1ANT.Robot code.

On todays report of my mission in “trying to embarrass the G1ANT developers by making a compiler as a statement of how bad they are at making a language” is some progress pics!


#rant #g1ant #adventiredOfG1ant

// hey we need to have some interface for this tool we’ve created

\ oh ok, talking nice graphical interface or programming lang?

// programming language

\ alright, well let’s just embed a lua compi-…

// nOnonoNOnO! let’s be cool about it; we make our own language!

\ hah ok i’m game, let’s just tell the boss it COULDN’T be done ANY other way! :D where do we start? got a syntax in mind?

// ok hear me out, i’ve been thinking about this for awhile, it’s gonna be epic