Techy blog of Kalle


#devlog #g1ant #adventiredOfG1ant #programming #csharp



Puking glitter
Originally posted by palesystemmalfunction

You cant probably see it because of Tumblrs lack of affection towards timestamps, but last episode came out 6 months ago.

I had a good flow before. Nearly one PR per week. But then summerjob happened, and some vacation, and some vacation from my vacation, then school started, then dog ate my trashcan…

I’ve been busy. And I’ve lost the flame for this project.


#rant #g1ant #adventiredOfG1ant

Part of the email I received

(from one of many bug report tickets)

>you’re a big friend for us

I find that fucking highly amusing. Holy shit I’m getting more compliments from G1ANT than from my boss that forces me to use this weirdo robot.

Why not apply for G1ANT next time I’m job hunting, I mean I have like already done ×5 more QA work for them than their dedicated QA employee. Hahaha

Vizzyo buttpunks

This post was originally posted (by me) here:

#devlog #g1ant #adventiredOfG1ant #programming #csharp

A feature I’ve been draggin in my mind for quite the time, even mentioned it in a previous post (, but when I finally got around implementing it, it went surprisingly well ¯_(ツ)_/¯

The feature in question is this thing about value conflict in variables. The G1ANT.Robot language doesn’t allow it, so I thought…. yea fuck that, I’m not goin to either.

I was already savin the shitty variables in stacks of lists for each code block, so I just added a Type value to the items and zamziop kdone. Now just throw some exceptions here n there were the value types differs.

Example code that will throw on compilation


#devlog #g1ant #adventiredOfG1ant #programming #csharp

This was a feature I didn’t add because I just imagined it would be done in an hour or so.

Oh how I was wrong. It took me FULL 90 MINUTES!

What took the most time was writing all those stupid unit tests. Implementing if-else, while, and do-while was arguably the easiest thing I’ve added. With my UNQUESTIONABLY SENSATIONALISTIC CODE BASE it was added in a jiffy. 🍆✊💦

while-loop compilation

That right there ^ was like, echo conditional jump, echo codeblock, echo label, DDdddDDONE!


#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: