Errori Apache su ubuntu

Per analizzare gli errori di apache su ubuntu ( il percorso potrebbe variare in base alla configurazione del vhost ):
 

tail -f /var/log/apache2/error.log

esempio di output:

[Thu Jan 04 11:13:21.858596 2024] [authz_core:debug] [pid 805] mod_authz_core.c(809): [client 127.0.0.1:52811] AH01626: authorization result of Require all granted: granted
 

Wordpress, cambio password e disabilitare plugin

Due query utili in caso di debug in locale di un sito wordpress:

cambio della password in locale  ( ricordarsi poi di rigenerarla md5 non è sicuro )

mysql -uroot -ppwd123
use nomeDb
UPDATE wp_users SET user_pass = MD5('davide123') WHERE user_login = 'travelmatic';

 

e in caso di problemi potrebbe essere utile disabilitare tutti i plugin:

UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';

 

destrutturazione degli oggetti

La destrutturazione degli oggetti è una caratteristica di JavaScript che consente di estrarre valori da oggetti o array e assegnarli a variabili in modo più conciso e leggibile. È una sintassi comoda per estrarre le proprietà di un oggetto e utilizzarle in variabili separate.

const persona = {
  nome: 'Alice',
  età: 30,
  città: 'New York',
};

Estrarre le proprietà dell'oggetto 'persona' in variabili separate

Handlebars partials

Per evitare ripetizioni di codice, ad esempio una sezione con dei dati delle stanze di un hotel nel caso in cui ( magari perché il formato dei dati in ingresso è diverso e l'item si trovasse in posizione diversa, si può razionalizzare il template con dei "partial"
Nel mio caso, i file .handlebars vengono compilati, e il file roomPartial si trovano in un file pronti all'uso e caricati in una var globale es "nameSpace"

sessionStorage e localStorage

Per salvare  dei dati in cache con javascript ci sono due modalità:
 
localStorage che li salva in modo persistente ( anche dopo la chiusura del browser )
 
// Salvataggio dei dati

localStorage.setItem('chiave', 'valore');


// Recupero dei dati

var valore = localStorage.getItem('chiave');


// Rimozione dei dati

localStorage.removeItem('chiave');


// Rimozione di tutti i dati

localStorage.clear();

toggleClass jQuery

 

 

$(".container__filters").toggleClass("sidebar__filters--closed", toggleClass === "sidebar__filters--open");

 

toggleClass("sidebar__filters--closed", toggleClass === "sidebar__filters--open") è il metodo toggleClass di jQuery che serve per aggiungere o rimuovere la classe specificata, "sidebar__filters--closed", dall'elemento selezionato, basandosi sulla condizione specificata dopo la virgola. Se toggleClass === "sidebar__filters--open" è vero, allora il metodo aggiungerà la classe "sidebar__filters--closed" all'elemento.

Grunt scripts replace

Per correggere eventuali errori in librerie con vulnerabilità o errori non pathcabili con update ( perché già all'ultima versione o perché la nuova versione non è retrocompatibili ) si può usare uno script di grunt che automatizza la correzione: ad esempio la libreria bootstrap-select ( @todo cercare un sostituto ) nella sua ultima versione contiene un errore di sintassi scss perché i calcoli vanno effettuati all’interno del costrutto calc()
 
$amnt: $amnt / 100; // convert to percentage if int

Web APIs

Quando si scrive codice per il Web, è disponibile un gran numero di API Web.

Nel link di seguito è riportato un elenco di tutte le API e le interfacce (tipi di oggetti) che potresti essere in grado di utilizzare durante lo sviluppo dell'app Web o del sito.

Web/API list

Le API Web vengono in genere utilizzate con JavaScript, anche se non deve sempre essere così.

 

 

Programmazione asyncrona in javascript

JavaScript è a thread singolo per natura: non c'è parallelismo, solo concorrenza . 
La programmazione asincrona è alimentata da un ciclo di eventi , che consente di accodare una serie di attività e di eseguirne il polling per il completamento.
 
Esistono tre modi idiomatici per scrivere codice asincrono in JavaScript:
 
  • Basato su callback ( come setTimeout() )
  • Basato sulle Promise.
  • async/ await, che è un modo più leggibile per scrivere le promise.
 
Ad esempio, ecco come potre