166 karma · joined November 24, 2019
either way glad you got a laugh ;)
Devlands can do so much more (it's can simulate, run, and visualize any command or scenario that can happen in Git within the context of any local repo) and in a much more intuitive way.
Maybe a lot of people don't care about that, and I guess everybody has their threshold, where as long as they know the minimum required to do their job they can stay in that comfort zone typing the same commands over and over.
Git is definitely abstract and hard to get the hang of but totally worth it - pays dividends in terms of the options it puts at your disposal. And the stimulating nature of learning how it works so that you can think for yourself to figure out a solution, instead of just memorizing 3 commands and running to AI for help when you get a little stuck.
There's this whole class of capable engineers (some at senior/staff levels!) who just never had to build good Git habits or learn how to think about the different options that Git's command set provides, because their workflow didn't demand it.
Curious - do you think that's mostly a tooling/culture thing, or more of a learning gap, where they just never had a reason to dive deeper?
Part of why I'm making these tools is to explore if a more visual approach might make some of those concepts stick better. But curious what you've seen actually work in practice for helping people improve their Git skills.
One of the things I'm trying to explore with these visual and gamified tools is how to help newer Git folks or even users who mostly live in that commit/push/pull flow get a clearer mental model of what's actually happening under the hood.
Git has a really wide breadth of functionality that is kind of interesting on its own merit, but also useful for a plethora of different tasks. For better or worse even Git experts can always find ways to expand their knowledge :)
But glad you got it working too!
However the fact that time flows in the opposite direction of the parent/child relationships, is inevitable based on Git's design.
Hehe jk you make a fair point, and in fact I do have a bunch of work left to do to make sure my simulations do match up with Git's behavior as closely as possible.
One big benefit I was going for with Git-Sim though is to interrupt the developer workflow as little as possible.
Changing directories, running a new clone (which could take a mildly annoying amount of time), and running gitk is a pretty big context-switch.
Will need to think about it more...
A big reason I wanted to pursue this idea is exactly what you mentioned - a lack of ability to easily create presentation-quality Git structures that can apply specifically to the situation a user is in, NOW.
A super annoying thing about troubleshooting Git issues is when you find a similar solution online but it's done in someone's random repo which could be very different that yours. Your whiteboard sessions are another good example down this line of thought.
My initial goals for this tool are to purely simulate actions on Git repos without actually modifying them, but I might be flexible on that going forward, as I mention in the article with the --execute flag.
Yes --low-quality works for testing but the fastest way would be to first test without the --animate flag at all, so you just get a final image of the command's effect.
Then once you get that you can add the --animate flag to generate your final video to share.
And awesome to hear it will be used for your company session! I love teaching people about Git. Feel free to share the tool with them so they can try it out as well!
Would be great to get any feedback you might have if you get the chance to install/test it out.
I was considering adding some more detailed text-based output on the command-line detailing what was going on, but I didn't think about adding it directly into the image/video.
Yes I feel your pain with Homebrew which can take forever just to check for updates on installed packages, before it even gets to installing anything new.
I know the current installation method of having to first install Manim's dependencies is not ideal, but in most of my testing it was relatively painless.
However going forward I am going to be looking for ways to make it a single install instead of various steps that differ across platforms.
Reading other peoples' code and understanding it can be incredibly useful in various contexts.
In the spirit of this, I tried my hand at understanding how Git's code works. It turns out that Git's original version - i.e. Git's initial commit - is written in the C programming language and consists ONLY of ~1,000 lines of code.
I found it so interesting and learned so much - and want to encourage other devs to do the same.
Jumping into a new codebase can be intimidating, so I put together a guidebook to help devs learn how Git's original code actually works - the Decoding Git Guidebook for Developers.