#gitraven — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #gitraven, aggregated by home.social.
-
Quick update: I wrapped up adding test cases for tree widget of #GitRaven
Its job is to construct tree like structures for given 1D paths like “foo/bar/baz.txt”
Next up, diff generation logic needs to be tested. I wrote 2 test cases manually and got them to pass.
Later, gave those two over to ChatGPT along with my enum declarations so it understands context and asked it to explain the code.
Once I am happy with the answer, I asked it to come up with test cases.
In this process, we came across a diff logic bug in the app.
I confirmed the bug on the UI so writing test cases for this will prove to be very useful. A lot of learning in just a day!
<rant>
I am bittersweet about AI tech. It has its use cases but its run by not so trustworthy people for definitely not good intentions 🫠
</rant> -
Quick update: I wrapped up adding test cases for tree widget of #GitRaven
Its job is to construct tree like structures for given 1D paths like “foo/bar/baz.txt”
Next up, diff generation logic needs to be tested. I wrote 2 test cases manually and got them to pass.
Later, gave those two over to ChatGPT along with my enum declarations so it understands context and asked it to explain the code.
Once I am happy with the answer, I asked it to come up with test cases.
In this process, we came across a diff logic bug in the app.
I confirmed the bug on the UI so writing test cases for this will prove to be very useful. A lot of learning in just a day!
<rant>
I am bittersweet about AI tech. It has its use cases but its run by not so trustworthy people for definitely not good intentions 🫠
</rant> -
Quick update: I wrapped up adding test cases for tree widget of #GitRaven
Its job is to construct tree like structures for given 1D paths like “foo/bar/baz.txt”
Next up, diff generation logic needs to be tested. I wrote 2 test cases manually and got them to pass.
Later, gave those two over to ChatGPT along with my enum declarations so it understands context and asked it to explain the code.
Once I am happy with the answer, I asked it to come up with test cases.
In this process, we came across a diff logic bug in the app.
I confirmed the bug on the UI so writing test cases for this will prove to be very useful. A lot of learning in just a day!
<rant>
I am bittersweet about AI tech. It has its use cases but its run by not so trustworthy people for definitely not good intentions 🫠
</rant> -
Quick update: I wrapped up adding test cases for tree widget of #GitRaven
Its job is to construct tree like structures for given 1D paths like “foo/bar/baz.txt”
Next up, diff generation logic needs to be tested. I wrote 2 test cases manually and got them to pass.
Later, gave those two over to ChatGPT along with my enum declarations so it understands context and asked it to explain the code.
Once I am happy with the answer, I asked it to come up with test cases.
In this process, we came across a diff logic bug in the app.
I confirmed the bug on the UI so writing test cases for this will prove to be very useful. A lot of learning in just a day!
<rant>
I am bittersweet about AI tech. It has its use cases but its run by not so trustworthy people for definitely not good intentions 🫠
</rant> -
I might have to explore C++ RAAI concept sooner or later for #GitRaven.
It is getting difficult manually free-ing memory used via libgit2. I am having to think about and write if checks for all the edge cases across my GitManager class.
ChatGPT suggested this after I mentioned this issue and it sounds like it's useful.
-
I might have to explore C++ RAAI concept sooner or later for #GitRaven.
It is getting difficult manually free-ing memory used via libgit2. I am having to think about and write if checks for all the edge cases across my GitManager class.
ChatGPT suggested this after I mentioned this issue and it sounds like it's useful.
-
I might have to explore C++ RAAI concept sooner or later for #GitRaven.
It is getting difficult manually free-ing memory used via libgit2. I am having to think about and write if checks for all the edge cases across my GitManager class.
ChatGPT suggested this after I mentioned this issue and it sounds like it's useful.
-
I might have to explore C++ RAAI concept sooner or later for #GitRaven.
It is getting difficult manually free-ing memory used via libgit2. I am having to think about and write if checks for all the edge cases across my GitManager class.
ChatGPT suggested this after I mentioned this issue and it sounds like it's useful.
-
EDIT: Link updated.
I am happy to bring this update for my pet project #GitRaven. It's a Git management tool built in C++ and Qt as a learning experience.
Give it a read and let me know how you like it?
https://blog.suryatejak.in/gitraven-april-2026-updates
#fediverse #developers #gitraven #cpp #qt6 #linux #opensource #diary #blog
-
Do you know what happens when you write Qt + C++ code with web dev experience? Your mental model for memory management (which is non-existent because JS has GC), leads to memory leaks.
It's so bad I had to:
1. rewrite most of the init code for member variables in almost all widgets so the expectation of "WidgetA" from "child C" of MainWindow is available when "WidgetB" emits a signal.2. currently debugging memory leak when MainWindow is closed - huh?
Yup, I have a WindowActivate event that triggers a "status" update and ALL important widgets listen to the signal emitted by THIS fn to update the state.3. A connect() is causing seg fault right now when I update the widget's state multiple times in a row. (still haven't checked this out yet)
4. clang-tidy is labelling cosmetic things like "Class *obj = new Class();" into "auto *obj = new Class();" and my OCD is annoyed.
-
Do you know what happens when you write Qt + C++ code with web dev experience? Your mental model for memory management (which is non-existent because JS has GC), leads to memory leaks.
It's so bad I had to:
1. rewrite most of the init code for member variables in almost all widgets so the expectation of "WidgetA" from "child C" of MainWindow is available when "WidgetB" emits a signal.2. currently debugging memory leak when MainWindow is closed - huh?
Yup, I have a WindowActivate event that triggers a "status" update and ALL important widgets listen to the signal emitted by THIS fn to update the state.3. A connect() is causing seg fault right now when I update the widget's state multiple times in a row. (still haven't checked this out yet)
4. clang-tidy is labelling cosmetic things like "Class *obj = new Class();" into "auto *obj = new Class();" and my OCD is annoyed.
-
Do you know what happens when you write Qt + C++ code with web dev experience? Your mental model for memory management (which is non-existent because JS has GC), leads to memory leaks.
It's so bad I had to:
1. rewrite most of the init code for member variables in almost all widgets so the expectation of "WidgetA" from "child C" of MainWindow is available when "WidgetB" emits a signal.2. currently debugging memory leak when MainWindow is closed - huh?
Yup, I have a WindowActivate event that triggers a "status" update and ALL important widgets listen to the signal emitted by THIS fn to update the state.3. A connect() is causing seg fault right now when I update the widget's state multiple times in a row. (still haven't checked this out yet)
4. clang-tidy is labelling cosmetic things like "Class *obj = new Class();" into "auto *obj = new Class();" and my OCD is annoyed.
-
Do you know what happens when you write C+++ Qt code with web dev experience? Your mental model for memory management (which is non-existent because JS has GC), leads to memory leaks.
It's so bad I had to:
1. rewrite most of the init code for member variables in almost all widgets so the expectation of "WidgetA" from "child C" of MainWindow is available when "WidgetB" emits a signal.2. currently debugging memory leak when MainWindow is closed - huh?
Yup, I have a WindowActivate event that triggers a "status" update and ALL important widgets listen to the signal emitted by THIS fn to update the state.3. A connect() is causing seg fault right now when I update the widget's state multiple times in a row. (still haven't checked this out yet)
4. clang-tidy is labelling cosmetic things like "Class *obj = new Class();" into "auto *obj = new Class();" and my OCD is annoyed.
-
Do you know what happens when you write Qt + C++ code with web dev experience? Your mental model for memory management (which is non-existent because JS has GC), leads to memory leaks.
It's so bad I had to:
1. rewrite most of the init code for member variables in almost all widgets so the expectation of "WidgetA" from "child C" of MainWindow is available when "WidgetB" emits a signal.2. currently debugging memory leak when MainWindow is closed - huh?
Yup, I have a WindowActivate event that triggers a "status" update and ALL important widgets listen to the signal emitted by THIS fn to update the state.3. A connect() is causing seg fault right now when I update the widget's state multiple times in a row. (still haven't checked this out yet)
4. clang-tidy is labelling cosmetic things like "Class *obj = new Class();" into "auto *obj = new Class();" and my OCD is annoyed.
-
-
-
-
-
I am making time for #GitRaven project again. It had stalled for sometime due to other commitments.
Today, I learned C++ and Qt lifetimes, the advantages of member initializer lists. I still have one more issue to fix w.r.t this topic but I will hold it off a little longer, switching my focus on adding features.
-
I am making time for #GitRaven project again. It had stalled for sometime due to other commitments.
Today, I learned C++ and Qt lifetimes, the advantages of member initializer lists. I still have one more issue to fix w.r.t this topic but I will hold it off a little longer, switching my focus on adding features.
-
I am making time for #GitRaven project again. It had stalled for sometime due to other commitments.
Today, I learned C++ and Qt lifetimes, the advantages of member initializer lists. I still have one more issue to fix w.r.t this topic but I will hold it off a little longer, switching my focus on adding features.
-
I am making time for #GitRaven project again. It had stalled for sometime due to other commitments.
Today, I learned C++ and Qt lifetimes, the advantages of member initializer lists. I still have one more issue to fix w.r.t this topic but I will hold it off a little longer, switching my focus on adding features.
-
Here's my first dev post of my new pet project #GitRaven
https://blog.suryatejak.in/gitraven-how-to-use-qtreeview-with-a-custom-model-class
It's written in C++ and this took so much time to figure out.
-
I ran into my very first "it runs as long as you do it the app's way" kind of bug. My guess is, by assigning a different variable here, the pointer's address is aligned "just right" for my code to work.
This comment is from my #GitRaven project.
```
// FIXME: Use `amendCommitOid` instead
// Note: The app seg faults when this variable is deleted :/
git_oid oid = autoCommitOid;
``` -
I ran into my very first "it runs as long as you do it the app's way" kind of bug. My guess is, by assigning a different variable here, the pointer's address is aligned "just right" for my code to work.
This comment is from my #GitRaven project.
```
// FIXME: Use `amendCommitOid` instead
// Note: The app seg faults when this variable is deleted :/
git_oid oid = autoCommitOid;
``` -
I ran into my very first "it runs as long as you do it the app's way" kind of bug. My guess is, by assigning a different variable here, the pointer's address is aligned "just right" for my code to work.
This comment is from my #GitRaven project.
```
// FIXME: Use `amendCommitOid` instead
// Note: The app seg faults when this variable is deleted :/
git_oid oid = autoCommitOid;
``` -
I ran into my very first "it runs as long as you do it the app's way" kind of bug. My guess is, by assigning a different variable here, the pointer's address is aligned "just right" for my code to work.
This comment is from my #GitRaven project.
```
// FIXME: Use `amendCommitOid` instead
// Note: The app seg faults when this variable is deleted :/
git_oid oid = autoCommitOid;
```