fulmicotton

100DaystoOffload

If you want to learn something, you need to be able to explain it, to everyone, in simple words so that they can understand, regardless of their cultural and technical background.

Teaching something, with simple terms, requires knowing it at its deepest meaning. Taking such step is important to go from just knowing something to being confident about it.

To fully do it, you need to explain it to someone who has absolutely no clue about the subject. If you cannot transmit your knowledge to a young student or your grandma it means you cannot synthesize what you know into simple, understandable statements.

Take it as a mental game first

Picture yourself while explaining something you want to learn to a virtual group of students, or a friend. They don't have a clue on what you're going to tell them. You explain them everything from ground up, with words that are as simple as possible.

This is much more than a mental exercise: it forces you to organize your knowledge into small bits of information, externalize it using words, and then rephrasing and refreshing concepts that would otherwise be static and inevitably settled in your mind.

There are also benefits doing that. Picturing yourself in front of a virtual audience will train you to explain your stuff and points of view to a real audience – be it your boss, a friend of yours or an entire classroom. And of course, if you're not comfortable with the virtual classroom – or have no real person who wants to listen to you – you can write an essay instead as an exercise. Maybe you can even start a blog, if you love sharing your stuff like I do.

The more you learn to transmit informations efficiently, the better you will assimilate that knowledge.


As I told you, I will not follow the #100DaystoOffload challenge anymore. I will only post stuff as long as it is ready and well-baked. This is my new challenge: to share content I really like.

You can find me on Mastodon here.

This is maybe because I've always had a slow internet connection, or probably it's just something related to my cronic lazyness, but I've never been a fan of self-hosted cloud. I have nothing on any kind of cloud, and I don't use remote calendars, agendas, file storage – not even mentioning cloud services from big corporations such as Google Drive, One Drive, or MEGA (which was seized by the New Zealand's government in the past) – but I don't feel like I'm missing anything in my work and study day.

I, instead, use a simple tool to effectively synchronize some crucial folders between my machines, only when I need it, through LAN or internet: the tool in question is syncthing.

Syncthing is a program which allows you to create and manage nodes (each machine is a node) that can connect, interact and synchronize files organized in folders. When I said this is simple, I meant that only the following steps are required to have a completely working node of your network:

  1. install if from your repository or download the Windows executable;

  2. launch it (on Linux it is as simple as running the command syncthing)

And that's it! You now have a perfectly working node of your network.

Just create a different node in another machine of yours and run it – which can be accomplished in the same way – and then connect them with the help of the graphical interface. A local browser webpage should automatically open allowing customization (address should be 127.0.0.1 on port 8384) This is simple, too: copy your machine's syncthing ID (a long alphanumeric code) and paste it to the other machine. A request to create a connection between nodes should arrive.

Connection done, we can now add folders to the mix. After adding some folders, syncthing will quickly analyze them. You now can sync them with any other node in the network, by ticking a single box in the menus. Suddenly, a sync request appears. Accepting it, synchronization happens and every file in the folder will be securely transferred into the other node's folder and kept synchronized as long as syncthing is running on both machines. This works both on LAN and across the internet for remote devices.

You can shut it down when you're done. When you need it, just launch it on the nodes you wish to sync, and it will automatically start sending/receiving new files.

This is everything you need to get syncthing work. I really like it for its simplicity, it just runs and syncs files correctly, and allows me to safely share my working folders between my computers. I have no particular setup or configuration to show you – because it's so simple it just works with no further customization and I keep it almost default on my Linux and Android machines.


Post 12 of a 100 series, namely #100DaystoOffload challenge.

This one is my Mastodon's profile.

Three days ago I was watching some YouTube videos, when suddenly a vivid realization manifested in my mind: every single human being on Earth is living a life as intense as mine, as complex as mine, and as strange as mine. We live a life so fast and intricated we barely have enough time to realize we aren't alone in our travel – but surrounded by hundreds, thousands, millions, billions of people who can act, see, smell, touch, do things just like us. Other people will reach their goals like us, will fail like us, act silly like us, love like us, and experience all the range of emotions we feel, getting bored included. This was a bit mindblowing to me: such a simple though was so fundamental and 'obvious', I had never explored it in its totality.

This powerful sensation is called sonder!

A quick research on the internet revealed I'm not the only one who had such an epiphany: according to Urban Dictionary, the word sonder means

Briefly, “the realization that each random passerby is living a life as vivid and complex as your own.” Originally from the Dictionary of Obscure Sorrows, which has a lot more beautiful neologism definitions like this you might enjoy.

and many people experienced it around the world.

Sonder is the uttermost and complete realization we are not alone, a thing we often forget believing we are the main, unique characters of our own life. Remembering this feeling can help us approaching other people and treating them well – because they're just like us.

I know sometimes things aren't easy, neither we live in an ideal world where everyone doesn't hurt others. Yet sometimes, before approaching someone, just remember he's a human like you are, who has his own complex passions, his own goals and desires, and he's vividly experiencing many failures and flops. Just try to be kind to him/her.

And when arguing with another person, maybe something is wrong with him, and he lacks something important in his life. Just remember you could have been in his or her place.


This post was the eleventh of a hundred, for the #100DaystoOffload (it's a challenge where you write about cool stuff for 100 days).

I've a Mastodon account here. Write me there if you want to reach me.

My family problems aren't solved, and those deep troubles caused me to inevitably fail the exam I was planning to pass. The situation itself has been happening for months and is causing me anxiety disorders, mild depression and mental fatigue, while suffering by periodic nervous breakdowns, which summed up they costed me the remaining energy. I can barely stand this, with the help of my sweet girlfriend (I wholeheartedly say I could have never met a better person).

I won't reveal much details here in public, I can only say I have some family issues that prevented me studying and doing my stuff full-time and with my mind focussed on work.


Now, I'm here again. I am deeply sorry I complained here, probably not many of you wanted to read this kind of thoughts and confessions on a blog, but I felt the need to just speak about this.

Starting from tomorrow, I will keep on posting stuff here and write about things I love – at least I'm doing something I like really much.

Since I couldn't pass the exam, I will also post some of its topics and things I found curious about what I am currently studying.


This was #10 of #100DaystoOffload challenge, a challenge where you write at least a hundred posts in a year.

My Mastodon's profile if you want to contact me.

Approaching Day 10 of #100DaystoOffload, I am forced to pause a bit my writing activity. I am currently focusing on an important exam, which involves analysis and design of complex Digital and Analog Circuits. Along with the exam, many family issues and complications arose today. For at least the subsequent 10 to 15 days I will not post anything.

I will resume my activity after I will have taken the exam and solved my familiar problems.


Writing is both a relaxing and funny activity – it lets you to freely express yourself, your ideas, and forces you to put yourself at a stake. It encourages you to share your ideas with the world, to improve your expressive skills, to push yourself to new boundaries and discover new ideas by getting in touch with other people. But don't blog for other people – do it for yourself first; only then, and after you're really happy and fulfilled with what you're doing, plan to write for people.

Writing is a fantastic activity, and I wouldn't want to stop it. But after all, my blog is merely a hobby, and it comes after the real challenges life presents you with.


“And once the storm is over, you won’t remember how you made it through, how you managed to survive. You won’t even be sure, whether the storm is really over. But one thing is certain. When you come out of the storm, you won’t be the same person who walked in. That’s what this storm’s all about.”Haruki Murakami, Kafka on the Shore

In my previous post I've spoken about my note-taking system, which strives to be minimalistic, simple, funny and (hopefully) functional.

To write on it, I use Neovim. Neovim is a reborn Vim editor which is fully compatible with its parent. This means all the guides for Neovim and Vim will be almost certainly compatible, as well as the hotkeys.

This post will not cover Neovim basic hotkeys, nor will talk about how to build your own .vimrc. Instead, I will focus on the plugins I use for my notes system.

Vimwiki

I use vimwiki/vimwiki (github page) to transform my plain-text/markdown note into a powerful Wiki system. It will automatically do the syntaxing for those lines where the cursor is not present, and enable many useful things such as “diaries” for your notes, perform search, follow links, and many many other stuff. If you write in markdown, links are made this way, [Note description](/CUSTOM/PATH/another-note-to-link.md). To open it, put your cursor on the link and press Enter. Another tab with the note you clicked on will be opened. You can put there web URLs as well, they will be opened with your default browser by pressing Enter. This is the same as pressing gg to follow a path with Vim, and gx to open that path with an eXternal resource (such as a browser to open an URL).

I use kind of 2% of Vimwiki features, because that's all I need, and I don't want my system to be too complex or too feature-rich. That said, I often look for new, unexpected features. Vimwiki is a powerful Vim plugin, and I'm discovering new things each time I read the manual page at :help vimwiki.

Ctrlp

I really like what ctrlpvim/ctrlp.vim does. By pressing CTRL+P you open a fuzzy-finder that lets you open another file by searching its name on the list, then pressing Enter. That's it, it's all it does, with the exception of a few commands to improve your search experience. I use it to quickly find notes inside a neovim buffer.

Vim-figlet

Never heard of figlet? It's a command-line tool to create ASCII-text from text.

For example, with figlet "I Love Notes" you will get the following output

 ___   _                     _   _       _            
|_ _| | |    _____   _____  | \ | | ___ | |_ ___  ___ 
 | |  | |   / _ \ \ / / _ \ |  \| |/ _ \| __/ _ \/ __|
 | |  | |__| (_) \ V /  __/ | |\  | (_) | ||  __/\__ \
|___| |_____\___/ \_/ \___| |_| \_|\___/ \__\___||___/
                                                      

How is this related to notes?

Well, I use it to beautify a little my notes with cool titles on top of them.

After installing figlet as a requirement, I installed the fadein/vim-figlet plugin. To get an awesome title, this is what I do.

On the top of a note, I write

    ```
Awesome Title
    ```

and hover my cursor above the title. Then I simply run :FIGlet and the text over my cursor will be transformed in a big ASCII title!

The three accents ` which toggle code-snippets mode are necessary, otherwise your big ASCII title will see syntax highlighting applied on itself, which is not what we truly want.

If you don't like the ASCII font in use, you can try different flavours with :FIGlet -f <font_name>, I extensively use :FIGlet -f small because I find it elegant and not too space consuming.

The result will be like

    ```
   _                                 _____ _ _   _     
  /_\__ __ _____ ___ ___ _ __  ___  |_   _(_) |_| |___ 
 / _ \ V  V / -_|_-</ _ \ '  \/ -_)   | | | |  _| / -_)
/_/ \_\_/\_/\___/__/\___/_|_|_\___|   |_| |_|\__|_\___|
    ```

# Insert small title
Let's write the note now!
[...]

Vim-Airline

If the previous plugin wasn't really necessary, neither is this one. vim-airline/vim-airline and vim-airline/vim-airline-themes will just make your Vim/Neovim cooler, showing a cooler status-bar and a cooler tab-bar. What I really like of this plugin (apart from the appearance) is that it clearly shows open tabs and open buffers. I also add set noshowmode (Airline will handle it by itself) and a bunch of configurations:

        let g:airline_powerline_fonts = 1
        let g:airline#extensions#tabline#enabled = 1
        let g:airline#extensions#tabline#show_tabs = 1
        let g:airline#extensions#tabline#show_tab_count = 1

The first one, of course, will be supported only if you have powerline fonts installed.

A last (but optional) configuration is to select your default Airline theme, if it can't match the theme you're using.

Future improvements

I'm testing fzf for Vim, which is junegunn/fzf.vim. This plugin will quite surely improve my workflow and let me waste less time jumping from file to file.

I'm also testing Goyo+Limelight, from the same author as well. Those plugins aim to make your experience even more minimalistic and distractionless by hiding everything but text!

I'll make further articles about these plugins and other stuff I use to take notes.


This is post #8 of #100DaystoOffload challenge. My mastodon profile: @marcosg@fosstodon.org

This is post #7 of #100DaystoOffload challenge.

I'm an always-curious person, who can hardly focus on one thing at a time. When something does not inspire me or seems too tedious, I will struggle to work on it. This is why my personal note-taking system I ended up with has those simple requirements:

  • has to be easy to implement;
  • must require a little amount of time for organization of things, folders, and whatsoever – it has to be minimalistic and simple;
  • has to be method-agnostic, should be ultimately flexible;
  • and definitely has to be funny and stimulating.

My basic “ingredients” for this are just:

  • a computer, because on a today's computer you can create how many notes you want without consuming physical space. I use Linux;
  • a text-editor to edit notes in a language that allows you to create links between notes and follow them. I use neovim with vimwiki/vimwiki plugin and markdown for the quick syntax. Together they allow to create and follow a link just by pressing Enter;
  • a tool to quickly find filenames and note titles on your system. I use fzf;
  • a tool to search for file contents of your notes. I use ripgrep.

When you've chosen your tools that allow to perform these simple tasks when needed, you're ready to go.

My notes system works like this: each time you need a new note for a new subject or topic you create a different file (I use markdown, so for Operational Amplifiers topic I would go for something like operational-amplifiers.md) and write about that subject inside it with the text editor you've chosen. Plain simple. When you write about a topic, you probably will need to talk about other related topics. Those are handled just like a Wiki, you link them when required directly in the text, pointing to the other note files you wish.

For example, in your operational-amplifier.md file you need to know about BJTs; so you create another file bipolar-junction-transistors.md and write about them. You will then create a link somewhere in operational-amplifiers.md which requires knowledge of BJTs (in markdown this is [BJT](/CUSTOM/PATH/bipolar-junction-transistors.md). Of course, not only BJTs exist in electronics, therefore many other links pointing to other pages of knowledge will exists. Recursively, each of them may require further knowledge, to accomplish through linking other notes. This will end when you're satisfied with the result. The method can scale pretty well, and I used it to efficiently pass my previous exam about UML and C++.

I also found very useful to create my own “homepage”. I called it index.md because it's a kind of an index for my notes. There I throw all the links to my major topics, for example music.md, linux.md, university.md, programming.md, sysadmin.md, books.md, movies.md and the list goes on. These ones are very vast topics so they became pages as well, pointing to actual notes.

When I want to find notes I use one of these 3 methods: 1. I know where they are inside my system, so I just open index.md and follow the links; 2. I know their title, so I just use fzf to find and open them in neovim; 3. I use ripgrep and run rg <search_string> <folder> to find content inside notes, and figure out which one I should open.

All these methods take seconds at most, and this is the reason why I prefer this system: I don't have to spend a significant amount of time organizing notes into folders and multiple sub-folders if I can almost immediately find them with those tools, no matter where they are.

Linking to media files such as PDFs or websites is optional, and markdown+vimwiki supports it with the same syntax you use to link between notes.

Notice that this system is entirely flexible: if you don't want to organize things in small notes linking each other, you can always go for long texts inside a single note and link less pieces of information, or just implement different styles for different subjects. It's your choice to stick with a single method or use different styles.

Inside the single note you can use whatever style you prefer. For example, you can implement a Cornell Notes style or simply build your notes in a linear way, outlining your content.

/CUSTOM/PATH/ of your notes is up to you. I ended up with the most simple of choices: all notes inside a single folder. I can still easily reach them with fzf or ripgrep. If you feel uncomfortable with throwing all of your notes into a single folder, you can put them in folders and sub-folders, this is your choice. The most important thing is to find your balance, not wasting too much time into planning and organizing, and spending most of your time doing actual stuff.

In my next articles I will talk about my setup for this and some small goodies for this system.

Post #6 of #100DaystoOffload challenge

Today I wanted to try out this platform, wordsmith.social, and move here from bearblog.dev

Wordsmith is a micro-blogging platform which supports the ActivityPub protocol. This means this is an instance of the fediverse that can directly interact with Mastodon and the other fediverse platforms.

Bearblog was cool, and honestly I only wanted to try out this other one. Compared to Bearblog, it offers an even more minimal approach, it directly invites you to create a post, and start writing. It doesn't offer pages, nor distractions. Home page by default is simply your content in order of publication date. You can focus on pure writing.

I also want to stop with the Italian translation of all articles. I'm sorry, Italian readers (if any of you ever existed in the first place), but I realized it's not worthy to spend twice as much time translating the same piece of information in Italian.

For this reason, I may probably start a different blog in Italian, with different content, and for a different audience. This platform allows me to open other blogs with the same account, and this is a very nice feature.

So, for now I will keep on posting here.

Lingua italiana a fine post Publication date: 29/1/2021

I can't exactly recall the moment the idea pop up in my mind, but I want to start my own blog. I want to write down ideas and thoughts, say something (hopefully) useful, share my vision of the world and the tools I use in my life.

Days ago I stumbled upon the hashtag #100DaysToOffload on Fosstodon. It's a challenge by Kev Quirk where you're invited to start your own blog, and just write a hundred of blog posts in the space of a year. I've never looked kindly on social media challenges or whatsoever, but this time it was something actually cool, and I decided it was a good stimulus to start my own blog. If something went wrong, or for some reason I couldn't write enough and I failed the challenge, well, who cares.

A brief descrption of myself. I am an Electronic Engineering student, with a strong passion for Linux, Programming, technology ethics and privacy. I also studied Music Composition years ago (I had to interrupt it for some reasons that are very long to tell) and I have a strong passion for Cinema (I am not a real cinephile, but I will sometimes suggest movies that left their deep mark on me). I recently started reading books, it's never too late to start doing it. I will talk about and suggest some of them, too.

I also will talk about privacy, and user-respecting tools and software. I firmly believe in Linux, Free Software, user communities and people sharing their work with others and cooperating. There's no person that can achieve great things alone, therefore cooperation and respect are fundamental to our society – software is no exception.

Another passion of mine is visiting places. I don't have much money, so at the moment my girlfriend and I are mainly visiting nearby locations. I live in North-East Italy, therefore I will write about some cool places you can visit when you're there – and good restaurants to eat delicious food. I am no travel guide, so the list will be far from exhaustive.

I will sometimes talk about politics, and personal opinions on what happens in Italy and across the world. Those posts will be limited in number, since I hate politics stuff. If a political post appears on my feed, something very disgraceful happened.

Oh, and of course, I will sometimes translate articles in Italian. This will not happen every time, and I don't promise anything, but I will try to translate them as soon as possible.

Well, this is it for now, and I started my own blog. Let's see where the wind will drag the boat.

Il mio primo post e perché ho creato un blog

Data di prima pubblicazione: 29/1/2021

Non riesco a ricordare esattamente l'istante in cui l'idea mi è saltata in mente, ma voglio creare il mio blog personale. Voglio buttare giù idee e pensieri, scrivere qualcosa (si spera) di utile, e condividere la mia visione del mondo e gli strumenti che uso nel quotidiano.

Giorni fa mi sono imbattuto nell'hashtag #100DaysToOffload su Fosstodon. Si tratta di una challenge ideata da Kev Quirk dove si è invitati a mettere in piedi il proprio blog, e semplicemente scrivere cento post, nell'arco di un anno. Non mi sono mai andate a genio le challenge da social media o giù di lì, però stavolta era qualcosa di davvero interessante, e ho deciso che era il perfetto stimolo per incominciare a scrivere in un blog. Se qualcosa fosse andato storto, o per qualche ragione non avessi potuto scrivere abbastanza e avessi fallito la sfida, beh, chi se ne frega.

Una breve descrizione. Sono uno studente di Ingegneria Elettronica, con una forte passione per Linux, la programmazione, la tecnologia etica e la privacy. Ho anche studiato Composizione musicale anni fa (ho dovuto interromperla per alcune ragioni che sono un po' lunghe da spiegare) e ho una forte passione per il Cinema (non sono un vero cinefilo, ma qualche volta suggerirò film che mi hanno lasciato un segno profondo). Ho recentemente iniziato a leggere, non è mai troppo tardi per incominciare. Parlerò anche di alcuni libri.

Parlerò anche riguardo la privacy, e di strumenti e software che rispettano la privacy dell'utente. Credo fermamente in Linux, nel Software Libero, nelle comunità di utenti e di persone che condividono il lavoro con altri e che cooperano per il meglio. Non c'è persona che può compiere grandi imprese da sola, dunque la cooperazione ed il rispetto sono fondamentali per la nostra società; il software non fa eccezione.

Un'altra mia passione è visitare luoghi. Non ho molto denaro, perciò al momento io e la mia ragazza stiamo visitando posti abbastanza vicini. Vivo nel Nord-Est, perciò scriverò di alcuni posti fighi che si può visitare quandi si è lassù, e qualche buon ristorante. Non sono una guida turistica, perciò la lista sarà tutt'altro che esaustiva.

Parlerò raramente di politica, e di ciò che succede in Italia e in giro per il mondo. Siccome detesto le faccende politiche, questi post saranno in numero limitato. Se un post politico appare nel mio blog, significa che è accaduto qualcosa di deplorevole.

Bene, questo è quanto, e ho appena iniziato il mio blog. Vediamo dove il vento trascinerà la barca.