Blogs

Generare una serie di date con MySQL

Ti serve una query che generi un elenco di tutte le date presenti nell'intervallo [data inizio, data fine] su MySQL ?

A partire dalla versione 8.0 in MySQL sono state implementate le CTE (Common Tables Expressions). Queste espressioni sono utilizzabili anche in modalità ricorsiva ed è in questo modo che possiamo generare l'elenco di date in un intervallo definito.

Conversione di fuso orario su MySQL

In MySQL, per convertire un orario da un fuso orario ad un altro possiamo utilizzare la funzione CONVERT_TZ.

La conversione avviene tramite il comando

Utilizzare GitHub come repository Maven

GitHub si è affermato come standard di fatto per ospitare i progetti opensource.
Tra i numerosi strumenti offerti vi è un rudimentale servizio di hosting (github pages) che possiamo sfruttare, tra l'altro, per gestire in proprio un repository Maven.
Vediamo come gestirlo supponendo di avere un progetto Java che utilizzi Gradle.

SSH - Eseguire comandi da remoto

Vediamo come eseguire un comando via SSH da remoto senza però fare prima il classico login/accesso alla shell.
Una operazione del genere può essere particolarmente utile quando, ad esempio, vogliamo preparare degli script che eseguano automaticamente comandi remoti su uno o più server.

La sintassi da utilizzare è la seguente:

SQL Injection

Vediamo come una pagina web apparentemente funzionante può nascondere gravi falle di sicurezza che rendono un attaccante in grado di effettuare operazioni non autorizzate.
La tipologia di vulnerabilità che andremo ad analizzare è quella della SQL Injection che permette ad un attaccante di eseguire query (quasi) arbitrarie e senza controllo sul nostro database..

Apache WebServer: proteggere una cartella tramite password

Vediamo come proteggere una cartella di un sito servito da webserver Apache Httpd.

Ci serviranno due files:

  • .htaccess
  • .htpasswd

Il file .htaccess va messo nella cartella da proteggere, e deve avere questo contenuto

JDBC Batch inserts

Inserire nuovi record in una tabella è un'operazione semplicissima, ma se si ha la necessità di inserire centinaia di migliaia di record contemporaneamente (ad esempio si stanno importando molti dati da un file CSV) l'operazione può diventare molto -troppo- lenta.

AngularJS - Debugging Tips

Effettuare il debug di codice JavaScript è ormai un'operazione abbastanza agevole. Se però utilizziamo AngularJS non sempre è immediato capire come accedere ai servizi, scope, controller, etc semplicemente utilizzando la console presente nei browser e senza perdersi in breakpoints, step over, step into, etc...

Eccovi qualche informazione che può rendervi la vita un po' più facile.

SSH Tunneling

SSH ci permette di collegarci ad un server attraverso una connessione crittografata. Tipicamente lo usiamo per accedere alla shell del server, ma controllando il manuale scoprirete che ha veramente tantissime opzioni ed utilizzi. Uno tra questi è la possibilità di creare dei tunnel ssh.

Un caso tipico; abbiamo tre host:

Hibernate Logging Tips

Chiunque usi Hibernate prima o poi ha la necessità di capire, per debug o per ottimizzazione, come la query scritta utilizzando i Criteria oppure JPQL venga tradotta in SQL nativo.

Pages