Serposcope, Docker & OpenSuSE

Ieri, in un momento di pausa, ho letto questo breve ma interessante articolo in cui si parla di come usare Serposcope in un container Docker.

Sulle prime ho pensato “per quale motivo installare Serposcope all’interno di un contenitore quando basta avere java installato sulla macchina per avviarlo con un semplicissimo comando?!”.
E subito dopo ho pensato “java???! Ma non ho nessuna intenzione di installare una jvm sul mio server”.

Ecco perché server Docker.

Con docker posso permettermi di usare su una macchina virtualmente separata non solo jvm ma diverse versioni dello stesso. Posso quindi separare due versioni dello stesso framework senza che uno confligga con l’altro. Insomma posso separare in modo più veloce e pulito ambiente di sviluppo con ambiente in produzione sullo stesso server.

Certo, questo in ambienti piccoli, dove non si ci può permettere di avere due o più server fisicamente separati.

Ma le potenzialità non si fermano a questo, ovvero si rende più facile distribuire il proprio software nel proprio ambiente senza curarsi di dove andrà installato.

Ma questa è un’altra storia.

I comandi usati sono stati

zypper in docker
systemctl enable docker
systemctl start docker
docker pull serphacker/serposcope
docker run -d -p 7134:7134 –name serposcope serphacker-serposcope

e a questo punto vi troverete serposcope che “gira” sulla porta 7134.

Insomma, più semplice di così!!

Addio Google Instant Search, non ne sentiremo la mancanza

Google ha annunciato e dismesso la funzionalità “Google Instant” dal suo motore di ricerca, quella feature che automaticamente popolava i risultati di ricerca mentre si digitava la query nella barra di ricerca.
Quando fu introdotta migliorò notevolmente l’esperienza utente, riducendo il tempo necessario a scrivere l’intera query di ricerca e cambiò, di fatto, il modo di usare Google.
Ma i tempi cambiano e oggi più di metà delle ricerche avvengono tramite dispositivi mobili. Sullo schermo di un telefonino è più complicato non solo scrivere i termini di ricerca (vedi gente alle prese con il correttore automatico) ma anche visualizzare i risultati istantanei della ricerca, che vanno a occupare una porzione di schermo che, assieme alla tastiera, non risulta essere un’esperienza ottimale per l’utente.

Sembra che Google abbia dichiarato:

Abbiamo lanciato Google Instant nel 2010 con l’obiettivo di fornire agli utenti le informazioni di cui necessitavano nel più breve tempo possibile, prima ancora che finissero di scrivere i termini della ricerca sul proprio desktop. Da quando moltissime ricerche vengono effettuate tramite dispositivi mobili, dove l’interazione e l’inserimento dei termini di ricerca sono molto differenti, questo non ha più senso. Con questo in mente, abbiamo deciso di rimuovere Google Instant, cercando di focalizzarci su come rendere la Ricerca la più veloce e fluida possibile su tutti i terminali.

Di conseguenza, ora, i risultati derivati dall’auto-completamento vengono presentati come un classico menù drop-down nella barra di ricerca stessa, senza che la pagina dei risultati cambi.

Gli utenti potevano già disabilitare Google Instant, ora ci ha pensato Google, in virtù di un miglioramento di quella User Experience tanto portata avanti.

Pubblicare un’app realizzata con PhoneGap su Android PlayStore

Dopo aver realizzato un’applicazione con PhoneGap, arriva il momento di volerla pubblicare sul PlayStore, così che tutti ne possano usufruire.

Per farlo abbiamo bisogno di “preparare” il file APK per essere “accettato” dal sistema di controllo bastano pochi ma essenziali passaggi. Gli stessi valgono anche per le applicazioni create con Ionic o con Cordova.

Dovremo quindi:

  1. Generare l’APK in modalità release
  2. Generare le chiavi per firmare l’APK
  3. Firmare l’App
  4. Allineare il contenuto dell’APK

Step 1: Generare l’APK in modalità release

phonegap build --release android

Questo comando creerà un apk privo delle gestioni di deug (e quindi pronto a essere distribuito) in platforms/android/build/outputs/apk/android-relase-unsigned.apk

Per convenienza spostiamo l’APK generato nella directory root dell’applicazione

Step 2: Generare le chiavi per firmare l’APK

keytool -genkey -v -keystore mie-chiavi.keystore -alias nome-app -keyalg RSA -keysize 2048 -validity 10000

Dove

  • mie-chiavi.keystore va (convenzionalmente) sostituito in <nome dell’app>.keystore
  • nome-app va sostituito con il nome che vogliamo dare all’App

Step 3: Firma l’App

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mie-chiavi.keystore <HelloWorld>-release-unsigned.apk nome-app

Dove

  • per mie-chiavi.keystore e nome-app valgono i nomi del punto precedente
  • <HelloWorld> va sostituito col nome dell’App

Step 4: Allineamento del contenuto

zipalign -v 4 <HelloWorld>-release-unsigned.apk <HelloWorld>.apk

Dove va semplicemente cambiato <HelloWorld> coerentemente con quanto sopra.

Fine!!! Ora puoi caricare la tua nuova App su Google Play Store.