Documentations – Paolo Redaelli https://monodes.com/predaelli A civil engineer with a longlife fondness for Software Libero Tue, 17 Jun 2025 21:52:31 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.2 91795679 Farewell, spacevim, welcome lazyvim https://monodes.com/predaelli/2025/06/17/farewell-spacevim-welcome-lazyvim/ https://monodes.com/predaelli/2025/06/17/farewell-spacevim-welcome-lazyvim/#respond Tue, 17 Jun 2025 21:52:27 +0000 https://monodes.com/predaelli/?p=13593 Today I wanted to add dart support to my spacevim setup, so I opened https://spacevim.org/. What a surprise, I got redirected to https://wsdjeg.net/why-spacevim-is-archived/ that stated

SpaceVim 这一项目起源于 2016 年 12 月份,于 2025 年 2 月 21 日停止维护。

Thanks to Firefox automatic translation I read that

The SpaceVim project originated in December 2016 and was discontinued on February 21, 2025.

Needless to say I was a little mithered. Luckily there are several other “(neo)vim distribition” that turn our beloved editor into a full-fledged IDE. Since I have been told by my fellows of PoUL that even LunarVim is not so healthy I followed their suggestion installing lazyvim.org which is NeoVim-specific but worked out-of-the-box. Well, almost. In fact its dart support require a fairly recent version of NeoVim (0.10+) and I discovered after a while that I was running a not so current release (0.9). After adding flutter/dart support following this Reddit comment, it worked like a breeeze.

Here’s the small required additions:

You can add in plugins folder, But I have created a file in lua/plugins/extras/lang/flutter.lua

flutter.lua

return {
  {
    "akinsho/flutter-tools.nvim",
    dependencies = { "nvim-lua/plenary.nvim" },
    config = function()
      require("flutter-tools").setup{}
    end,
  },
}

and loading by adding in spec in lua/config/lazy.lua

  spec = {
    ....
    { import = "plugins.extras.lang.flutter" },
Thanks to mraza08 (from Reddit)

Well, “of course” I should have managed the configuration as a git repository, but well, I’ll do it later…

]]>
https://monodes.com/predaelli/2025/06/17/farewell-spacevim-welcome-lazyvim/feed/ 0 13593
Convertire documenti (con Python ma non solo) https://monodes.com/predaelli/2025/06/02/convertire-documenti-con-python-ma-non-solo/ https://monodes.com/predaelli/2025/06/02/convertire-documenti-con-python-ma-non-solo/#respond Mon, 02 Jun 2025 15:54:17 +0000 https://monodes.com/predaelli/?p=13492 Molto apprezzabile e sintetico Convertire documenti con Python di Magnetismo.

]]>
https://monodes.com/predaelli/2025/06/02/convertire-documenti-con-python-ma-non-solo/feed/ 0 13492
The fastest USB https://monodes.com/predaelli/2025/06/01/the-fastest-usb/ https://monodes.com/predaelli/2025/06/01/the-fastest-usb/#respond Sun, 01 Jun 2025 11:05:03 +0000 https://monodes.com/predaelli/2025/06/01/the-fastest-usb/ The fastest USB key are not normal memory sticks but SD cards of a decent class with an USB-C 3.1 adapter

This is the suggestion from Davide Depau, found running several benchmarks with EtchDroid

SD cards are made to put them in cameras and it’s not uncommon to get 300 MB/s write even with a phone.

The slower ones do 100 MB/s on average

Whereas I haven’t found a way to get consistently fast USB sticks. The more expensive ones are generally better but not always. On average, flash drives do not do more than 70 MB/s and after a while they drop even slower when they run out of cache. So do SD cards, but they generally have bigger caches and hardly fill it up with the ISO of arch

Also, in the last 10 years I have noticed (empirically) a substantial improvement in the durability of SD cards. 10 years ago half of even branded SD cards would die on me, now even the ones from the fucking sub-brand on Amazon are OK

]]>
https://monodes.com/predaelli/2025/06/01/the-fastest-usb/feed/ 0 13481
Drop Caps | CSS-Tricks https://monodes.com/predaelli/2025/05/21/drop-caps-css-tricks/ https://monodes.com/predaelli/2025/05/21/drop-caps-css-tricks/#respond Wed, 21 May 2025 16:04:48 +0000 https://monodes.com/predaelli/?p=13395 Drop Caps | CSS-Tricks

]]>
https://monodes.com/predaelli/2025/05/21/drop-caps-css-tricks/feed/ 0 13395
https://monodes.com/predaelli/2025/05/20/13380/ https://monodes.com/predaelli/2025/05/20/13380/#respond Tue, 20 May 2025 18:42:00 +0000 https://monodes.com/predaelli/?p=13380

Those who don’t understand Unix are condemned to reinvent it, poorly.

Henry Spencer, in Introducing Regular Expressions (2012) by Michael Fitzgerald, via wikiquote entry on Unix
]]>
https://monodes.com/predaelli/2025/05/20/13380/feed/ 0 13380
Saturating the name-space https://monodes.com/predaelli/2025/05/16/saturating-the-name-space/ https://monodes.com/predaelli/2025/05/16/saturating-the-name-space/#respond Fri, 16 May 2025 16:02:40 +0000 https://monodes.com/predaelli/?p=13371 We are saturating the name space for programming languages. These days I discovered the Odin Programming Language “”The Data-Oriented Language for Sane Software Development.According to its FAQs there are some things we may learn for Eiffel.

Its guiding principles are

  • Simplicity and readability
  • Minimal: there ought to be one way to write something
  • Striving for orthogonality
  • Programs are about transforming data into other forms of data
    • Code is about expressing algorithms—not the type system
  • There is embedded knowledge and wisdom in older programming languages
  • The entire language specification should be possible to be memorized by a mere mortal

Its featre are features (in no particular order):

  • Full UTF-8 Support
  • Custom allocators that are simple to use:
    • Memory arenas/regions, pools, stacks, etc. which can be easily added
  • Context system for allocations, logging, and thread data
  • Built-in types and procedures that take advantage of the context system:
    • new(type), and make use the context’s allocator (unless explicitly given)
    • Dynamic arrays and hash maps ([dynamic]int and map[string]int)
  • Array programming
    • a, b: [4]f32; c := a * b
    • i := a.x * b.y
    • v := swizzle(a, 1, 2, 0)
  • Explicit procedure overloading
  • Introspection on all types
  • High control over memory layout
    • Alignment
    • Field offsets
    • Endianness
    • Data sizes
  • Endian specific integer types (useful for specific data formats)
    • u32le
    • u64be
  • Decent package system and file handling
  • No bad preprocessor
  • Type inference
    • x: int = 1
    • x := 1 // x is deduced to be an int
  • using
    • making everything a namespace (similar to Pascal’s with but on steroids)
    • Ability to have subtype polymorphism
  • Multiple return values
  • Clean, consistent, and fast to parse syntax
  • No need for procedure prototypes
  • defer statements
    • defer a statement until the end of scope (akin to D’s scope(exit))
  • Nested procedures and types
  • Tagged unions and untagged unions
  • Ranged for loops
  • Labelled branches
    • break label_name
  • break by default in switch statements
    • Explicit fallthrough
  • “Raw” strings
    • x := `what "the" string?`
  • cstring for legacy use
  • Parametric polymorphism (“generics”)
  • Foreign system
  • Compile time when statements
  • Bounds checking which is togglable at the statement level:
    • #no_bounds_check #bounds_check
  • i128 and u128 support

And lots more!

]]>
https://monodes.com/predaelli/2025/05/16/saturating-the-name-space/feed/ 0 13371
Camminare per dimagrire: 9 segreti per bruciare davvero i grassi https://monodes.com/predaelli/2025/04/12/camminare-per-dimagrire-9-segreti-per-bruciare-davvero-i-grassi/ https://monodes.com/predaelli/2025/04/12/camminare-per-dimagrire-9-segreti-per-bruciare-davvero-i-grassi/#respond Fri, 11 Apr 2025 22:04:57 +0000 https://monodes.com/predaelli/?p=13085

Camminare per dimagrire: 9 segreti per bruciare davvero i grassi

Camminare è il miglior modo per dimagrire, ma occorre rispettare alcune regole: 9 consigli per bruciare davvero i grassi senza soffrire.

]]>
https://monodes.com/predaelli/2025/04/12/camminare-per-dimagrire-9-segreti-per-bruciare-davvero-i-grassi/feed/ 0 13085
Telegram emoji list with codes and descriptions – K3A https://monodes.com/predaelli/2025/03/26/telegram-emoji-list-with-codes-and-descriptions-k3a/ https://monodes.com/predaelli/2025/03/26/telegram-emoji-list-with-codes-and-descriptions-k3a/#respond Wed, 26 Mar 2025 15:22:46 +0000 https://monodes.com/predaelli/?p=12998

After almost 2 years of using Telegram, I finally discovered that it is possible to enter emoji using its name after “:” character. Unfortunately I couldn’t find any complete list of available emojis anywhere, so I had to dig deep into the Telegram desktop source code to generate it. It was far more complicated than

Code changes and relevant files are available in this repo: https://github.com/k3a/telegram-emoji-list.

Source: Telegram emoji list with codes and descriptions – K3A

]]>
https://monodes.com/predaelli/2025/03/26/telegram-emoji-list-with-codes-and-descriptions-k3a/feed/ 0 12998
Flutter resources: https://monodes.com/predaelli/2025/03/14/flutter-resources/ https://monodes.com/predaelli/2025/03/14/flutter-resources/#respond Fri, 14 Mar 2025 15:39:00 +0000 https://monodes.com/predaelli/?p=12963 Flutter resources:

  • Wonderous (web demo, App Store, Google Play, source code):
    A Flutter app that showcases Flutter’s support for elegant design and rich animations.
  • Material 3 Demo (web demo, source code):
    A Flutter app that showcases Material 3 features in the Flutter Material library.
  • Flutter Samples (samples, source code):
    A collection of open source samples that illustrate best practices for Flutter.
  • Widget catalogs (Material, Cupertino):
    Catalogs for Material, Cupertino, and other widgets available for use in UI.
]]>
https://monodes.com/predaelli/2025/03/14/flutter-resources/feed/ 0 12963
Applicazioni da remoto https://monodes.com/predaelli/2025/03/07/applicazioni-da-remoto/ https://monodes.com/predaelli/2025/03/07/applicazioni-da-remoto/#respond Fri, 07 Mar 2025 16:54:52 +0000 https://monodes.com/predaelli/?p=12923 Oh, dimenticavo di aver già scritto di waypipe, a proposito dei giochi 3d. Quasi 5 anni fa!

Ora la parte noiosa. Spesso mi collego (con ssh, ça va san dire) alle mie macchine di casa da remoto dove è già attiva una sessione “desktop” che oggigiorno è Wayland. Così qualsiasi programma Gnome o che usa le librerie Gtk – cioè moltissimi – verrà visualizzato sul desktop Wayland e non sul dektop remoto.

waypipe ssh $HOST” funziona a meraviglia, ma l’aggiunta di queste righe al vostro .bashrc è utile quando non state usando una sessione Wayland (cioè Windows):

if [ -n "$SSH_CLIENT" ]; then
  if [ -n "$WAYLAND_DISPLAY" ]; then
    echo "Remote session with waypipe, everything will be OK" 
  else 
    echo "Remote session, forcing GTK to X11"
    export GDK_BACKEND=x11
  fi
fi

]]>
https://monodes.com/predaelli/2025/03/07/applicazioni-da-remoto/feed/ 0 12923