home.social

#gitraven — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #gitraven, aggregated by home.social.

  1. 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>

    #unittesting #cpp #qttest

  2. 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>

    #unittesting #cpp #qttest

  3. 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>

    #unittesting #cpp #qttest

  4. 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>

    #unittesting #cpp #qttest

  5. Today I learned about structuring #CMake projects.

    This is a quick update on #GitRaven project. I have started looking into unit testing the app so I can setup CI/CD with #GitHub Actions.

    It is a long ways away but the first step must start from somewhere.

    #cppdev #opensource #qt

  6. Today I learned about structuring #CMake projects.

    This is a quick update on #GitRaven project. I have started looking into unit testing the app so I can setup CI/CD with #GitHub Actions.

    It is a long ways away but the first step must start from somewhere.

    #cppdev #opensource #qt

  7. Today I learned about structuring #CMake projects.

    This is a quick update on #GitRaven project. I have started looking into unit testing the app so I can setup CI/CD with #GitHub Actions.

    It is a long ways away but the first step must start from somewhere.

    #cppdev #opensource #qt

  8. Today I learned about structuring #CMake projects.

    This is a quick update on #GitRaven project. I have started looking into unit testing the app so I can setup CI/CD with #GitHub Actions.

    It is a long ways away but the first step must start from somewhere.

    #cppdev #opensource #qt

  9. @stranded_output Give yourself time. Sometimes you feel stuck because you’re trying to solve a tough problem or it’s similar to writers block where you can’t decide what should the next step be.

    Just give your mind sometime. Human minds are constantly cracking at tough nuts even in sleep.

    This is something I faced for #GitRaven project.

  10. EDIT: Link updated.

    Hey #fediverse #developers

    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?

    blog.suryatejak.in/gitraven-ap

    #fediverse #developers #gitraven #cpp #qt6 #linux #opensource #diary #blog

  11. 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.

    #diary #opensourcedev #cppdev

  12. 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.

    #diary #opensourcedev #cppdev

  13. 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.

    #diary #opensourcedev #cppdev

  14. 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.

    #diary #opensourcedev #cppdev

  15. 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.

    #diary #cppdev #gitraven #opensource

  16. 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.

    #diary #cppdev #gitraven #opensource

  17. 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.

    #diary #cppdev #gitraven #opensource

  18. 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.

    #diary #cppdev #gitraven #opensource

  19. 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.

    #diary #cppdev #gitraven #opensource

  20. 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.

    #diary #cppdev #git #opensource #developers

  21. 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.

    #diary #cppdev #git #opensource #developers

  22. 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.

    #diary #cppdev #git #opensource #developers

  23. 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.

    #diary #cppdev #git #opensource #developers

  24. 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;
    ```

    #cppdev #cpp #programming

  25. 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;
    ```

    #cppdev #cpp #programming

  26. 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;
    ```

    #cppdev #cpp #programming

  27. 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;
    ```

    #cppdev #cpp #programming

  28. Not proud or satisfied about this bug fix as I had to use ChatGPT in the end.

    github.com/shanmukhateja/gitra

    The fix was computing `objFullPath` over each iteration and then use it when computing absolute path for a tree node.

    #diary #gitraven #opensource #cpp #qt

  29. Hello #fediverse

    Here is my next post on my #GitRaven pet project that's written in C++ and Qt.

    This time, I am integrating Monaco editor (editor/viewer of VSCode) to this project.

    Give it a read:
    blog.suryatejak.in/ghostllm-ho

    #git #opensource #monacoeditor #cpp #javascript

  30. Hello #fediverse

    I am happy to share my blog post on #GitRaven project.

    This post has been stuck on Drafts for so long! I am happy it's out :)

    This is my first C++ project as well as my first Qt project. Some of you might remember my #MyStudio project journey with Rust + GTK.

    Anyways, here's hoping you'd give it a read.

    I am open to feedback so feel free to share your views :)

    blog.suryatejak.in/gitraven-ho

  31. EDIT: Link updated.

    Hey #fediverse #developers

    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?

    blog.suryatejak.in/gitraven-ap

    #fediverse #developers #gitraven #cpp #qt6 #linux #opensource #diary #blog

  32. EDIT: Link updated.

    Hey #fediverse #developers

    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?

    blog.suryatejak.in/gitraven-ap

    #fediverse #developers #gitraven #cpp #qt6 #linux #opensource #diary #blog

  33. EDIT: Link updated.

    Hey #fediverse #developers

    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?

    blog.suryatejak.in/gitraven-ap

    #fediverse #developers #gitraven #cpp #qt6 #linux #opensource #diary #blog

  34. EDIT: Link updated.

    Hey #fediverse #developers

    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?

    blog.suryatejak.in/gitraven-ap

    #fediverse #developers #gitraven #cpp #qt6 #linux #opensource #diary #blog

  35. Hello #fediverse

    I am happy to share my blog post on #GitRaven project.

    This post has been stuck on Drafts for so long! I am happy it's out :)

    This is my first C++ project as well as my first Qt project. Some of you might remember my #MyStudio project journey with Rust + GTK.

    Anyways, here's hoping you'd give it a read.

    I am open to feedback so feel free to share your views :)

    blog.suryatejak.in/gitraven-ho

  36. Hello #fediverse

    I am happy to share my blog post on #GitRaven project.

    This post has been stuck on Drafts for so long! I am happy it's out :)

    This is my first C++ project as well as my first Qt project. Some of you might remember my #MyStudio project journey with Rust + GTK.

    Anyways, here's hoping you'd give it a read.

    I am open to feedback so feel free to share your views :)

    blog.suryatejak.in/gitraven-ho

  37. Hello #fediverse

    I am happy to share my blog post on #GitRaven project.

    This post has been stuck on Drafts for so long! I am happy it's out :)

    This is my first C++ project as well as my first Qt project. Some of you might remember my #MyStudio project journey with Rust + GTK.

    Anyways, here's hoping you'd give it a read.

    I am open to feedback so feel free to share your views :)

    blog.suryatejak.in/gitraven-ho

  38. Hello #fediverse

    I am happy to share my blog post on #GitRaven project.

    This post has been stuck on Drafts for so long! I am happy it's out :)

    This is my first C++ project as well as my first Qt project. Some of you might remember my #MyStudio project journey with Rust + GTK.

    Anyways, here's hoping you'd give it a read.

    I am open to feedback so feel free to share your views :)

    blog.suryatejak.in/gitraven-ho