2022 Recap
2022-12-19
Present GraphQL Migration Knowledge Transfer
#[presentation, graphql]
The purpose of the KT meeting is to transfer my work on GraphQL Migration to hand it over as my coop term is ending.
Therefore, the meeting should cover the implementation and testing.
To explain the implementation, I need to first convey the architecture of the two GraphQL services. This can be done using a whiteboard flow diagram. Secondly, the list of the difference we need to implement. Third, categorize the tickets by implementation difficulty. Fourth, express my personal opinion on some unhandled patterns.
I can use Figma to draft the flow diagram. Done. Comparing the module structures between the code. Comparing Batch and Dataloader.
The list of difference we need to implement.
Categories: Implement a field and its arguments. Implement a type.
Unhandled Patterns: The argument first. Current season. Filter by association’s field. Order in SQL vs sort in Elixir. Schedule.
Eventually the KT lasts 100 minutes. And I took another 40min to refine the Figma Slides.
One lesson learned from this KT meeting is that it take too long to complete. So next time, stop when I feel uncomfortable and schedule some time later.
So tomorrow, I need to present a general end of term KT meeting, which will be more of a kind of conclusion to this term’s work. I think I need to limit the time to 30 minutes.
In general, ticket number, explain the ticket, the steps of my work, the result of my work, any transferable skills learnt.
- Log the operation_name of the persisted queries.
- Combine the log lines from queries.
- Address the TODO comments in Live.
- GraphQL migration.
2022-12-28
Rust discord bot
#[project, rust, discord bot]
On my journey to learn rust, I have finished half of the book “Programming Rust”. I found myself more and more used to the language by doing the exercises on . However, I think I can only manage the language at an intermediate level if I can work with public libraries. One interesting project idea that I came across is “discord bot”. In my opinion, it is a widely-used and easy-to-use front end. Therefore, it minimizes the front-end work needed in the rust beginner project.
The first step is to actually have some bots in my server to observe their functionalities.
- Translator
2023-01-01
I have finished the book “Programming Rust” async chapter. Now I am going through the examples in the discord bot rust library serenity
.
I have decided on the general purpose of my bot: a running mate.
I want to 1) share my everyday running data with the bot; 2) receive encouragement; 3) keep track of my running records; 4) receive reminders/supervision. So that I can have a mentality like having some running mate.
The first step is to let the bot accept user input and parse the message to extract the data and put those into a storage option (database as it is the easiest method). I am working on this now. I need to choose the user interface: discord interface and message structure. Then I need to choose the storage option: file vs database. Eventually I want to provide options to store the data in a user specified cloud as well.
For the interface, my current thinking is I want to support two method:
- A slash command that accepts a list of keywords and let the user provide the values
- An @bot message that contains the data, the bot need to identify and extract the data, we can live with some ambiguity (if that is necessary), but ambiguity should come with confirmation.
For the storage option, I think a database is the easiest option: 1) host on cloud & migration; 2) security; 3) concurrency.