martedì 23 agosto 2011

Installare il PS3SDK legale su Linux (Ubuntu e Archlinux)

Dopo aver visto come configurare e installare il PSPSDK su Linux, vediamo ora come installare quello relativo alla PS3. Ovviamente stiamo parlando dell'SDK legale, ossia il PS3Toolchain + PSL1ght e NON di quello leakato a Sony.

Innanzitutto installiamo le dipendenze necessarie per compilare il tutto.
Su Ubuntu e derivati date da terminale:
sudo apt-get install autoconf automake bison flex gcc libelf-dev make texinfo libncurses5-dev patch python subversion wget zlib1g-dev libtool python-dev bzip2 libgmp3-dev pkg-config git
Su Archlinux invece date da terminale:
yaourt -S autoconf automake bison flex gcc libelf make texinfo ncurses patch python subversion wget zlib libtool python bzip2 gmp pkg-config git

Adesso aggiungiamo le variabili di ambiente. Da terminale digitate:
gedit ~/.bashrc
E aggiungiamo a fine file le seguenti stringhe:

# PS3SDK
export PS3DEV=/usr/local/ps3dev
export PATH=$PATH:$PS3DEV/bin
export PATH=$PATH:$PS3DEV/host/ppu/bin
export PATH=$PATH:$PS3DEV/host/spu/bin
export PSL1GHT=$PS3DEV/psl1ght
export PATH=$PATH:$PSL1GHT/host/bin
Salviamo i cambiamenti e chiudiamo il file, adesso ricarichiamo le variabili dando da terminale:
source ~/.bashrc

Ora scarichiamo i sorgenti da compilare, dando da terminale:
git clone https://github.com/ps3dev/ps3toolchain.git

Una volta finito il download passiamo alla compilazione vera e propria!
Da terminale diamo l'ultimo comando:
cd ps3toolchain
sudo ./toolchain-sudo.sh
Ci verrà chiesto di inserire la nostra password da root. Facciamolo e attendiamo pazientemente che il processo vada a compimento.
La durata cambia a seconda della potenza del PC che si sta usando, ma di solito varia da un'ora fino alle 4 ore. Bisogna avere molta pazienza quindi!

Archlinux: gestire il proprio iDevice (iPad/iPhone/iPod) senza bisogno di iTunes!

Oggi vi presenterò quella che spero sarà la più completa guida sulla gestione del vostro iDevice (sia esso un iPad, iPhone, iPod o chissà quale altra diavoleria della famiglia Apple) sotto Linux.
Se siete possessori di un Desktop Gnome le cose saranno decisamente più semplici (visto l'automount gestito da Nautilus) ma io vi illustrerò come fare le cose "manualmente", in modo da potersi adattare a qualsiasi Desktop e non dover per forza installare un Desktop che magari non vi aggrada.

Innanzitutto vediamo cosa ci serve:
  • libimobiledevice-git <- la libreria principale, quella che installerà il supporto vero proprio per il nostro iDevice su Linux
  • ideviceinstaller-git <- utile per gestire le applicazioni del nostro iDevice, ci permetterà non solo di elencarle, ma anche di backupparle e in futuro reinstallarle ad esempio dopo una formattazione.
  • ifuse <- necessario per "montare" il nostro iDevice su una delle cartelle del nostro PC in modo da poterlo esplorare come una normale periferica USB.
Installiamo il tutto quindi, digitando da un terminale:
yaourt -S libimobiledevice-git ideviceinstaller-git ifuse
Grazie a questa semplice mossa avremo adesso a disposizione un miriade di utilissimi programmi per gestire al meglio il nostro iDevice. Analizziamoli uno ad uno:

idevicebackup e idevicebackup2 Questi due programmi sono identici tra loro solo che la versione col 2 finale è diciamo più avanzata (e forse sperimentale?) in quanto possiede delle opzioni in più. Per quanta riguarda idevicebackup, questo comando ci permette di effettuare un backup del nostro iDevice per poi ripristinarlo in futuro. Al contrario del comando col 2 finale qui abbiamo solo due opzioni disponibili, ossia fare il backup o ripristinarlo. L'utilizzo è banale, collegate il vostro iDevice al PC e poi digitate in un terminale:
idevicebackup backup CARTELLA
Per creare un backup del vostro iDevice nella cartella CARTELLA (ovviamente nel comando sopra sostituite CARTELLA con il percorso della cartella in cui volete salvare il backup del vostro iDevice!). Oppure:
idevicebackup restore CARTELLA
Per ripristinare un backup creato in precedenza nella cartella CARTELLA. Il comando col 2 finale, ossia idevicebackup2, invece presenta oltre a backup e restore altri comandi, nello specifico:
  • restore --system <- ripristina anche i file di sistema.
  • restore --reboot <- riavvia l'iDevice quando ha finito il ripristino.
  • restore --copy <- crea una copia della cartella di backup prima di effettuare il ripristino.
  • restore --settings <- ripristina le impostazioni dell'iDevice dal backup.
  • info <- mostra i dettagli riguardo l'ultimo backup completato dell'iDevice.
  • list <- elenca (in formato CSV) tutti i file dell'ultimo backup fatto.
  • unback <- scompatta un backup completato in precedenza nella cartella _unback_
L'utilizzo nel terminale è identico al precedente programma.

Passiamo ora ad un nuovo tool che avremo a disposizione, ossia idevicedate. Questo programma ci permetterà di ottenere la data e l'ora dal nostro iDevice oppure di impostarle. L'utilizzo è il seguente:
idevicedate
E ci verrà stampato a terminale la data/ora corrente impostata nell'iDevice. Se vogliamo modificarla basta dare:
idevicedate -c
E la data/ora verrà reimpostata usando quella attuale del vostro PC. Volendo potete anche specificare un timestamp diverso da quello in uso sul vostro PC, dando come comando:
idevicedate -s TIMESTAMP
dove al posto di TIMESTAMP ovviamente dovete inserire un timestamp valido (leggete qui se non sapete cos'è un timestamp: http://en.wikipedia.org/wiki/Timestamp).

Un altro tool che avremo a disposizione è ideviceenterrecovery. Questo programma vi permetterà semplicemente di far andare immediatamente in Recovery Mode il vostro iDevice. Fate molta attenzione ad usarlo! Non presenta opzioni da poter usare e l'utilizzo è banale:
ideviceenterrecovery UUID
dove al posto di UUID ci deve andare l'ID univoco del vostro iDevice (è una stringa di 40 caratteri che identifica il vostro iDevice, leggete più avanti per sapere come ottenerlo!).

Un altro tool molto utile che avremo a disposizione è idevice_id. Questo programma vi permetterà di ottenere l'UUID del vostro iDevice di cui parlavamo sopra. Per elencare gli UUID di tutti gli iDevice collegati via USB date da terminale:
idevice_id -l

Un mini-appunto ora su ideviceimagemounter. Purtroppo non ho ben capito a cosa serve questo tool, comunque la descrizione ufficiale dice che:
Mounts the specified disk image on the device.
quindi tradotto letteralmente serve a "montare" sull'iDevice l'immagine disco specificata. Non so però a quale immagine disco si riferisca, se ne sapete più di me fatemelo sapere così aggiorno le info su questo programma ;)

Saltiamo quindi a ideviceinfo. Questo è il tool che ci darà tutte le informazioni che vogliamo sul nostro iDevice. Usando il semplice comando:
ideviceinfo -s
otterremo le informazioni basilari sul nostro iDevice. Aggiungendo un -x otterremo le stesse informazioni ma visualizzate in formato XML. Se però volessimo avere delle informazioni specifiche possiamo usare i cosiddetti "domini". Ad esempio se vogliamo sapere lo spazio occupato/rimanente sul nostro iDevice possiamo dare da terminale:
ideviceinfo -q com.apple.disk_usage
Se vogliamo altre informazioni possiamo sostituire nella stringa sopra a com.apple.disk_usage il "dominio" che ci interessa. Quelli disponibili sono:

    com.apple.disk_usage com.apple.mobile.battery com.apple.xcode.developerdomain com.apple.international com.apple.mobile.data_sync com.apple.mobile.tethered_sync com.apple.mobile.mobile_application_usage com.apple.mobile.backup com.apple.mobile.nikita com.apple.mobile.restriction com.apple.mobile.user_preferences com.apple.mobile.sync_data_class com.apple.mobile.software_behavior com.apple.mobile.iTunes.SQLMusicLibraryPostProcessCommands com.apple.mobile.iTunes.accessories com.apple.mobile.internal com.apple.mobile.wireless_lockdown com.apple.fairplay com.apple.iTunes com.apple.mobile.iTunes.store com.apple.mobile.iTunes
Anche qui mettendo un -x prima di -q possiamo visualizzare le info risultanti in XML.

Passiamo ora a idevicepair. Tramite questo tool possiamo effettuare o gestire il pairing tra il nostro PC e l'iDevice. L'utilizzo è:
idevicepair COMANDO
dove al posto di COMANDO potete usare uno dei seguenti comandi:
  • hostid <- visualizza l'ID host del computer in uso
  • pair <- effettua il pair dell'iDevice col computer in uso
  • validate <- controlla se l'iDevice è correttamente in pair col computer in uso
  • unpair <- annulla il pair tra l'iDevice e il computer in uso
  • list <- elenca tutte le iDevice in pair col computer in uso

Un altro tool che avremo a disposizione è idevicescreenshot. Tramite questo programma potremo fare uno screenshot dell'attuale schermata sull'iDevice e salvarlo sul PC in formato TIFF. Però attenzione: per funzionare questo comando richiede che un'immagine disco da sviluppatore sia stata installata sull'iDevice in precedenza (tramite il suddetto comando ideviceimagemounter). L'utilizzo è semplice, basta digitare in un terminale:
idevicescreenshot
tutto qui, l'immagine TIFF verrà salvata nella directory attuale.

Adesso vediamo idevicesyslog. Questo tool vi permetterà di visualizzare il log di sistema del vostro iDevice, dove vengono salvati tutti i messaggi di debug o di errore che si verificano durante l'utilizzo del vostro iDevice. Anche qui non c'è alcuna opzione da aggiungere, basta dare da terminale:
idevicesyslog
Per interrompere la visualizzazione del log basta dare un CTRL+C nel terminale stesso.

E con questo abbiamo concluso i tool disponibili grazie a libimobiledevice. Vediamo ora gli altri 2 tool, ossia ifuse e ideviceinstaller. Per quanto riguarda ideviceinstaller, grazie ad esso avremo un completo tool per analizzare, backuppare o ripristinare le app installate nel nostro iDevice. L'utilizzo è banale, basta digitare in un terminale dopo aver collegato il vostro iDevice:
ideviceinstaller OPZIONE
Dove al posto di OPZIONE potete inserire una delle opzioni disponibili per questo comando, che sono:
-l -o list_user <- elenca solamente le applicazioni dell'utente (è l'opzione di default)
-l -o list_system <- elenca solamente le applicazioni di sistema
-l -o list_all <- elenca tutti i tipi di applicazioni installate sull'iDevice
-l -o xml <- elenca le app e visualizza il risultato in formato XML
-i ARCHIVE <- installa l'applicazione specificata al posto di ARCHIVE nella stringa
-u APPID <- disinstalla l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-g APPID <- aggiorna l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-L <- elenca tutte le applicazioni backuppate in precedenza
-a APPID <- backuppa l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-a APPID -o uninstall <- disinstalla dall'iDevice, dopo averla backuppata, l'applicazione il cui ID avete specificato al posto di APPID nella stringa
-a APPID -o app_only <- backuppa soltanto i dati dell'applicazione
-a APPID -o copy=PATH <- copia il backup dell'applicazione (dopo averlo fatto) nella cartella specificata al posto di PATH nella stringa.
-a APPID -o copy=PATH -o remove <- rimuove il backup dell'iDevice dopo averlo copiato nella cartella specificata al posto di PATH nella stringa
-r APPID <- ripristina il backup (fatto precedentemente) dell'applicazione di cui avete specificato l'ID al posto di APPID nella stringa
-R APPID <- rimuove il backup dell'applicazione di cui avete specificato l'ID al posto di APPID nella stringa
Per ottenere gli APPID che vi servono basta usare l'opzione -l per elencarle, visto che vi verranno elencate proprio per APPID ;)

E infine dedichiamoci ad ifuse, il comando principale che vi permetterà di montare il vostro iDevice sul PC come fosse una normalissima periferica USB. Come già detto in precedenza se usate Gnome questo comando non vi troverete ad usarlo spesso perché Nautilus monta in automatico il vostro iDevice. Detto questo però vediamo come si usa ifuse:
ifuse mount_point OPZIONE
dove al posto di mount_point va inserita una qualsiasi cartella ESISTENTE sul vostro Hard Disk e in cui volete montare il vostro iDevice (in pratica, una volta montato, entrando in quella cartella specificata potrete navigare all'interno del vostro iDevice!).
Al posto di OPZIONE potete inserire invece una delle seguenti opzioni:
--appid APPID <- Monterà la cartella "Documents" (quella in cui l'applicazione salva e carica tutti i suoi file!) dell'applicazione identificata dall'APPID inserito.
--root <- Monta il file system di root del vostro iDevice, permettendovi di navigare in davvero QUALSIASI cartella (anche le più nascoste!) del vostro iDevice. Richiede però il Jailbreak sul vostro iDevice, non funziona senza!
Per fare un esempio pratico, io per montare il mio iPad sotto Xfce digito in un terminale:
ifuse ~/iPad
e mi ritrovo l'iPad navigabile dalla cartella iPad nella mia home. Per "smontare" in modo sicuro l'iDevice caricato tramite ifuse basta dare da terminale un:
sudo umount mount_point
dove al posto di mount_point va inserita la cartella in cui avete montato l'iDevice con il comando ifuse di prima.

Adesso che abbiamo visto come "gestire" in toto il nostro iDevice, vediamo l'ultima cosa, ossia come gestire la multimedialità. In particolare vediamo come sincronizzare i contenuti (musica, video, libri, podcast...) col nostro iDevice. Esistono vari tool che sono compatibili con le periferiche di casa Apple ma io qui ve ne presento solo uno che fa tutto, se volete potete cercare con Google altri programmi compatibili e/o specifici ;) Io quindi vi parlerò di GtkPod, un semplicissimo programmino che vi permetterà di sincronizzare musica, video, podcast, ecc... col vostro iDevice. Per installarlo su Archlinux diamo in un terminale:
yaourt -S gtkpod
Una volta installato ricordiamoci che, a meno che non c'è l'automount per il nostro iDevice, prima di avviare GtkPod dobbiamo montare il nostro iDevice manualmente con il suddetto comando di ifuse. Una volta montanto avviamo GtkPod e vedremo che il nostro iDevice verrà automaticamente caricato.
A questo punto, tramite questo programmino davvero banale e facile da usare, potremo facilmente sincronizzare musica, video, podcast, libri, contatti, note, ecc... tra il nostro PC e il nostro iDevice!!!

Adesso un piccolo tip per la gestione immagini: non vi serve alcun programma specializzato! Infatti una volta montato il vostro iDevice con ifuse potrete accedere al suo interno dove troverete una cartella chiamata DCIM al cui interno ci saranno tutte le immagini presenti nella libreria del vostro iDevice. Potrete quindi visionarle, copiarle o cancellarle come normalissimi file.

Infine, prima di chiudere, voglio segnalarvi un ottimo programma per la conversione di video in formato compatibile con il vostro iDevice: sto parlando di Handbrake, un editor video facilissimo da usare grazie ai template preimpostati che troverete nella parte destra della finestra principale.
Una volta caricato un video quindi vi basterà cliccare sul template a destra relativo al vostro iDevice e avviare la conversione, il risultato sarà un video perfettamente compatibile con il vostro iDevice e pronto da essere inserito su di esso grazie al già citato GtkPod ;) Per installarlo su Archlinux basta dare:
yaourt -S handbrake

Aggiornamento: mi è stato segnalato un altro programma utile per attivare o disattivare il vostro iDevice (se mai vi dovesse servire!). Si tratta di ideviceactivate. Per installarlo date in un terminale:
yaourt -S ideviceactivate-git
L'utilizzo è il seguente:
ideviceactivate OPZIONE
dove al posto di OPZIONE dovete inserire una delle seguenti opzioni:
-x <- disattiva (o meglio, "toglie l'attivazione") l'iDevice
-e IMEI <- quando invia la richiesta di attivazione utilizza l'IMEI specificato al posto di "IMEI" nella stringa
-s IMSI <- quando invia la richiesta di attivazione utilizza l'IMSI specificato al posto di "IMSI" nella stringa
-i ICCID <- quando invia la richiesta di attivazione utilizza l'ICCID specificato al posto di "ICCID" nella stringa
-n SERIALNUMBER <- quando invia la richiesta di attivazione utilizza il serial number specificato al posto di "SERIALNUMBER" nella stringa
-f FILE <- attiva l'iDevice usando il file di attivazione posizionato nel percorso specificato al posto di "FILE" nella stringa
-c DIR <- salva i dati di attivazione nella cartella specificata al posto di "DIR" nella stringa (utile per riattivazioni future!)
-r DIR <- attiva l'iDevice usando i dati di attivazione salvati precedentemente nella cartella specificata al posto di "DIR" nella stringa.

Ed eccoci quindi ai commenti finali. Tramite questa guida avete avuto una panoramica completa su tutti i programmi e le opzioni che vi permetteranno di gestire il vostro iDevice con Archlinux senza sentire troppo la mancanza di iTunes.
Ovviamente se avete delle correzioni o delle aggiunte da segnalare fatelo attraverso i commenti di questo topic che provvederò a fare le giuste modifiche al più presto ;D

venerdì 19 agosto 2011

Archlinux: installare Adobe Reader (anche in Italiano)

Subito qualcuno dirà "ehi, ma perché installare quel coso pesante e soprattutto Adobe!?"... e come dargli torto? XD Però ovviamente (e purtroppo) ci sono alcuni PDF che, vuoi per struttura complessa, vuoi per complessità strutturale (no, non sono la stessa cosa lol) necessitano dell'originale Adobe Reader per essere visualizzati correttamente in ogni loro funzione/parte.
Per tale ragione "potrebbe" essere comodo necessario per qualcuno installare l'originale Adobe Reader sul proprio Archlinux. Ora vedremo come fare.

Innanzitutto da premettere che Adobe Reader non è presente nei repo ufficiali usati da pacman, ma questo non è un problema in quanto è presente nel repository AUR.
Il problema se vogliamo "più grave" è invece che l'ultima versione (ossia la 10, la X) non c'è proprio, mentre della versione prima (la 9) c'è solo la versione Inglese, Francese, Tedesco e Giapponese... insomma, se lo vogliamo in Italiano ci dobbiamo accontentare della versione 8.

Quindi, se vogliamo installare la versione 9 in Inglese, digitiamo in un terminale:
yaourt -S acroread
Se invece vogliamo installare la 8 però in Italiano allora digitiamo in un terminale:
yaourt -S acroread-it

Il mio consiglio però resta quella di usare lettori PDF "alternativi" più leggeri e maneggevoli (e magari direttamente in Italiano) e ricorrere ad Adobe Reader solo nel remoto caso in cui un PDF non vi venga aperto o visualizzato in modo corretto.

giovedì 18 agosto 2011

Linux: cercare file sul PC grazie a Catfish

Oggi vi parlerò di un'utilily secondo me immancabile su ogni sistema operativo: sto parlando della ricerca file!
Quante volte vi sarà capitato di non ricordare più in quale cartella del vostro Hard Disk avete messo un file in particolare? Quante volte dovrete mettervi a cercare fra innumerevoli livelli di sottocartelle o migliaia di file? Fare una cosa del genere a mano non è certo la migliore scelta, visto che porterebbe via tempo prezioso e soprattutto, causa sviste, si rischia di non giungere ad alcun risultato.
Proprio per tale ragione esistono un sacco di programmi che vi permettono di cercare file sul vostro HDD (anche via terminale, ovvio) ma io oggi vi presento forse il migliore e con comoda e facile interfaccia grafica: Catfish.


Come potete vedere dall'immagine sopra l'interfaccia è davvero banale: inserite il nome del file che volete cercare (o anche una parte di esso, o solo l'estensione, ecc...), impostate (ma solo se vi servono!) alcune funzioni aggiuntive (se volete cercare un termine esatto, o un tipo di file in particolare, o cercare tra i file nascosti, o limitare i risultati a un max di numero, ecc...), settate la cartella in cui volete cercare (con File System cercherete in TUTTO l'HDD) e date il via alla ricerca.
In pochi minuti (ovviamente tutto dipende dalla quantità di file tra cui cercare!) avrete i vostri risultati senza il minimo sforzo. Facile e veloce ;D

Per installare catfish su Archlinux date da terminale:
sudo pacman -S catfish
Su Ubuntu invece:
sudo apt-get install catfish
Lo troverete quindi sotto il menù Accessori.

martedì 16 agosto 2011

SpiderOak: l'alternativa, perfino migliore, a Dropbox!

Oggi vi voglio parlare di SpiderOak, un servizio di cloud storage che nulla ha da invidiare al ben più famoso Dropbox, anzi!
Innanzitutto rispetto a Dropbox che tanto è stato criticato per la sua sicurezza, SpiderOak presenta un sistema di criptaggio dati che impedisce perfino agli stessi dipendenti dell'azienda di poter accedere ai vostri file: questo significa che qualsiasi cosa accada, soltanto voi (o comunque soltanto con i vostri username e password) potrete accedere ai vostri file decriptati.
Anticipato questo, ciò che sono i punti di forza di SpiderOak sicuramente sono nella gestione del programma principale: in Dropbox una volta installato scegli quali cartelle sincronizzare e punto. In SpiderOak invece avrete un'interfaccia suddivisa in varie tab tra cui potrete gestire di tutto:

  • STATUS: da questa tab potrete tenere sotto controllo le operazioni attuali che sta compiendo il programma, suddivise per Backup, Sync e Share. Potrete anche cambiare la frequenza di ogni azione per ciascuna categoria.
  • BACKUP: da questa tab potrete scegliere una o più cartelle da tenere sincronizzate tra il computer in uso e il server di SpiderOak. Avrete accesso alla cartelle basilari (Scrivania, Musica, Video, Documenti, ecc...) com'anche ad una visualizzazione avanzata in cui potrete navigare in qualsiasi cartella del vostro Hard Disk.
  • VIEW: da questa tab potrete visualizzare ciò che è presente sul server di SpiderOak, ossia tutto ciò che avete backuppato in precedenza. Potrete scaricare i file o unirli in altri processi di backup/sincronizzazione.
  • SYNC: da questa tab potrete scegliere una o più cartella da tenere sincronizzate tra vari computer e il server. A differenza dell'opzione di Backup i file verranno tenuti sincronizzati tra vari PC (o device mobili), nel senso che se cancellate un file dalla cartella di uno dei PC in sincronia allora il file verrà eliminato da tutti gli altri PC automaticamente. In pratica quello che Dropbox fa di default, solo che qui è "una scelta", non un obbligo.
  • SHARE: da questa tab potrete attivare la condivisione pubblica di una cartella a vostra scelta con tutte le conseguenti impostazioni che potete gestire.
Oltre a queste tab principali, il programma vi mette a disposizione anche varie funzioni di visualizzazione log e statistiche del vostro account.
Ma oltre al fantastico programma principale c'è anche l'interfaccia Web che è davvero chiara e ben fatta da cui potrete accedere a tutti i file che avete backuppato sul server SpiderOak.
Altre cose da segnalare che mi ricordo al momento è che SpiderOak è totalmente multipiattaforma (funge su Windows, Linux e MAC), ha applicazioni anche per il mondo mobile (iOS, Android e Maemo) e infine, tramite il codice promozionale worldbackupday (da inserire all'iscrizione), potrete avere ben 5GB di spazio online gratuito invece dei soliti 2!

Detto tutto questo non mi resta che lasciarvi il link della home page da cui scaricare questo ottimo programma che vi consiglio vivamente (soprattutto se usate già il peggiore Dropbox!): http://www.spideroak.com

lunedì 15 agosto 2011

PHP: gestire l'upload di immagini

Primo minitutorial sul PHP (che ahimé ultimamente mi trovo a dover utilizzare sempre più spesso xD), vediamo come gestire l'upload di immagini.
Tralasciando la parte dedicata al form per l'upload che non ci interessa per lo scopo di questo tutorial, passiamo subito al codice.
Direi di cominciare subito con un bel controllo sulla validità della richiesta:
if (is_uploaded_file($_FILES['image']['tmp_name']))
{
...
}
Ovviamente al posto di 'image' ci và il valore del campo "name" che avete usato nel form di upload ;)
Ma a cosa serve questo controllo? Beh, presto detto: la funzione is_uploaded_file ritorna come valore TRUE se la richiesta di upload è stata effettuata via HTTP POST. Che significa questo in parole povere? Che in questo modo vi assicurate che un utente malintenzionato non stia cercando, invece di uppare una innocua immagine, di inserire del codice maligno sul vostro server.
È un semplice controllo di "sicurezza" quindi, ma vi consiglio SEMPRE di usarlo. Il web è pieno di gente con cattive intenzioni :P

Dopo questo controllino di sicurezza direi che possiamo andare a prendere i primi dettagli sulla immagine che si vuole uppare. Perché fare questo? Beh, ad esempio possiamo voler limitare l'upload solo a un particolare tipo di immagini escludendo certi altri (GIF, PNG, BMP, JPEG, ecc...), oppure potremmo voler limitare l'upload a immagini di dimensioni minori di un certo TOT di byte, oppure ancora limitare l'upload a immagini non più larghe di un TOT di pixel, e via dicendo.
Vediamo il primo controllo:
if (($_FILES['image']['size'] < (5*1024*1024)) { ... }

Tramite questo semplice controllo possiamo gestire il "peso massimo" che deve avere il file. Nell'esempio sopra il massimo è 5MB ma naturalmente potete impostarlo come e quanto vi pare.
Come potete notare rispetto a prima è cambiato il secondo termine dell'array $_FILES: infatti è grazie al campo 'size' che possiamo ottenere la dimensione in byte del file che stiamo cercando di uppare.

Adesso vediamo un nuovo controllo:
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
if (($width > 640) || ($height > 480)) {
...
}
In questo esempio abbiamo preso le informazioni sull'immagine con la prima riga e subito dopo abbiamo controllato che l'immagine sia minore di 640x480px.
All'interno dell'IF sopra va inserito il codice che si vuole usare nel caso in cui l'immagine SUPERI le dimensioni consentite (nell'esempio appunto 640x480).

Ora controlliamo il tipo d'immagine:
list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
if (($type!=1) && ($type!=2) && ($type!=3)) {
...
}
In questo esempio controlliamo che l'immagine appartenga ai primi tre tipi di immagini supportati dal PHP. Anche qui all'interno dell'IF va inserito il codice da eseguire nel caso l'immagine che si sta tentando di uppare NON sia in uno dei suddetti 3 formati.
I formati consentiti dal PHP per le immagini sono:
[IMAGETYPE_GIF] => 1
[IMAGETYPE_JPEG] => 2
[IMAGETYPE_PNG] => 3
[IMAGETYPE_SWF] => 4
[IMAGETYPE_PSD] => 5
[IMAGETYPE_BMP] => 6
[IMAGETYPE_TIFF_II] => 7
[IMAGETYPE_TIFF_MM] => 8
[IMAGETYPE_JPC] => 9
[IMAGETYPE_JP2] => 10
[IMAGETYPE_JPX] => 11
[IMAGETYPE_JB2] => 12
[IMAGETYPE_SWC] => 13
[IMAGETYPE_IFF] => 14
[IMAGETYPE_WBMP] => 15
[IMAGETYPE_JPEG2000] => 9
[IMAGETYPE_XBM] => 16
[IMAGETYPE_ICO] => 17
[IMAGETYPE_UNKNOWN] => 0
[IMAGETYPE_COUNT] => 18


E adesso direi che con i controlli possiamo finirla qui, dovremmo aver soddisfatto un po' tutte le eventuali limitazioni che un normale servizio di hosting possa imporre.
Uppiamo quindi la nostra immagine!
if (!move_uploaded_file($_FILES['image']['tmp_name'], $_FILES['image']['name'])) {
...
}
Nel codice sopra andiamo ad uppare l'immagine salvandola sul server con il nome (compreso di estensione!) che ha il file della vostra immagine sul vostro PC.
All'interno dell'IF va inserito il codice da eseguire nel caso l'upload NON vada a buon fine.

Finito, come avete potuto leggere non è così complesso come sembra ;)

domenica 14 agosto 2011

Archlinux: miniguida all'uso di Pacman e Yaourt

Passando da Ubuntu a Archlinux la prima cosa di cui si sente subito la mancanza è apt.
Ma niente paura: Archlinux ha alcuni dei migliori tool per la gestione dei repository che nulla hanno da invidiare al collega ubuntiano! Stiamo parlando di pacman (abbreviazione di package manager) e yaourt (abbreviazione di Yet AnOther User Repository Tool).
I due programmi si comportano allo stesso modo di apt su Ubuntu e ci permetteranno di gestire i nostri pacchetti senza alcuna complicazione. Ma vediamo un po' di comandi principali!

Per quanto riguarda pacman, questi sono i comandi "principali":
pacman -U pacchetto.pkg.tar.xz
Installa il programma "pacchetto.pkg.tar.xz" dal vostro Hard Disk.
pacman -S pacchetto
Installa il programma prendendolo dai Repository ufficiali.
pacman -Sy pacchetto
Come il comando sopra ma in più aggiorna i Repository prima di installare il programma (in modo da installare l'ultima versione disponibile del programma).
pacman -Syu
Aggiorna i Repository e installa gli eventuali aggiornamenti disponibili per i programmi attualmente installati sul vostro PC.

E con questo concludiamo il comparto relativo all'installazione e aggiornamento dei pacchetti.
Vediamo ora alcuni comandi utili per la loro rimozione:
pacman -Sc
Ripulisce la cache rimuovendo i programmi scaricati ma non attualmente installati sul PC.
pacman -Scc
Ripulisce la cache rimuovendo tutti i programma scaricati.
pacman -R pacchetto
Disinstalla dal PC il programma.
pacman -Rs pacchetto
Disinstalla dal PC il programma e in più anche tutte le eventuali sue dipendenze che dopo la disinstallazione del programma principale ormai non servono più.
pacman -Rc pacchetto
Disinstalla dal PC il programma eliminando anche tutti gli eventuali programmi che lo richiedono come dipendenza.
pacman -Rn pacchetto
Disinstalla il programma rimuovendo anche i backup delle sue configurazioni (i file .pacsave per intenderci).
pacman -Rns pacchetto
In un colpo effettua le operazioni dei comandi -Rn e -Rs assieme.

E questo è tutto per quanto riguarda la rimozione/pulizia dei programmi.
Chiudiamo con pacman analizzando alcuni comandi per la ricerca:
pacman -Ss pacchetto
Cerca il programma all'interno dei Repository ufficiali.
pacman -Qs pacchetto
Cerca il programma tra quelli attualmente installati sul PC.
pacman -Qi pacchetto
Cerca informazioni per il programma prescelto.
pacman -Qdtq
Cerca tutti i programmi ormai non più utili (ossia non richiesti da nessun altro programma).
Per quest'ultimo comando esiste una variante unica per la ricerca e l'eliminazione dei suddetti programmi inutili. Il comando è:
pacman -Rsn $(pacman -Qdtq)

E con questo abbiamo finito la lista dei comandi "principali" di pacman.
Passiamo ora a yaourt... tranquilli, non c'è un'altra lunga lista di comandi da dover ricordare xD Infatti yaourt è identico a pacman, ossia utilizza la stessa sintassi. Questo significa che potete usare gli stessi comandi sopra per ottenere i medesimi risultati ;)
Ovviamente l'unica differenza è che mentre tutte le operazioni di pacman attingono i programmi soltanto dai Repository ufficiali, yaourt attinge inoltre anche da AUR, il Repository non ufficiale mantenuto dalla community di Archlinux. Ma proprio per tale ragione presenta anche 2 comandi in più rispetto a pacman, che sono:
yaourt -Syua
Aggiorna tutti Repository compreso AUR e installa eventuali aggiornamenti disponibili per i programmi attualmente installati sul PC.
yaourt -Syu --devel
(Prima di devel ci sono 2 trattini e non uno come erroneamente riporta Wordpress).
Installa tutti gli aggiornamenti disponibili per i programmi compilati da sorgenti SVN/CVS/HG/GIT attualmente installati sul PC.
yaourt -Qma
Elenca tutti i programmi attualmente installati sul PC provenienti da AUR.
yaourt --stats
Visualizza le statistiche su tutti i programmi attualmente installati sul PC provenienti da AUR.

Tutto qui ;D
Il mio consiglio quindi è di utilizzare direttamente yaourt visto che in pratica è un "pacman plus", ossia un pacman con funzioni aggiuntive. Inoltre, cosa molto importante, yaourt non richiede di essere avviato da root (anche se durante l'utilizzo ovviamente vi chiederà la password di root per effettuare installazioni/aggiornamenti/rimozioni dei pacchetti) al contrario di pacman.

sabato 13 agosto 2011

GUIDA: come leggere GRATIS la Gazzetta dello Sport e il Corriere della Sera su iPad legalmente!


Ebbene si, oggi totalmente per caso (come avvengono di solito le maggiori scoperte del mondo xD) ho scoperto che esiste un FAIL grosso come una casa nell'app per iPad della Gazzetta dello Sport che vi permetterà di leggere il giornale GRATUITAMENTE senza sottoscrivere alcun abbonamento o cacciare un solo Euro. Il bello è che, dopo una rapida ricerca sul web, pare che nessun altro l'abbia mai scoperto prima lol

Riassunto in 2 parole (per chi non vuole subirsi tutta la lunga guida che sto per scrivere xD) in pratica l'app scarica in background l'intero giornale anche se a voi poi per visualizzare dalla seconda pagina in poi vi richiede l'abbonamento. Quindi basta navigare all'interno delle cartelle dell'app (ossia dove scarica TUTTO il giornale) e leggere i PDF con un qualsiasi altro lettore. Facile, veloce e gratuito. Oltre che legale penso, visto che è l'app stessa a scaricare quel giornale, voi non fate nulla XD
Ma passiamo ora alla guida dettagliata!

AGGIORNAMENTO: attenzione, è stato testato che il metodo funziona anche con l'applicazione ufficiale del Corriere della Sera! :D
Il metodo da seguire è lo stesso che vi mostrerò qui sotto per la Gazzetta ;)


Necessario:

-Un Ipad (funziona solo su iPad il metodo, infatti su iPhone scarica solo in parte il giornale!) con Jailbreak
-L'applicazione ufficiale della Gazzetta dello Sport Digital Edition
-L'applicazione homebrew iFile

Preparazione:
1. Installate l'app della Gazzetta sul vostro iPad scaricandola dall'App Store (è gratuita!).
2. Installate l'app iFile scaricandola da Cydia (è gratuita in versione Trial!).

Procedimento:
1. Avviate l'app della Gazzetta dello Sport e vi apparirà la prima pagina del quotidiano odierno. Come potete subito testare con mano solo la prima pagina è visionabile gratuitamente, infatti se provate a girare pagina otterrete una finestra in cui vi chiede di fare un abbonamento:

2. Voi allora tornate alla prima pagina e tenete d'occhio l'indicatore di rete in alto a sinistra nella barra:

3. Aspettate che scompaia del tutto (rimarrà attivo per qualche minuto, in pratica sta scaricando tutto il giornale, è questo il grande fail xD):

4. Una volta scomparso potete chiudere l'app e avviare iFile. Dalla barra laterale scegliete la voce Applicazioni:

5. Ora cliccate sull'icona ad ingranaggio a sinistra nella barra in basso, vi apparirà una finestrella con le opzioni, attivate la voce Nomi Applicazioni:

6. A questo punto navigate fino a trovare la cartella dell'app intitolata appunto Gazzetta:

7. Una volta trovata, entrate dentro la cartella Documents, poi in quella intitola pdfs e infine in quella intitolata GAZZETTAFC_NAZIONALE_WEB e a questo punto dovreste vedere una serie di cartelle intitolate con delle date:

8. Entrate nella cartella corrispondente al giorno in cui avete visionato la prima pagina del giornale nell'app ufficiale e vi troverete una miriade di file (saranno un JPG, un XML e un PDF alternati):

9. I file PDF che trovate lì sono esattamente le pagine del giornale di cui nell'app ufficiale avete visto solo la prima pagina :D
Potete aprirli e leggerli senza problemi direttamente da iFile come da figura:

E adesso potete godervi il vostro giornale COMPLETO, zoomare e leggerlo proprio come se lo aveste comprato xD


Altre screenshot:





Scoperta, guida e immagini interamente a cura del sottoscritto ;)

lunedì 8 agosto 2011

iPad: gestire il terminale direttamente da PC

Ed ecco la seconda miniguida: stavolta vedremo come usare il terminale dell'iPad senza dover usare programmi aggiuntivi sul device (tipo Mobile Terminal) ma usando il PC.
Ovviamente l'utilità di una simile configurazione sta principalmente nella programmazione, in quanto potremo compilare i nostri programmi su iPad direttamente da PC, oltre che poter fare qualsiasi funzione che richieda un terminale. Non ci saranno limiti insomma! ;D

Innanzitutto dovete avere un iPad con Jailbreak poiché dovete installare OpenSSH (disponibile soltanto in Cydia).
Una volta installato dovete soltanto prendere l'indirizzo IP del vostro iPad (Impostazioni -> WIFI -> e cliccate sulla freccina blu accanto al nome della vostra connessione WiFi) poiché il programma resta sempre avviato in background.
Su PC invece abbiamo bisogno di putty: su Archlinux (ma penso anche su Ubuntu) è tutto disponibile da terminale, quindi installiamo dando un semplice:
sudo pacman -S putty
O su Ubuntu:
sudo apt-get install putty
Dopidiché apriamo un terminale e digitiamo:
putty -ssh IndirizzoIP
con ovviamente l'indirizzo IP del vostro IP al posto della stringa sopra.
Tutto qui, adesso saremo collegati con il terminale dell'iPad!

Nota finale: da quel che leggo in giro bisogna disattivare l'AutoLock dell'iPad altrimenti, nel momento in cui la periferica si blocca potrebbe interrompersi la connessione col PC.

iPad: gestire i file sul dispositivo da PC tramite SSH

Oggi vi metto 2 miniguide sull'iPad (ma valide ovviamente per ogni iDevice, sia esso iPhone, iPod o chissà quale altra diavoleria). In questa prima analizzeremo come scambiare file con il nostro iPad tramite collegamento SSH.
Innanzitutto ci servirà un iPad con Jailbreak poiché, come prima necessità, ci servirà il programma OpenSSH che potrete installare soltanto da Cydia (l'app store alternativo della community).
Una volta installato OpenSSH sul versante iPad abbiamo già finito: infatti il programma resta attivo di default di background, quindi non dobbiamo toccare più nulla.

Adesso su PC installiamo Filezilla (si, proprio il classico e famoso client FTP, infatti pochi sanno che oltre al protocollo FTP Filezilla gestisce anche il protoccolo SFTP, quello che useremo noi!).
Adesso in Filezilla aggiungiamo una nuova connessione (File -> Gestore Siti -> Nuovo Sito), come nome dategli quello che vi pare (es. iPad) e impostate i parametri di connessione (nella zona a destra) come segue:
  • Host: Indirizzo IP dell'iPad (lo trovate andando in Impostazioni -> WIFI -> e cliccando sulla freccina blu accanto al nome della vostra connessione WiFi.)
  • Porta: Lasciare vuota
  • Protocollo: SFTP - SSH File Transfer Protocol
  • Tipo di accesso: Normale
  • Utente: root
  • Password: alpine (o se l'avete cambiata quella che avete messo voi)
Ora cliccate sulla linguetta "Impostazioni di trasferimento" e spuntate la voce "Limita il numero di connessioni simultanee" impostandola su 1.

Finito, date l'ok per salvare. D'ora in poi nella finestra Gestore Siti comparirà la nuova connessione e voi dovrete solo selezionarla e cliccare su Connetti.
Tutto qui, adesso potete navigare fra le cartelle e trasferire i file sul vostro iPad senza limiti, proprio come se steste gestendo il vostro server Internet via FTP!

lunedì 1 agosto 2011

Archlinux: installare e configurare la propria stampante con cups

In Archlinux c'è davvero da scegliersi ogni minima cosa e per tale ragione nulla lo si trova già pronto: stesso discorso per il supporto alla stampa, che dovremo configurarci da soli, come piace tanto a noi XD
Innanzitutto installiamo tutto il necessario. Da terminale digitiamo:
sudo pacman -S cups
Adesso inizia la personalizzazione vera e propria: infatti, a seconda di quale stampante vogliate configurare, dovete installare dei software diversi. Proverò a elencarli un po' tutti dandovi la spiegazione per ogni pacchetto.
  • Pacchetti ghostscript e gsfonts: da installare nel caso vogliate il supporto PostScript (consigliato!).
  • Pacchetto hpoj: se si utilizza una HP Officejet, si dovrebbe installare anche questo pacchetto!
  • Pacchetto samba: se il sistema è collegato ad una stampante di rete utilizzando il protocollo Samba per l'appunto o se il sistema deve essere un server di stampa per i client Windows, allora dovete installare anche questo.
  • Pacchetto gutenprint: na raccolta di driver di alta qualità per stampanti Canon, Epson, Lexmark, Sony, Olympus, e PCL per l'utilizzo con GhostSscript, CUPS, Foomatic, e GIMP
  • Pacchetti foomatic-db, foomatic-db-engine, foomatic-db-nonfree e foomatic-filters: Foomatic è un sistema basato su database per l'integrazione di driver liberi di stampanti con spooler comune in ambiente Unix. L'installazione di foomatic-filters dovrebbe risolvere eventuali problemi se gli errori nei log riportano "stopped with status 22!".
  • Pacchetto hplip: Driver GNU/Linux per HP inkjet. Fornisce supporto per le serie DeskJet, OfficeJet, Photosmart, Business Inkjet ed alcuni modelli LaserJet.
  • Pacchetto splix: Driver Samsung per stampanti SPL (Samsung Printer Language).
  • Pacchetto ufr2: Driver Canon UFR2 con supporto per le stampanti serie LBP, iR e MF. Il pacchetto è disponibile su AUR, quindi per installarlo invece di pacman dovete usare yaourt!
  • Pacchetto cups-pdf: Un pacchetto che permette di configurare una stampante PDF virtuale e che genera un file PDF dai dati ricevuti in modo automatico.
Naturalmente per installare uno o più di questi pacchetti basta usare pacman.
Se non sapete quale usare o ne avete installato uno e la vostra stampante non funziona bene, potete sempre installarli tutti senza problemi di sorta.
Per farlo digitate da terminale:
yaourt -S ghostscript gsfonts gutenprint foomatic-db foomatic-db-engine foomatic-db-nonfree foomatic-filters hplip splix ufr2 cups-pdf samba hpoj

Una volta installato il software si passa alla configurazione.
Sul versante stampanti-USB c'è una diversa voce di pensiero, chi dice che sia necessario blacklistare il modulo usblp per farle funzionare correttamente, chi dice di no. Io vi mostrerò il procedimento per blacklistarlo, in caso abbiate problemi basta "annullare" i procedimenti che faremo di seguito. Ovviamente se dovete configurare una stampante Wireless (come la mia) non c'è bisogno di questo passaggio, valido quindi solo per le stampanti USB!
  • Aprite il file /etc/rc.conf (vi serviranno di permessi di root!).
  • Aggiungete nell'array MODULES il valore !usblp in modo che l'array sia tipo MODULES=(... !usblp ...) (con al posto dei puntini altri moduli!).
Tutti qui per quanto riguarda le stampanti USB.

Passiamo ora alle stampanti collegate sulla porta parallela (ne esisteranno ancora? XD).
Dobbiamo inserire dei moduli da caricare stavolta (e non da non caricare come fatto per le USB!).
Quindi stesso procedimento di prima, aprite il file /etc/rc.conf e all'array MODULES aggiungete i seguenti moduli lp parport parport_pc in modo da ottenere qualcosa di simile: MODULES=(... lp parport parport_pc ...) (con al posto dei puntini altri moduli!).

Adesso, qualsiasi sia il modello della vostra stampante, dobbiamo fare in modo che il demone CUPS si avvii in automatico all'avvio.
Per fare ciò apriamo il solito file /etc/rc.conf, cerchiamo stavolta l'array DAEMONS e aggiungiamo cupsd in modo da ottenere qualcosa di simile: DAEMONS=(... cupsd ...) (con al posto dei puntini altri demoni!).
Ora creiamo il gruppo lpadmin e aggiungiamoci il nostro nome utente. Per farlo da terminale digitate:
sudo groupadd lpadmin
sudo usermod -aG lpadmin USERNAME
con al posto di USERNAME il nostro nome utente.
Adesso modifichiamo un paio di cose nel file di configurazione di cups.
Aprite (con permessi da root) il file /etc/cups/cupsd.conf e cercate la voce "LogLevel" impostandola su debug (quindi avrete LogLevel debug).
Cerchiamo (sempre nello stesso file) la voce "SystemGroup" (di preciso dovrebbe essere SystemGroup sys root) ed aggiungiamo lpadmin alla fine (diventerà quindi SystemGroup sys root lpadmin).

Perfetto, fatto tutto ciò riavviamo il PC e adesso possiamo configurare la nostra stampante.
Sotto il menù Accessori (o Sistema) dovrebbe comparire il programma adibito per la nostra stampante (a me per esempio essendo una HP e avendo installato hplip, sotto il menù Accessori è comparso il software HP Device Manager da cui, seguendo le istruzioni, ho configurato la mia stampante wireless).
In caso però non compaia potete sempre usare una piccola utility, digitando da terminale:
sudo pacman -S system-config-printer-gnome
Adesso (di solito sotto il menù Sistema) avrete il classico software "Stampa" (o "Gestione Stampa" non ricordo di preciso) semplicissimo per configurare qualsiasi stampante. Ovviamente questa utility può andare bene su Gnome o Xfce, su KDE invece vi consiglio di usare il Centro di Controllo per configurare la vostra stampante.

Tutti qui, se avete problemi o volete maggiori info potete fare sempre riferimento alla pagina ufficiale della Wiki di Archlinux QUI.