The year in review: The year is coming to an end, a year other as all the years before. I had a lot to do and Corona targeted my work slightly, too. On my paid job I did a big migration, right at the start of the year, to a new provider combined with restructuring the 100 virtual machines with 800 services on it. It was planned about 9 months before and a new IT operations documentation was designed by me based on Confluence which now replaces the barely documented old one. But as it always is after the migration it was not done. A lot of jobs are still waiting and we worked on some of them till the end of the year. But it was worth it.
And if I look back at my open source projects it started with polishing my base libraries before I concentrated more on the goal I had since some years, a stable working REST server with GUI client. The server become stable but the GUI got further on but could not really be finished. I got lost within the technologies and invested to few time in understanding it. Also as I saw problems in a simple testing solution which was quickly generated at work I designed an optimized version which will profit from all the modules I already made and use. As written below I could make this new Alinex Checkup to production.
Linux tools: Added an overview of some tools like:
- vi usage and key shortcuts.
- systemd with the most common commands and how to make service scripts.
- screen with a lot of keyboard shortcuts to be used.
- find with some examples.
- Regular Expressions syntax, examples coming later.
Further I plan to add sed and awk, too.
More Environment Tools: To complete the list of tools used in a linux development environment I added:
Update this Site: With the switch to arch I started to update some of this descriptions with additional arch installation. I also started a new section of Linux how-to descriptions under technologies. Both will be extended in an ongoing effort for the next weeks. I will also change my documentation step by step to a dark theme.
Switch my notebook: Every some years I have to switch the notebook to a newer one. And every time the same thoughts, how to do it and which distribution to use? In the last years I used Mint, Kubuntu, KDE Neon but now I will try arch again which I had to decline on a Chakra test 3 years ago. For now I will go with Manjaro 20.2 based on Arch Linux. That is a part rolling realease.
I will also not upgrade, but backup all data and configuration to use later and install a new clean OS and setup all I really need one by one to get the best solution. Read more about installing Manjaro for myself. Each time I try to make it more and more suitable.
Checkup V1.0: Now it is done! The checkup. system stepped up from an initial idea in summer to a working solution in six months. This is a great result in the circumstance that I did it completely on my own and mostly each day a bit in the evening. You can say I coded it on the sofa ;-)
Private Homepage: This was not touched since more than a year so it was really time to update it. That means both, content and technology. It was based on Quasar V0.16 upgraded now upgraded to Quasar V1.14 with a of of component changes. Based on this I had to recreate most pages from the ground up. I also made it multilingual (German and English) based on browser preference. And added more information to it - but it is not finished. See it at alinex.de.
Cent OS Migration: One of my shared host is going out of lifetime with Cent OS 6. The migration takes me some time, but overall it will also be done as always to not copy everything but to reconstruct it and get a better and cleaner structure on the new server. Now I am using Cent OS 7.9, that's not the newest but really good stable and supported till 2024.
Checkup going stable: I am working hard to bring the checkup system to production state (till start of December). Main point is a data storage engine which stores all values in a database to be visualized and analyzed later. Also some more tests, fixes and groups will be added. But the final release will not be the end. More tests, optimizations and new functions are on the roadmap.
Mailserver Migration: I had to make two mail server migrations, once to a newer server and the other to different providers. The problem is not to get the new servers up and running, but to transfer the old mails and setup the new rules correctly. But the most stressful thing are the servers using this mail systems which are often not as configurable as needed and sometimes badly or not documented.
Migration: That's often no easy task and can bring a lot of trouble. I wrote some ground rules for the different levels of migration in software projects. Hope that helps others too. I did not go into special tools because that depends on the type of code. Maybe I will later design an optimal way to be used in my alinex projects which currently miss such support.
Alinex Server reached V1.0: With the full inclusion of checkup module, IP based login and some bug fixes the server now reached the first major version. It should be ready now to use it in production. But as always some bug fixes may follow in the near future. It is used in production as interface to internal databases and should be used for monitoring, soon.
REST Calls: While working on the server I had to often make REST Calls so I found out about the VS Code Plugin which for me is better than Postman or other tools. It is simple but powerful making all REST Calls possible with the use of environments and variables. See the before linked VS Code description in which I added how I use it with an example.
Statistics: As I added statistics to each module I also calculated the overall numbers for the alinex universe. Currently there are 8 active modules with 24111 lines of code and 632 pages of documentation. This shows that there is a lot of work in them.
Documentation Theme: I changed my documentation theme again and updated it from module to module in time. Some doc fixes are also made and statistic, support information was added. The new theme has an abstract dark design with boxes which should make the overall look more modern and a bit futuristic.
Gitlab CI/CD: I had to enhance my knowledge about the possibilities of GitLab, better structure my pipeline and jobs to make it more granular. Find some of it in my enhanced description about GitLab.
Checkup for Enterprise: The checkup system is growing further with more and more features. But the wish list is growing, too 😟 New features implemented are SubTests for Fixes. The great ideas making the system enterprise ready will be: multi-test, automatic group, dependencies, base test, HTML and email output and more and more tests are added. Also it's integration into Alinex Server is worked on. What really needs time are the fixes, which will have to grow while using it. New ideas are coming further in, too.
Checkup Structure: To make it more universal I had to go some steps back and reorganize the calling structure. Therefore a better class based structure with event management was setup. This makes it possible to show progress information and customize the output more. While this changes were integrated a lot of smaller optimizations for cleaner code and simpler calling structure were added. See the Examples showing the checkup system in action called by CLI.
Checkup: Alinex Checkup now works fully with test/fix for three linux tests. Full internationalization is also integrated. It can check CPU, memory, load, services on local or remote linux machines. In the next steps more tests will be added and this module should be integrated into the Alinex Server to run the system checkup and maybe later use the server as frontend to run tests on any system.
Validator Internationalization: As it works great in the new checkup system I am now in the step of switching in the Validator, too. This will need an enhancement in the API and replacing all the calls to text elements. This all should be achieved within the next days and will be released in Version 3.7 soon.<br> Maybe some more minor changes will als be added, too.
Internationalization: Till now I used y18n, a simple internationalization module but was missing support on packages and mainly problematic to get it working on modules. As I see four ways of internationalization: CLI, server, client and module. The CLI will set the language fixed for the whole process. For a web server the language has to change for each request and a module which is added to such webserver should be able to pick the language from the request for it's calls. The client is mainly based to what is best integrated with the framework there.\ Therefore I implemented the CLI and module implementation using i18next for the new checkup module and will integrate it further in other modules like validator and server.
Checkup: This is the new test system which just got the first general working state. The Alinex Checkup is working using API or CLI and has the first two tests including a manual fix to be used. But this is only the start, some more specific functions and a lot more tests and fixes are needed to make it usable. It should later be integrated into the server, too.
Test System: A new test framework is being planned. It should allow also difficult and complex checks together with repair methods in a service oriented framework. It should not replace any monitoring but may be called to assist monitoring and for manual checkups. It is planned to integrate it into the Alinex Server. This will also replace the mocha based Validator checks.
Server Stability: Because I got some pressure to use the server and GUI already now productively I had to change my plans. I did the hardening first, so now I integrated validation, further optimized logging and finished support for an
action.log. Also the use as framework is improved more, because this is the way it is used in production. The new version may be released within the next month.
GUI: The first dialog, user editing, is now working through store with feathers and the REST server using websockets. That's a big milestone for me. Also the first real project (parent project) is now basically working and the development cycle got a bit faster and cleaner.
Multi Format REST Response: Based on the DataStore the ALinex Server got a REST response system in which the format can be specified using accept header with a lot of possibilities from json, csv till excel files.
Upgrade GUI: Upgraded to the next Quasar and Quasar app version.
Alinex Server Productive: It is used at my work as backoffice system for some simple tasks in the moment. This shows that the extension of the base framework for individual use basically works and shows me the problems and optimizations. But the GUI is further under heavy development and may be usable till the end of this month. All in all this are early stages and I don't suggest to use it productively at the moment.
Modular Server and GUI: Making the REST Server modular, to be extended by specific business logic and extension modules. This should allow to develop a core system and use these in specialized projects by adding to it or overwriting some parts.
Mkdocs Material 5: Transition for all modules to the next major version of mkdocs material.
TS GUI Client: I started to try to build a client using quasar with TypeScript. This is a first start of an universal frontend for Alinex Server. But this was not running smoothly, I had often trouble because of incomplete definitions and also had to translate each piece of code while packing together. So I decided to go back and use vanilla JS.
Rest Server Basics: After the server is now running using TypeScript this month is a time for consolidation. The main part is to better understand the control flow and make it visual using logging.
Static books: Beside the HTML a PDF was available since some time but now I had to update it's creation and added also an ePub Version. As always the base HTML Site is the best.
Going to the frontend direction: This month I started to go my way further to the frontend. The earlier developed portal and portal client which was only a initial try should now be rebuild. My plan is to first complete the server with authentication and access right management this month. Then to build a multi device application on top in march...
Validator simplification: Within the code maintenance phase I decided to make the definition of deep structures in validator simpler. To make the definition of complex structures using multiple objects and arrays within each other a new
itemdefinition has been implemented which replaces the previous
items setting. validator
Code maintenance: Good code has to be kept up to date. That means as my first thing this year will be to go over all actively used modules and update them to current standards. In this step I will try to add some smaller additions to give each also a little push forward.