itaeng

Blog

Pubblicato in:segnalazioni

Adminer: un'ottima alternativa al pachidermico phpMyAdmin

19FEB2014

Ho recentemente -e casualmente- scovato un'ottima alternativa a phpMyAdmin, che è da sempre il mio strumento prediletto per gestire i database MySQL ma di cui non sono mai stato veramente soddisfatto. Da quando ho iniziato ad usarlo l'ho sempre lento, incongruente e... poco usabile. L'alternativa si chiama Adminer e già dall'home page si può notare come il progetto sia decisamente ambizioso: le priorità sono:

  • Sicurezza
  • Usabilità
  • Performances
  • Features
  • Dimensioni

... dimensioni? Già :) Al contrario dei quasi 15Mbyte che sono richiesti da un'installazione di phpMyAdmin, Adminer richiede solamente poche centinaia di Kilobyte (un po' più di 300), in un unico file php. Questo lo rende un ottimo strumento "usa e getta" per operazioni di manutenzione. Volendo è anche possibile modificare l'interfaccia grafica posizionando uno dei file CSS proposti sul sito stesso nella stessa directory di adminer.php.

Lo sto usando da un paio di settimane e... mi sa che ho trovato il mio nuovo database manager :)

Pubblicato in:trucchi ubuntu

Ottimizzare la dimensione dei PDF su linux, con un solo click

12GEN2014

In questi giorni avevo necessità di creare uno script che mi permettesse di ottimizzare i PDF generati dal mio scanner, per ridurne le dimensioni. Inoltre, volevo poter lanciare lo script direttamente da nautilus tramite un click destro sul file.

Dopo aver vagato inutilmente per il web ho deciso di crearne uno da zero :)

Prima di tutto, ho creato un file chiamato optimizePDF.sh:

#!/bin/bash

for file in "$@"; do
  echo "Processing $file";
  gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -sOutputFile=/tmp/tempfile.pdf "$file";
  if [ $? -eq 0 ]; then
    mv /tmp/tempfile.pdf "$file";
    zenity --info --text 'File converted successfully!'
  else
    rm /tmp/tempfile.pdf
    zenity --error --text 'Error during conversion! The original file has not been modified. Sorry!'
  fi
done

Ciò che fa è semplice: nei parametri con cui lancio lo script passo il nome del file (o i nomi, se è più di un file), lui lo "passa" a ghostscript (gs) e tramite un'accurata scelta di parametri lo comprime, preservando comunque una buona qualità.

Una volta creato il file l'ho spostato in /usr/bin, in modo tale da renderlo raggiungibile da tutti gli utenti:

sudo mv optimizePDF.sh /usr/bin

Volendo è già possibile utilizzare lo script lanciandolo a mano:

$ optimizePDF.sh /path/del/file.pdf

Però io avevo necessità di lanciarlo direttamente da nautilus, così ho creato (tramite Nautilus-Actions Configuration Tool, che a voi non servirà) il pulsante da infilare nel menu contestuale (quello che compare con il click destro del mouse selezionando uno o più file PDF). Per questa funzionalità sarà sufficiente scaricare questo file ed importarlo tramite il comando

gconftool-2 --load action-2e093541-6845-426b-836b-a05d9bffcd8d.xml

Et voilà! Facile no? :)

Pubblicato in:ubuntu

Beats Audio su linux

26NOV2013

Se c'è una cosa che mi ha sempre fatto girare l'anima di avere un portatile che sfoggiava il loghino "Beats" è di non poter sfruttare il suo (ridicolo) subwoofer su linux.

Tempo fa trovai delle istruzioni su come far funzionare il tutto ma era una rogna: era necessario modificare dei file di configurazione a mano, e soprattutto inserendo il jack delle cuffie l'audio continuava ad uscire dal subwoofer. Inaccettabile.

Oggi ho finalmente trovato la soluzione, e quel che è meglio.. è facile e veloce :)

Prima di tutto bisogna installare un pacchetto, che offre un'interfaccia grafica per reimpostare i canali della scheda madre utilizzati per l'audio:

sudo apt-get install alsa-tools-gui

Poi si lancia un comando, che lancia la gui che abbiamo appena installato:

hdajackretask

Ed infine si fa il lavoro sporco: prima di tutto si abilitano i pin non connessi ("show unconnected pins"). Poi si seleziona il Pin ID: 0x10 spuntando il tasto Override, e si seleziona Internal speaker (LFE). Che corrisponde al subfoofer.

Et voilà!

È sufficiente fare un "Apply now" per verificare se si è ottenuto l'effetto desiderato, in caso contrario si può provare selezionando qualche altro pin (per me è il 0x10, non so se sia lo stesso per tutti i portatili).

A saperlo prima...

Pubblicato in:ubuntu trucchi

Risolvere la lentezza mostruosa di sendmail su ubuntu

29OTT2013

In questi giorni avevo bisogno di testare l'invio di alcune email di conferma per un applicativo scritto in PHP. Niente di particolarmente complesso, ma una volta installato il pacchetto sendmail e php-mail notavo una enorme lentezza nell'invio delle email. Parlo di 2-3 minuti di attesa, con tanto di pagina web bloccata, in attesa che la mail venisse inviata: mostruosamente troppo! Come diamine è possibile?

Indagando su san google sono finalmente riuscito a venire a capo del problema. Di default, il file /etc/hosts di ubuntu non specifica il dominio locale, che però a sendmail serve. In pratica, è necessario aggiungerlo a mano. Per fare ciò, se il file /etc/hosts di default è simile a questo:

127.0.0.1    emanuele.itoscano.com
127.0.1.1    miohost

È sufficiente modificarlo così:

127.0.0.1     emanuele.itoscano.com.localdomain    emanuele.itoscano.com
127.0.1.1    emanuele.itoscano.com.localdomain    miohost

Naturalmente, "miohost" corrisponde all'hostname della propria macchina. Se non sapessi qual è, per scoprirlo ci viene in aiuto questo comando, che fornirà il dato che ci serve:

sudo cat /etc/hostname

Fatto questo potrebbe essere necessario riavviare i servizi di sendmail e apache2.

Facile e veloce no? Spero che questa miniguida possa farti risparmiare un po' del tempo che io ci ho messo per venirne a capo yes.

Pubblicato in:segnalazioni cakephp

Libro "Instant CakePHP Starter", di Mark Robert Henderson

22LUG2013

Alcuni giorni fa ho ricevuto un contatto da parte di Packt Publishing, casa editrice specializzata in libri di informatica (dalla programmazione alla grafica, con tutto quello che ci sta in mezzo), in cui mi fornivano l'opportunità di recensire un libro su CakePHP, scritto da Mark Robert Henderson, chiamato "Instant CakePHP Starter".

Avevo già fatto qualcosa del genere in passato, così ho accettato di buon grado.

Instant CakePHP Starter

Quello che mi ha incuriosito fin da subito è quell'"INSTANT" che fa capolino sin dalla copertina, seguito da "Short | Fast | Focused". Tutte caratteristiche che ritengo fondamentali in un libro/manuale di programmazione: odio perdere giorni a leggere teoria, preferisco andare al sodo e poter provare direttamente, magari contemporaneamente, quello che sto studiando.

Cosa è

Questo libro fa esattamente quanto promesso dalla copertina: l'autore parte da un'esigenza pratica e, dopo una breve panoramica sul framework e sul pattern MVC, ci spiega come creare l'applicazione dall'inizio alla fine, spiegando i vari passaggi intermedi: l'installazione, la configurazione iniziale, l'utilizzo del tool da riga di comando "cake", fino alla pubblicazione online, sfruttando il servizio gratuito di AppFog. Nel giro di poche decine di pagine Mark ci mostra come, sfruttando automatismi e convenzioni, CakePHP sia in grado di generare un'applicazione funzionante, seppur grezza, scrivendo pochissime linee di codice.

Poco dopo la metà del libro, dopo aver creato la nostra applicazione, l'autore va avanti e ci illustra altre importanti funzionalità di Cake: routing, themes, behaviors, fixtures e tests.

Secondo me

Quello che mi è piaciuto maggiormente di questo libro è che nel giro di poche pagine (un'ottantina in tutto) offre una bella panoramica di quanto offre CakePHP e lo fa in modo piacevole e diretto, senza tralasciare gustosi particolari. È un libro adatto sia a chi sta iniziando a conoscere questo bellissimo framework sia a chi, come me, lo utilizza già da alcuni anni ma ha sempre qualcosa da imparare o da migliorare. E poi... costa meno di 10 euro, è decisamente abbordabile ;)