Beginning or What is gratch?


Prelude

Many programmers have their own unique and interesting way of becoming one. Well, I hope the most are :D I can start digging from the kindergarten about my way, but I think the starting point is JAS (МАН in ukrainian). It is Junior Academy of Sciences of Ukraine, they are distributed around all of Ukraine.

First programming language

But before everything else, every programmer must know at least one programming language, right? Which one was my first?

It depends

In school I was taught Turbo Pascal with Lazarus IDE. To demostrate my first experiense I think one screenshot will be enough: Lazarus IDE on Windows Its interface may look somewhat overwhelming for a 13 year old teenager, but it was good introduction to static typing and WYSIWYG IDE’s

After this experience I was in slight disbelief in government funded IT courses. But against all odds somehow teachers assured me this thing from JAS is ok! They called it Intel Summer Camp, though I’m not 100% sure they are really connected with Intel :P

JAS

So, this way, was established THE my first programming language! It was C++ :D Yeah, one’s better than the other. It was 2018, I’ve got some good friends (Dima qq) and basic skills to problem solving.

In general, the idea of JAS is cool. But it was being polished to perfect form in the exact moment I started my scientific activities. In short - they cancelled olympiad level exams and shifted from grading participant’s problem solving skills to grading the exact solution to the specific problem they presenting.

It was excellent oportunity to work on my communication and debating skills, which helped me then in college and even with my job)

Gratch!

I liked a lot my new hobby and skill, so was in search for any opportunity to use them. This way I wrote several console apps to automate family routine and “viruses” that just created a lot of files on your D:\ drive :D

One of those apps was gratch, which called just “Duties” (like duties manager). It was meant to help my mother to manage students’ duties to clean up in their classroom. And this simple idea provided me with a material I managed to study and work upon 3 years and counting :P

I think I should make separate blog about history of gratch. But for now I think you can get a sneak-peek by this blog from 2020-03-01

Why this blog now?

I decided to use my current skills and knowledge to finally release somewhat ok version of gratch and move on to something new. It’s like closing a page in my book of life. The first step was today - I finally gathered everything related to gratch in one repo: gratch

I’ve decided to not clutter up my github profile and move older versions of gratch to this repo as separate branches. This way you can take a look at my progression by switching between branches like ‘v1’ and ‘v2’) + I searched up my archives and found version 1 through 3, which I considered lost media.

Bonus

I think it will be interesting for some people how I managed to move entire repos to a branch of another repo. Well, it is as easy, as just to add a new remote for your repo. The main idea here is that remote must not be exactly ‘remote’ from your machine ;)

not-so-remote-remote

So, key point here is to create branch in source that does not exist in destination and just push it to the newly added remote:

git branch from-source
git checkout from-source
git remote add new-origin https://github.com/...
git push new-origin