Table of contents
I believe in learning by doing, so when I started studying python I immediately started my first project, E.V.A., Elementary Virtual Assistant.
Once upon a time
At first it was a while = True loop, waiting for a terminal input, I could ask for the time - yes, very useful - and the weather of the day.
After the lesson on reading files, I added the possibility to save notes in a text file, to print them in the terminal and to make them removable.
I then moved on to a graphical interface that used system notifications to give information on incoming birthdays, on emails, on weather notifications, with an internal address book that gave me the possibility to search for information on contacts.
I enjoyed doing all of this and laid the groundwork for the new version I'm working on, rewritten from scratch like many of the previous ones. Now the "V." it no longer means only "virtual" but also "vocal" - a voice assistant, a pioneering idea .
Per aspera ad astra
I don't want to reinvent the wheel, there are several open source solutions - the first link I found - commercial and non-commercial, made by people much more competent than me, in some cases with teams numerically capable of providing assistance and proposing realistic roadmaps.
My goal, in addition to learning and having fun, is to create software for me, in Italian, that runs locally, capable of performing speech-to-text and text-to-speech steps offline. This is due both to an issue of independence from an internet connection, and to a question of data ownership, which I would like to keep as centralized as possible in the device.
Everything will run in a raspberry, a pretty common solution.
I'm taking some time to organize the work, create the project on Trello and study the details necessary to build the backbone of the project, but I am already looking forward to working on the various skills.
The most challenging thing will be the organization, I will have to be able to devote myself to the project consistently.
I am defining the milestone, I identify the features that will be present and the steps necessary to implement them. Then I divide everything into short tasks, to make them workable as much as possible in reduced time slots.
Each completed task must add a stable piece, from which to start for the new integrations.
As I wrote above I use Trello for organization, I don't master the Kanban methodology, but as far as I know I find it flexible to manage single-player projects.
- I limit the tasks in progress to two, I try not to do it but I allow myself the possibility of working on two tasks in parallel, to be able to break when I get stuck on something.
- Not having sprint I can flexibly manage the priorities of the tasks in the backlog.
- I don't set deadlines on tasks, I still want it to be fun.
However it goes, it will be a success
I reorganize my ideas a bit and put down a realistic work schedule. I hope to have some news to tell soon.
In the meantime, thanks for reading this far, see you next time.