In un piccolo progettimo di web scraping in PHP, avevo la necessità di identificare il titolo di una pagina web partendo dal suo url.

Usando le funzioni file_get_contents e preg_match è abbastanza facile.

La prima funzione si occupa di recuperare il contenuto di quello che gli viene passato in argomento.

La seconda esegue una ricerca con le espresisoni regolari.

Apache POI è un'ottima libreria per visualizzare e manipolare file di MS Office.

Oggi vediamo come leggere file Word (DOC e DOCX).

Li specifico entrambi perchè richiedono parti di libreria e classi differenti.

Se usate Maven aggiungete queste dipendenze al pom.xml:

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>3.17</version>
        </dependency>

Javascript nasce come un linguaggio lato client, e quindi non può accedere ed eseguire operazioni lato server (a meno di non usare framework specifici ovviamente, ma non è il nostro caso).

La mia necessità è quella di far scaricare agli utenti un file tramite AJAX.

Questo perchè il file, prima di essere creato, richiede un pò di elaborazione.

Usando un linguaggio lato server (nel nostro caso PHP) è possibile eseguire questa operazione.

E' la prima volta che tratto il formato YAML, perchè in genere cerco di usare JSON (o XML al limite).

Però ho dovuto mettermi in pari anche su questo formato.

Al link postato sopra potete avere una panoramica e qualche esemppio.

Qui invece potete vedere una lista di librerie per svariati linguaggi.

Tra le varie librerie che fino ad ora ho testato per fare il parsing della riga di comando in Java, Argparse4j è una di quelle che consiglio.

Se usate Maven aggiungete questa dipendenza al vostro pom.xml:

        <dependency>
            <groupId>net.sourceforge.argparse4j</groupId>
            <artifactId>argparse4j</artifactId>
            <version>0.7.0</version>
        </dependency>

Continuando nel mio studio di Kotlin, mi sono imbattutto nella creazione di file ZIP con più files contemporaneamente.

Quindi, per fare un esempio basico, partendo da un array di file, vediamo come inserirli in un file ZIP.

Se vogliamo sostituire delle parole in un testo usando Python, possiamo usare la funzione replace!

Vediamo un esempio funzionante (e banale):

str = "Ciao, questo è il blog di Pippicalzelunghe"
print(str.replace("Pippicalzelunghe", "Mattepuffo"))

Ciao, questo è il blog di Mattepuffo

L'altro giorno stavo cercando di eseguire il download da un mio programma in Java da un sito con HTTPS.

Cosa già fatta varie altre volte; solo che questa volta, su questo sito, riscontravo questo errore (vi posto una parte del trace):

javax.net.ssl.SSLException: java.lang.RuntimeException: 
Could not generate DH keypair
......
Caused by: java.lang.RuntimeException: Could not generate DH keypair
......
Caused by: java.security.InvalidAlgorithmParameterException: 
DH key size must be multiple of 64, and can only range 
from 512 to 2048 (inclusive). 
The specific key size 4096 is not supported
......

Ho scoperto una funzione di PHP che ci consente di passare i parametri prendendo i valori da un array: http_build_query!

Può essere molto comoda per generare url dinamici partendo da un qualsiasi array (magari anch'esso creato dinamicamente).

Vediamo qualche esempio.

Ci sono diverse librerie ed SDK per integrare GitHub nei nostri programmi, per tantissimi linguaggi.

Oggi vediamo un esempio in Java usando la GitHub Java API!

Se usate Maven, aggiungete questo al vostro pom.xml:

        <dependency>
            <groupId>org.eclipse.mylyn.github</groupId>
            <artifactId>org.eclipse.egit.github.core</artifactId>
            <version>2.1.5</version>
        </dependency>