Sunday, December 22, 2024

Monthly Recap - 2024-11 November

November was a month with a lot of behind-the-scenes work. While I did release the first version of a new project and finished the study of a book, most of what I did was the kind of inglorious, but very much needed, work that does not generate big headlights when it is finished. Nevertheless, I am quite glad of all I did this month.


Achievements


Work on personal projects

I did some small updates to my existing personal projects. For JenAI, the most current one, I released version 1.7.1, which introduced a third-party library to parse command line options, instead of handling that with custom code. I also used this opportunity to add unit tests for all supported command line options so far, before making the change. As Michael Feathers says in Working Effectively With Legacy Code, "Cover and Modify".

Other than that, I added a CONTRIBUTING.md file with guidelines for contribution to all my currently maintained personal projects (example). While the guidelines themselves are very simple, and I am only accepting very specific types of contributions, I like the idea of making them very clear and explicit in the repository. This is a further step towards adhering more formally to open source practices, beyond adding an open source license (all my projects are released under MIT license). Hopefully I will be able to continue adhering more and more, as I plan to get more involved with the community both in my daily job and in my personal projects.


Chargen

Chargen is an open source desktop application to generate fantasy character avatars and biographies, based on basic info and attribute points. It is the project I picked up after finishing the initial scope for JenAI, and a part of my First Steps Into AI Engineering roadmap. I have written a blog post about it, Project: Chargen. In November, I released the initial version, 1.0.0, which covers the basic functionality: after the user inputs infos such as name, class, alignment, etc. and attribute scores for a character, the application allows the generation of an avatar and a biography for it, using local generative AI models. It uses an LLM model with an OpenAI API-compatible server and a Stable Diffusion model.


Finished studying Working Effectively With Legacy Code book

This month I finished the study of the book Working Effectively With Legacy Code, in the context of my personal studies habit. I had been studying it for almost half a year, as it is a large book and I had some pretty busy times along the last months. I read it both by myself, in my personal studies, and with my colleagues at work, in a book club format. Despite the book being quite old by now (it is from the early 2000s), it was a very productive read, and I learned several techniques and names for techniques I already knew. I probably won't be writing a review for this one since the content is so technical and dense. Overall, it is a book I can highly recommend to any software developer who cares about their craft, regardless of ever working with legacy code.


Plans for next month

I am writing this recap already deep into December, so it does not make much sense to talk about plans for it. However, here are some general lines of work that I intended to follow as I wrapped up November.


Finish Chargen

Just as it was with JenAI, the initial version of Chargen is functional, but not particularly amazing. There are several aspects of it I want to improve. 

I want to use streaming text to generate biographies instead of blocking the application until the text is complete (leveraging what I learned by implementing streaming responses feature on JenAI). I also want to group the form where the user enters the information about the character, to make it stand out more in the UI and be clearer that this is where the user is expected to fill out the fields. And finally I want to do some minor enhancements on both the functionality (adding checks and validation to guarantee all fields are filled before trying to create anything) and the code quality (adding more unit tests, refactoring, moving things around into a better architecture, etc.). 

I expect to finish all I want to do in Chargen during December, so that next year I will be free to work on other projects that I already have lined up.


Finish hobby book

I expect to finish the study of the book Brave New Words in December. This is a book by Sal Khan (founder of Khan Academy) about the impact that GenAI will have (and is already having) in our society, with a slight focus on education. I am enjoying it greatly so far, as it is an insightful book about a topic I am following with great interest. If all goes to plan, I should finish it in the last week of December, and pick a new one in early 2025.


No comments:

Post a Comment

Monthly Recap - 2025-07 - July

July was completely a vacation month. I took a month off of work before switching areas inside the company, and used this opportunity to als...