Old project rewrite
Recently, I rewrote my 11-year-old project, Linux memory editor, with AI. Some people reject AI; some embrace it. I treat AI as the tool to do the task, but I know AI output is not 100% work. Nevertheless, AI has better knowledge than I do. But still, AI doesn’t have my specific knowledge, experience, and context; that’s why AI is just a complementary tool for humans to finish the task.
Memory editor
When I play games, I don’t like to spend time grinding (leveling up, collecting items, etc.). As a result, I use memory editing to make the gameplay faster. I created a Linux memory editor years ago. I started with GTK for the UI widget and used C++. However, GTK is less convenient for C++, so I switched to Qt. That’s how far it went.
Hobby project using fly.io
Just tried fly.io. It is super nice, because it allows to “run small application for free”. Since I have a hobby project (bible related), I dockerize it and deploy on fly.io. And it works well. Here is the link.
The hobby project above now only supports Studium Biblicum.
Software engineer's soft skills
As a software engineer, he/she needs to have the hard skills especially writing source code, debugging. He/she needs to know multiple programming languages (eg C, C++, C#, JavaScript, Python, etc). It will be even better if he/she can write tests, adopt TDD, write clean code, do refactoring, know how to implement various algorithms (search algorithm, sort algorithm, dynamic programming, etc), review code. These are all hard skills.
However, in order to perform well in the working environment, software developers are recommended to adopt several soft skills. These skills will help the team to improve the productivity.
Godot Mono and tests
In my previous post, I mentioned about using C# for Godot Mono. However, recently I found that, due to MonoDevelop is inactive, it causes my personal project not able to be built. As a result, I have to change the build tool to dotnet CLI. This can be set through
Godot (Mono) > Editor > Editor Settings > Mono > Builds > Build Tool
Besides that, I also changed the External Editor from MonoDevelop to Visual Studio Code. Visual Studio Code is nice for the C# project. It has autocompletion and able to find function definition and function references.
Med (Linux Memory Editor) version 3.7
Med version 3.7 released.
The custom search feature now allows other scan types (int8, int16, …, int64, float32, float64), including the operators. Now also supports int64 scan type, which can be found in 64-bit games.
Besides that, there is new operator “”, which acts like “search within”. I use it as a shortcut for search within, especially search the float number we see in the game, 999, which may be 998.999 or 999.1111. By using “”, it will translate to search within [998, 1000]. It allows second argument, as “± x”. Without second argument, it is “± 1”.
Simple music generator
I just revived my very old hobby project, Musgen.
I was interested in artificial creativity, was intended to advanced my study of doctorate on this topic. However, due to lack of the expertise in the local universities, I didn’t advance my study on artificial creativity.
Imagine that, if I can generate musics, then I can create my own game with any random background musics.
Med (Linux memory editor) version 3.6.1
I released version 3.6.1 for my hobby project, Med (Linux Memory Editor). There are several great changes in UI (since 3.5), especially the larger window, due to more components in the UI.
Named scans
Now it supports named scans (the bottom part of the window).

I create this named scans feature because sometimes I need to scan for several values of interested. For example, a game character A’s experience point and character B’s experience point. By using named scans, I can scan these two values without destroying the scan result of each others. This makes my (game cheating) life become much easy.
Brave and Chromium
I have switched my primary web browser to Brave. But also found that Chromium (or any alternative web browser) is necessary. Since I am a software developer, sometimes need to implement ads related feature. Brave will block ads by default. That’s why I need an alternative web browser that I can freely to turn off the adblock. Though I can turn off the adblock in Brave, it will affect my browsing experience. As a result, using an alternative web browser for development on ads related feature is necessary.
Godot and C#
In my previous post, I wrote about my hobby project with Godot.
Limitations of GDScript
But I personally feel that, Godot script, namely GDScript, is not my favourite. Though GDScript is good enough to do anything, it is not what I like. Firstly, it is Python-like language. In my opinion, using indentation as scope is annoying, because I cannot auto-indent using Emacs. Due to my first programming language is C, and heavy use on JavaScript, braces (curly brackets {}) are easier to read.
Best web application framework I like
So far, in my opinion, Ruby on Rails is the best web application framework that I have used. Compared to others, it is very complete (by installing extra gems) and mature, provides everything that I need.
Version manager
There are two version managers: rvm and rbenv. I prefer rvm. It allows to work on different projects with different Ruby versions. Node has similar manager, nvm. Python has similar feature, but acts differently, using venv or virtualenv. In Python, we need to install the specific version, and create the environment by specifying our Python version. Contrarily, rvm or nvm will download and build the corresponding version.