SMsoft – informatica e dintorni

varie su OSX, GNU/Linux e l'Open Source

LRZIP: Il miglior modo per comprimere grandi files

LRZIP è un programma di compressione che può raggiungere fattori di compressione e velocità veramente elevati quando è utilizzato con file di grandi dimensioni. Per la massima compressione utilizza una combinazione degli algoritmi di compressione zpaq e lzma, per la massima velocità usa lzo e per la riduzione della ridondanza su lunghe distanze nei file usa rzip. È stato progettato per scalare con l’aumento della disponibilità di RAM, migliorando così ulteriormente la compressione. Una scelta di ottimizzazione per dimensione o velocità permette di avere una compressione migliore rispetto a quella raggiungibile con lzma o una velocità migliore rispetto a gzip, ma con livelli di compressione tipici di bzip2.

L’installazione può essere fatta tramite pacchetto, se usate squeeze o tramite sorgente.
Su Squeeze basterà digitare:

#apt-get install lrzip

Per installarlo sulle precedenti versioni Debian da sorgenti, occorrono alcune librerie:

# apt-get install zlib1g-dev libbz2-dev liblzo2-dev

Bisogna ora recuperare i sorgenti da http://ck.kolivas.org/apps/lrzip/, decomprimerli e poi compilarli ed installarli con:

$ ./configure
$ make
# make install

Ora vediamo alcuni esempi di utilizzo:
Quick lowdown of the most used options:

lrztar directory
Crea l'archivio directory.tar.lrz compresso con lzma (compressione normale, simile a quella di bzip, molto veloce da fare)

 lrzuntar directory.tar.lrz
Estrae la directory precedentemente archiviata.

 lrzip filename
Crea l'
archivio filename.lrz compresso con lzma

 lrzip -z filename
Crea l'archivio filename.lrz compresso con ZPAQ (compressione massima che  richiede più tempo per la compressione/decompressione)

 lrzip -l filename
Crea l'
archivio filename.lrz compresso con LZO (compressione velocissima)

 lrunzip filename.lrz
Decomprime l'archivio filename.lrz in filename

enjoy!

Verificare se il modulo gzip_static su nginx funziona

Siete curiosi di sapere se il modulo gzip_static di nginx funziona?
Innanzitutto bisogna installare strace che facciamo con il classico:

apt-get install strace

Ora bisogna recuperare il PID di uno dei worker process di nginx:

# ps auxw |grep nginx
root      8580  0.0  0.0   5000   756 ?        Ss   May05   0:00 nginx: master process /usr/sbin/nginx
www-data  8581  0.0  0.0   5220  1568 ?        S    May05   0:09 nginx: worker process
www-data  8582  0.0  0.0   5168  1448 ?        S    May05   0:04 nginx: worker process

I due worker process attivi hanno PID 8581 e 8582.
A questo punto “agganciamoci” ad uno dei processi, filtrando per gz e vediamo che succede:

#strace -p 8582 2>&1 | grep gz

Se l’output è qualcosa del tipo:

open("/var/www/css/style.css.gz", O_RDONLY|O_NONBLOCK) = 438
open("/var/www/js/utils.js.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)

significa che il modulo funziona regolarmente.
enjoy

Evitare la creazione di file .DS_Store su FileSystem remoti montati con sshfs

Come saprete, OSX crea files .DS_Store contenenti informazioni di sistema. Questo avviene anche sui File System remoti montati con sshfs. Ci sono due sistemi per evitare che questo accada:
1 – aggiungere l’opzione noappledouble durante il montaggio, es:

sshfs user@some-host.net:/home/user/ ~/mountpoint -onoappledouble,auto_cache,reconnect,volname=somename,defer_permissions,negative_vncache

2 – configurare OSX in modo che non scriva il file .DS_Store nei FileSystem di rete, digitando nel terminale:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

che provvede ad inserire tale settaggio nel file ~/Library/Preferences/com.apple.desktopservices.plist

enjoy!

Sottrarre del tempo ad un campo TIME di MySQL

Ipotizziamo di avere un campo chiamato ora di tipo TIME di un database MySQL che si chiama annunci che contiene orari del tipo “13:40:00″ e che tale orario debba essere automaticamente decrementato di due ore per tutti i record. Ecco una query per poterlo fare:

UPDATE annunci SET ora=TIMEDIFF( ora, "02:00:00" )

enjoy

Creare screenshot dall’Iphone Simulator

Ho trovato diversi interessanti sistemi per la creazione di screenshot dall’iPhone Simulator. I più interessanti per me sono:
1 – Selezionare l’iPhone Simulator, premere la combinazione di tasti cmd+ctrl+C, poi aprire un programma di grafica, creare un’immagine (ctrl+N) 320×480 ed incollare lo screenshot con ctrl+V
2 – Usare il comando screencapture da terminale ed in particolare ho trovato un comodo script bash che effettua anche il resize:

#!/bin/sh

# script to screenshot the iPhone Simulator to the correct size
# to upload to iTunes Connect
# written by Jehiah Czebotar http://jehiah.cz/

OUTPUTDIR=~/Desktop
TEMPFILE=iPhoneSimulatorScreenshot_`date +%Y%m%d_%H%M%S`.png

echo "Scrivi il nome del file:\c"
read -e OUTPUTFILE

# activate iPhone Simulator so its easy to click on
osascript -e 'tell application "iPhone Simulator"' -e 'activate' -e 'end tell'

# capture the screen
screencapture -iowW $OUTPUTDIR/$TEMPFILE

# resize to the apple upload size, 320x480
sips -c 480 320 $OUTPUTDIR/$TEMPFILE --out $OUTPUTDIR/$OUTPUTFILE

(fonte)

Segnalo anche il software iphonesimulatorcropper, anche se preferisco usare i due precedenti metodi.

enjoy!

Quale server DNS utilizzare per velocizzare la navigazione?

I server DNS sono responsabili della risoluzione dei nomi a dominio, il che significa che durante la navigazione, vengono utilizzati per conoscere l’IP associato ad un certo nome a dominio. Se i server DNS non sono abbastanza veloci, anche la navigazione internet ne risentirà.

Ma quale server DNS utilizzare per velocizzare la navigazione? Difficile rispondere, perché dipende dalla connessione utilizzata.

Ci viene però in aiuto un software che effettua una serie di check in automatico e vi indica quali sono i server DNS migliori per la connessione utilizzata. Il software si chiama namebench e può essere scaricato, sia per windows che per OSX da http://code.google.com/p/namebench/

enjoy!

Page optimized by WP Minify WordPress Plugin