348 karma · joined July 15, 2023
From my very personal and pragmatic point of view (I am a lone developer : I need to create software solutions that are robust and that simply work without the need to spend months to learn a new technology, that probably will be replaced by a new one in two months or so, that no customer is willing to pay), HTMX is the most pragmatic and useful solution.
It is complete in features and you can do literally anything with it and is easy to integrate in existing web applications.
I used it with CodeIgniter and now with Golang.
I am working on my own PWA, source code here: https://gitea.speedtech.it/roberto/BrainMinder.
At the moment I don't use many PWA features on this PWA, like notifications for example, but in another PWA I built I used camera access to take photos and scan barcodes and it works well.
I use GoLang, HTMX, W3CSS, and Handlebars. The codebase is the same for all the environments: phone, tablet, desktop.
I considered Ionic Framework for the front end, but it uses only web components with shadow DOM and HTMX doesn't work well with this technology on forms submit.
W3CSS is fast and small, easy to understand, change and manipulate.
I created a mesh VPN with Wireguard between the 2 VMs and my office and home serversc (Minisforum PC with Debian) (this is important for my backup and to not open external ports. The VPNs at home at office are provided by 2 Fritz!Box routers)
Just finished yesterday to re-engineering my backups as follow :
- Contabo provides 2 snapshots per VM (on my current plan), I create manually a snapshot every week (for the future I'd like to make this automatic)
- I use bot restic and borg for redundancy as follow :
-- An automysqlbackup cron job creates the encrypted data dumps every day
-- I created two bash scripts that make archives of /etc, /root (contains acme.sh ssl certificates). These archives are encrypted with my public GPG key. They are scheduled via a cron
-- The others directories I backup are /var/vmail (mail files already compressed and encrypted by vmail) and /var/www (websites and web applications), but I don't create archives of them
-- I created different repositories for : /etc, /root/, databases, vmail, sites. In case a repository or a single backup fails for every reason I don't loose everything, but only a part of the full backup
-- Restic sends the backups to iDrive e2 S3 storage : I'll replace part of the procedure using resticprofile in the near future
-- Borg sends the same backups both to home and office servers : I use borgmatic, but have different configurations, and cron jobs, for every destination, otherwise, if a backup fails on one destination, fails on both
-- If one backup fails fo every reason I receive an alert via Pushover : I'd like to substitute it with a self hosted instance of ntfy.sh
I have two additional offline external disks I sync (every week manually) with the main backup disks using rsync
Still to improve / change :
- automatic snapshots creation (via cron jobs)
- use resticprofile for restic
- use backrest to check and access the restic backups
- use Vorta to check and access the borg backups
- use self hosted ntfy.sh for notifications
It costed months ago more than 200 Euros, it is now available for less than 150 Euros.
I am very satisfied, it is running Debian testing as server at home and office.
The only drawback is the fan, but is very quiet.
I measured the power consumption and it is around 5W per hour, the same amount of the Raspberry Pi 4.
In my opinion we don't need more technology or new financial structures and ideas, but instead some old values and ethics ... https://en.wikipedia.org/wiki/Amadeo_Giannini
See also this brief introduction about the foundation he created : https://www.youtube.com/watch?v=XCYuARrz38c
The same revolution that happened on the desktop can happen on mobile. The people at Pine64 are creating incredible and affordable devices, and this is just the beginning. The open source revolution is spreading from software to hardware (Risc-V processors for example).
In my lifetime I have seen Linux and open source software in general make incredible progress. And it is not only a technical aspect, but also a different way of living and seeing the world: hundreds of thousands of developers working together for the benefit of the most, beyond any language, geographical or political boundaries.
It also depends on the choices that each of us will make to stop supporting and encouraging predatory and monopolistic regimes, and instead make choices to preserve our freedoms as individuals, which are more important than the last "nice features" in expensive and proprietary gadgets that imprison us and our data in closed kingdoms.
- 20 years ago it was impossible to buy a PC, especially a laptop, without MS Windows : today there are several suppliers: System76, LaptopWithLinux, TuxedoComputers, to name but a few.
- It is only in the last few years (less than 10) that Linux is perfectly usable on the desktop, so I don't care what decision MS will take for Windows, it is irrelevant if you have other options. For office suites we have: LibreOffice, OnlyOffice, FreeOffice
- FreeBSD has come a long way as a desktop too,in the long run will be usable as Linux
- There are now many alternatives (free or paid) to all the Google services. What Google decides to do with its own services is irrelevant to me, there are alternatives: ProtonMail, Tutanota, Infomaniak, OpenStreetmap, MagicEarth, OrganicMaps, ...
- There are several open source alternatives to Google Android, solid, complete and usable: Iodè, e/OS, to name a few, and we already have an open source app store: F-Droid.
- Linux is also making huge improvements on mobile phones (see PinePhone). It will take a few years, but I'm sure we'll have a viable alternative to Android in the near future.
- There are many messaging apps and protocols that are decentralised and resistant to censorship.
What is really in danger, in my opinion, is net neutrality and the clamps that Google and other big tech companies and governments will try to impose, but in the recent years we have seen a rise of decentralised protocols and services.
My humble suggestions:
- don't use the services of the big tech companies : look for and use only open source alternatives, if possible
- use an open source version of Android on your phone, without the Google services
- prefer decentralised solutions whenever possible
Double Commander is open source, cross-platform and written with Lazarus / FPC : https://doublecmd.sourceforge.io/
But ... I am not able not to use Midnight Commander ...
Floccus for bookmarks (https://floccus.org/) : it works also on mobile devices : a great plus ! You need only a webdav server (or a Nextcloud account), I use Dave (https://github.com/micromata/dave)
Vaultwarden for the passwords (https://github.com/dani-garcia/vaultwarden)
A huge advantage of this solution is that you can have synchronization also between different browsers and on mobile devices.
Tomorrow morning (like any other company of course) Wordpress could go bankrupt and they promise to guarantee the status quo for the next 100 years ...
As someone who has just spent a week trying to integrate the Wordpress API into an external software, I really hoped that they would make an announcement that they have decided to fix all this incredible mess of many years old APIs, incredibly survived all the technological improvements and make a professional and exhaustive developer documentation ...
Pros (ironically):
1. the app store manager is supposed to check the app for malware and viruses before publishing it, ironically all the apps full of Google ads, Google and Facebook trackers of any kind are welcome ...
2. make it very easy for the user to search, install and update the apps, if he can find what they are looking for through billions of game apps and very similar apps that are only published to send advertisements to the user or to collect his personal data.
Disadvantages:
1. you are tied to the whims of the app store manager
2. You have no control over the app publishing process: You cannot decide if you can publish your app or not, only the App Store Manager has the power to decide when and if it is convenient for him. I think only the user should have this right.
I'd prefer to install the native commercial native apps (for example, the home banking app) on my phone by downloading them from the developer's website, in a private area that I have to access with my credentials, where the app is GPG signed and I can check the integrity of the package. An auto-update feature is doable.
For open source apps, there is the F-Droid store where you can add your own repository (a bit technical and not for everyone, I admit : pre installing F-Droid on the new phones could help a lot, but I don't think Google will ever allow this).
Another viable option is PWA. In my opinion, there are very few apps that need the native features, for all the others, almost everything is now doable with PWA technology, and you do not have to bother sending updates to users or asking them to upgrade.
The monopolistic and commercial app stores, with the excuse of making life easier for users and in a supposedly "better security", are a "wonderful" way for Apple and Google to make billions on the work of independent developers and, in the case of Google, to collect and sell personal data about users and to sell ads of any kind in any way.
For MariaDB you can implement logical master-master replication between 2 servers (or a Galera cluster if you have 3 or more servers).
I have done this for my servers with MariaDB (master-master logical replication) and apart from some very rare hiccups it works very well. You can do the same for PostgreSQL.
For SQLlite there are some solutions like Litestream.
At the moment I am on MariaDB but my plan is to migrate to PostgreSQL.
Support for : SQLite, MySQL/MariaDB and PostgreSQL.
You can use the docker version or extract the binary and assets files and run it directly.
Works well also on ARM based SBC, like RaspberryPi.
PHP framework : https://spiral.dev/
ORM PHP library : https://cycle-orm.dev/
I don't save the passwords in the browser. I keep them in Vaultwarden, installed locally on a miniserver.