home.social

#cppdev — Public Fediverse posts

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

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

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

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

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

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

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

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

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

  9. Final part of my terminal text editor series is live. Part 3 covers the View layer, choosing FTXUI over ncurses, simulating a cursor in the terminal, and translating keyboard events into semantic input types.

    This wraps up the wordNebula Phase 1 series. All three parts are linked together.

    ilean.me/blog/building-a-termi

    #CPlusPlus #OpenSource #TerminalUI #TextEditor #Programming #SoftwareDevelopment #CppDev #cpp

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

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

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

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

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

  15. Part 2 of my terminal text editor series is live. This one covers the Presenter layer — smart pointer ownership, breaking circular dependencies with weak_ptr, routing keyboard input through semantic events, and managing viewport state.

    ilean.me/blog/building-a-termi

    #CPlusPlus #OpenSource #TerminalUI #TextEditor #Programming #SoftwareDevelopment #CppDev #MVP #cpp

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

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

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

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

  20. Can somebody point me towards a Myers diff algorithm in a C++ project?

    I am looking for the following data as diff result:

    1. (old) line number
    2. (old) column number
    3. (new) line number
    4. (new) column number.

    Need the above info so I can ask my text editor widget to highlight the line and column as to what was added/deleted.

    Please reboost for reach :)

    #cppdev #programming #myers #diff

  21. Can somebody point me towards a Myers diff algorithm in a C++ project?

    I am looking for the following data as diff result:

    1. (old) line number
    2. (old) column number
    3. (new) line number
    4. (new) column number.

    Need the above info so I can ask my text editor widget to highlight the line and column as to what was added/deleted.

    Please reboost for reach :)

    #cppdev #programming #myers #diff

  22. Can somebody point me towards a Myers diff algorithm in a C++ project?

    I am looking for the following data as diff result:

    1. (old) line number
    2. (old) column number
    3. (new) line number
    4. (new) column number.

    Need the above info so I can ask my text editor widget to highlight the line and column as to what was added/deleted.

    Please reboost for reach :)

    #cppdev #programming #myers #diff

  23. Can somebody point me towards a Myers diff algorithm in a C++ project?

    I am looking for the following data as diff result:

    1. (old) line number
    2. (old) column number
    3. (new) line number
    4. (new) column number.

    Need the above info so I can ask my text editor widget to highlight the line and column as to what was added/deleted.

    Please reboost for reach :)

    #cppdev #programming #myers #diff

  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. I am loving C++17 feature set. It has so many niceties available in std which makes it easy to focus on my product rather than dealing with trivial things.

    #cpp17 #cppdev #programming

  29. I am loving C++17 feature set. It has so many niceties available in std which makes it easy to focus on my product rather than dealing with trivial things.

    #cpp17 #cppdev #programming

  30. I am loving C++17 feature set. It has so many niceties available in std which makes it easy to focus on my product rather than dealing with trivial things.

    #cpp17 #cppdev #programming

  31. I am loving C++17 feature set. It has so many niceties available in std which makes it easy to focus on my product rather than dealing with trivial things.

    #cpp17 #cppdev #programming