Contact Info Instagram Github Email

Sono Dario, grazie per aver visitato il mio blog!

Dario

me.jpg

Mi chiamo Dario Del Bel Belluz, ho 30 anni e sono laureato in Economia. Tramite questo blog voglio divulgare le mie conoscenze base di informatica.
Buona lettura!

Published: August 13, 2024

Curriculum personale

  • 2012 - Maturità tecnica
  • 2017 - Laurea in Economia Aziendale Link
  • 2022 - Aulab Full Stack Developer Link
  • 2023 - Hubspot Academy Link
  • 2023 - Devacademy - Programmazione ad oggetti con C# Link

Published: August 13, 2024

gestionale

me.jpg

Ho realizzato un mini gestionale che serve per organizzare gli ordini di un ipotetico ristorante. L'applicazione è stata sviluppata con un framework di php, Laravel e si basa su un database postgresql. Nel mini-gestionale è possibile creare anagrafiche, creare degli ordini, eliminarli, modificarli e stamparli in formato pdf.

Le tabelle che compongono l'applicativo sono:

  • contatti -> che rappresenta le anagrafiche.
  • prodotti -> che rappresenta i prodotti a listino.
  • ordini -> che rappresenta gli ordini.
  • ordini/prodotti -> che rappresenta l'associazione prodotti/ordini per ciascun ordine (in relazione molti a molti). Per realizzare l'applicazione ho quindi utilizzato i concetti tipici di un database relazionale.

Link applicazione

Published: August 13, 2024

array in php

me.jpg

Php (pre-processore di ipertesti), è un linguaggio di scripting interpretato concepito principalmente per la programmazione web lato server.
In questa piccola lezione vedremo come si dichiara un array e successivamente come ciclarlo.

  1. dichiarazione di un array di stringhe in php
<?php
    $array = ["Luca", "Mario", "Dario", "Andrea"];
?>
  1. ciclare l'array di stringhe
<?php
    for ($i = 0; $i < count($array); $i++){
        echo $array;
    }
?>

Published: August 13, 2024

classi, metodi e proprietà

me.jpg

La classe è un concetto cardine della programmazione orientata agli oggetti.
In questa mini-lezione vedremo un'esempio in linguaggio php (pre-processore di ipertesti).

Una classe vuole rappresentare un elemento pseudo-reale in forma programmatica.
Una classe è quindi una struttura dati complessa, che si compone di: - proprietà; - metodi.

Vediamo un esempio di un'ipotetica classe Persona che comprende sia delle proprietà che dei metodi.

public class Persona{
    public $nome;
    public $cognome;
    public $eta;

    // Metodo Costruttore della classe
    public function __construct($nome, $cognome, $età) {
        $this->nome = $nome;
        $this->cognome = $cognome;
        $this->età = $età;
    }
    public function getName(){
        return $this->nome . " " . $this->cognome;
    }
}

Creazione di un'istanza di classe persona mediante il costruttore della classe.

$dario = new Persona("Dario", "Del Bel Belluz", 30);
echo ($dario->getName());

Mediante il costruttore della classe abbiamo creato un'istanza di classe Persona, passando dei parametri direttamente al costruttore della classe.

Published: August 13, 2024

music webserver on linux

In questa guida vedremo come realizzare un server linux dove possiamo ascoltare la musica.

  1. ci servirà un server VPS o comunque un server su cui installare ubuntu server
  2. aggiornamento globale dei pacchetti a sistema
sudo apt update
sudo apt upgrade
sudo apt install vim ffmpeg
  1. creazione delle cartelle di sistema
sudo install -d -o <user> -g <group> /opt/navidrome
sudo install -d -o <user> -g <group> /var/lib/navidrome
  1. ottenere la libreria navidrome sostituisci la versione con quella desiderata, dai qui puoi vederle: https://github.com/navidrome/navidrome/releases
wget https://github.com/navidrome/navidrome/releases/download/v0.XX.X/navidrome_0.XX.X_linux_amd64.tar.gz -O Navidrome.tar.gz
sudo tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
sudo chown -R <user>:<group> /opt/navidrome
  1. crea un file di configurazione per navidrome
MusicFolder = "<library_path>"
  1. crea il servizio per navidrome
cd /etc/systemd/system/
sudo nano navidrome.service
  1. incolla il template sostituendo utente e gruppo indicati in precedenzza
[Unit]
Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
After=remote-fs.target network.target
AssertPathExists=/var/lib/navidrome

[Install]
WantedBy=multi-user.target

[Service]
User=<user>
Group=<group>
Type=simple
ExecStart=/opt/navidrome/navidrome --configfile "/var/lib/navidrome/navidrome.toml"
WorkingDirectory=/var/lib/navidrome
TimeoutStopSec=20
KillMode=process
Restart=on-failure

# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
DevicePolicy=closed
NoNewPrivileges=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
ReadWritePaths=/var/lib/navidrome

# You can uncomment the following line if you're not using the jukebox This
# will prevent navidrome from accessing any real (physical) devices
#PrivateDevices=yes

# You can change the following line to `strict` instead of `full` if you don't
# want navidrome to be able to write anything on your filesystem outside of
# /var/lib/navidrome.
ProtectSystem=full

# You can uncomment the following line if you don't have any media in /home/*.
# This will prevent navidrome from ever reading/writing anything there.
#ProtectHome=true

# You can customize some Navidrome config options by setting environment variables here. Ex:
#Environment=ND_BASEURL="/navidrome"
  1. fai partire il servizio
sudo systemctl daemon-reload
sudo systemctl start navidrome.service
sudo systemctl status navidrome.service
  1. ed infine
sudo systemctl enable navidrome.service
  1. ottieni l'ip del tuo server linux
ip route
  1. icollalo sul browser e carica la musica nella cartella specificata.

Published: August 13, 2024

Basi di dati relazionali

In questa lezione vedremo alcuni concetti cardine della teoria delle basi di dati relazionali.
Un base di dati è una struttura, istanziata tramite un motore database, preposta alla memorizzazione di informazioni.
Le informazioni vengono salvate in degli elementi chiamate tabelle.

  1. Esempio di tabella (Persone).
ID Nome Cognome Età
1 Mario Rossi 30
2 Maria Bianchi 25
3 Luigi Verdi 40
  1. Esempio di script in linguaggio sql per la creazione della tabella di cui sopra.
CREATE TABLE Persone (
    ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    Nome VARCHAR(50),
    Cognome VARCHAR(50),
    Età INT
);

Abbiamo quindi dichiarato una tabella che si compone di n. 4 campi.
ID -> è la chiave primaria, cioè quella proprietà che identifica in maniera univoca uno specifico record della tabella.
La chiave primaria ci consente di accedere ai record della tabella.

Published: August 13, 2024

Vincoli di integrtità referenziale

Nell'ambito delle basi di dati relazionali, e in questo caso postgresql, possiamo definire particolari vincoli di integrità referenziale per mettere in relazione le varie tabelle che compongono il database.

Vi sono n. 3 tipi di relazioni, e più nello specifico:
- relazioni one-to-one - relazioni one-to-many - relazioni many-to-many

In questo scenario vediamo un esempio di relazione one-to-many.

Supponiamo di avere due entità: - clienti - ordini

un cliente è identificato dai suoi dati anagrafici e da una chiave primaria.
un ordine è identificato da un progressivo (chiave primaria) e un importo.

un cliente, chiaramente, può effettuare più ordini e perciò più ordini possono essere associati ad un cliente.
Invece, un ordine può essere associato ad uno ed un solo cliente.

Ecco una rappresentazione logica della nostra base di dati:

Tabella "clienti"

Nome colonna Tipo dati
cliente_id SERIAL
nome VARCHAR(100)
cognome VARCHAR(100)
email VARCHAR(100)

Tabella "ordini"

Nome colonna Tipo dati
ordine_id SERIAL
cliente_id INT
data_ordine DATE
importo NUMERIC(10,2)

Il campo cliente_id della tabella 'ordini' è chiave esterna e conterrà la chiave primaria (id) del cliente corrispondente.

Published: August 13, 2024

Postgres on linux

image.png

In questa guida vedremo come installare un'istanza di postgresql in un server linux.

  1. aggiornare i pacchetti di sistema
sudo apt && sudo apt upgrade
  1. installare il pacchetto di postgres
sudo apt install postgresql postgresql-contrib
  1. accedere alla CLI di postgres
sudo -i -u postgres
  1. creare un nuovo database
createdb nome_database
  1. configurazione delle connessioni da client esterno
sudo nano /etc/postgresql/<versione>/main/pg_hba.conf

Cambia l'indirizzo IP da host all all 127.0.0.1/32 md5 a host all all 0.0.0.0/0 md5 per consentire le connessioni da qualsiasi indirizzo IP.

  1. riavviare l'istanza del motore database postgres
sudo service postgresql restart

Video installazione instanza postgres

Published: August 13, 2024

Passare a Linux

image.png

Vantaggi:

  • open-source
  • una comunità molto vasta
  • aggiornamenti centralizzati e rilasciati costantemente
  • enorme scelta tra le varie distribuzioni

Published: August 13, 2024