Started 2 years ago (2017-08-12T05:00:00Z). Goes forever.
As engineers, many of us spend time at work doing the mental equivalent of menial labour.
Do something fun daily. Write a 6502 emulator. Work on your weird game idea. Write an introduction to Prolog. Make a 4k intro.
Last weekend, I started a project about a continous integracion (CI) server that you can run on a Raspberry Pi, actually my Raspberry Pi 2 B. I installed a Gitea on it and started to code.
Working on it everyday. It has a task runner script (like Make/Rake, but with YAML files and written on Python) and its own web interface to configure and connect using webhooks to Gitea.
My goal is to write code at least 1 hour per day, and deadline is next sunday (3 days to finish!)
Added portuguese districts in the database.
Replaced multiple data mocks with real database data.
Implemented logic to fetch and create the main database models.
Fixed problem where I was loading multiple forms in the lapis initialization, instead of loading it in the request, which would make database calls and slow down every request.
Changed the register_organization controller to register a organization instead of a user and then write the session of the organization owner.
Added data correction if the organization fails to create after the organization user is already generated.
Updated the data constrains in the organization database table.
Added data to the database using the migration system.
Added new helper function for map.
Fixed sessions last details, now sessions are working as expected.
Implemented logout endpoint , logic and triggered the logout by clicking the leave option in the ui menu.
Limited display of the round user icon if the user is not logged.
Created models for the category and skill database tables.
So today I were working on a python + django platform.
I made some bigger architectural changes some months ago and then stopped working in the platform until last week, so right now I don't really remember what was already changed or what was still broken.
So today I passed my coding time implementing unit tests for the multiple application endpoints and fixing some non working code.
So yesterday I implemented a salt for my users, but I was using bcrypt algorithm which already has an internal salt, so it was not needed =D . So today I removed the salt.
Created a lua lib to strip the non-ascii characters from strings - github and luarocks.
Implemented sessions in the platform im building. Now im finishing the user login.
I was thinking the need of a salt, and how to implement it in order to protect the users password in the case of a leak. A friend sent me this link - Salt Implementation
It was a very nice read, tomorrow I will try to start it's implementation in my lapis user model.
I read about the haskell language having tons of really cool features, so I decided to take a bit and look at them. So the end of my day were checking haskell tutorials and testing the language base concepts.
Haskell tutorial I followed
It's really nice, some concepts really unlike the stuff I usually use. In the future I may try to implement something with it to check how the program behaves.
Would like to also try Rust programming, looks fun too. :D
Today I made just little changes, I added logging to errors detected by the validation in my forms, which uses the lapis validation.
Since lapis already gives me all the feedback about the invalid fields, it was really simple to make :) . Lapis is very nice.
Added input component.
Added delay for multiple clicks in the same input.
Added initialization of the mines across the map.
Research solution for communication between systems, and triggering of actions like checking some condition to validate the end of the game when a block mine is clicked.
Today I created systems to render the minesweeper map blocks and detect the clicking in them.
I created the main components Block, Rect and Point.
Generated an entity called map_block to hold the 3 components.
This allows me already to have all the map rendering and triggering of the input state changes for each of the blocks.
The ECS is being a nice experiment, I can apply the logic in a more focused way to the components, which allows me to have an easier time when splitting responsibilities in the code.
I'm still checking out how to make interaction between multiple entities, lets see how it goes tomorrow.