Ubuntu – Crash con click multipli su l’icona del launcher

Pubblicato il Scritto il da

Crash con click multipli su l’icona del launcher di un programma con più sessioni avviate

Unity logo
Unity logo

Continua la mia avventura professionale in Ubuntu/Unity. Devo ammettere che non è così poco soddisfacente come credevo, Kubuntu/KDE resta comunque il mio preferito.

A causa del gran numero di Java appplication che dovevo avviare sul mio portatile, 8 GB di RAM iniziavano ad essere stretti.

Volevo limitare alcuni effetti grafici di Unity non essenziali, così ho iniziato a giocare un po’ con Unity tweak tool, ma ho fatto dei danni. In particolare il DE si freezzava e crashava quando cliccavo nel launcher sull’icona di un programma attualmente in foreground.
La situazione cominciava ad essere molto scomoda. Pur conoscendo il problema (bug riconosciuto), non di rado accidentalmente mi capitava di scontrarmi con il crash.

Googlando e provando soluzioni varie, ho infine trovato quella che mi ha risolto il problema. Vediamo cosa ho fatto:

  • Installare il tool dconf:
    sudo apt-get install dconf-tools
  • Effettuare il reset di Compiz (odio questo composer grafico dai tempi in cui andava a braccetto con Emerald):
    dconf reset -f /org/compiz/
  • Riavviamo Unity:
    setsid unity

Una volta rieffettuato il login, il problema non si è più presentato!

Buon fix! 😉

Ubuntu – Modificare formato ora

Pubblicato il Scritto il da

Negli ultimi tempi ho dovuto utilizzare Ubuntu e la sua poco comoda Unity.
Essendo un vecchio utilizzatore di Kubuntu, l’adattamento al desktop environment “ufficiale” di Canonical non è stato facile.

Sto cercando di modellare il workspace alle mie esigenze ed una parte fondamentale è la visualizzazione della data e dell’ora.
Vediamo come modificarne il formato nella barra superiore, o “indicators”:

  • Installare dconf-editor:
    sudo apt-get install dconf-tools
  • Avviare dconf-editor e navigare in com > canonical > indicator > datetime
  • Selezionare il valore “custom” per la chiave “time-format
  • Nel caso in cui desiderate una visualizzazione di questo tipo: GG/MM/AAAAA – HH:MM, allora settate il valore di custom-time-format a “%d/%m/%G – %H:%M %p
dconf-tool
dconf-tool

Per una completa descrizione dei possibili valori utilizzabili vi consiglio questa pagina.

Buon setting a tutti! 😉

Installare XDebug in Ubuntu 14.04

Pubblicato il Scritto il da

XDebug, puoi solo amarlo od odiarlo, nessuna via di mezzo purtroppo.
Il noto debugger non è sicuramente un condensato di stabilità ed usabilità, ma di certo è l’unica alternativa free per migliorare i nostri sviluppi in PHP.

E ‘abbastanza facile installarlo su Ubuntu, vediamo come fare. Prima di tutto da console, lanciare il seguente comando:

sudo apt-get install php5-xdebug

Il quale installerà l’ultima versione, al momento della stesura di questo post è la 2.2.3. Ora aggiornare le opzioni in /etc/php5/apache2/php.ini:

# XDebug
 zend_extension="/usr/lib/php5/20121212/xdebug.so"
 xdebug.remote_enable=1
 xdebug.remote_handler=dbgp
 xdebug.remote_mode=req
 xdebug.remote_host=127.0.0.1
 xdebug.remote_port=9000
 xdebug.max_nesting_level=300

Riavviate Apache2:

sudo service apache2 restart

Ed il gioco è fatto. Buon debugging!

OAuth – Autorizzazione sicura

Pubblicato il Scritto il da

Almeno così dicono! 😛

OAuth logo

Cos’è

E’ un protocollo aperto che permette ad applicazione di terze parti di accedere a informazioni protette di utenti iscritti ad un portale, service provider, Facebook, etc…
Il tutto senza utilizzare le credenziali di accesso dell’utente.

Chi lo usa

  • Google
  • Facebook
  • Twitter
  • …chi altro?

Come funziona

Non è facile raccontare come funziona con parole semplici e senza perdere il filo del discorso, ci proverò.

Tre sono in soggetti che entrano in gioco con OAuth:

  • Service Provider (SP): Google, Facebook, Twitter…
  • Applicazione di terze parti (AT): sito web, mobile application, desktop application che vuole offrire un servizio legato ad un (SP)
  • Utente (U): il quale vuole accedere a (AT).
Diamo inizio alle danze:
  1. (U) accede a (AT)
  2. (AT) ridirige (U) verso (SP)
  3. (U) accede a (SP) utilizzando le proprie credenziali
  4. (SP) chiede a (U) se (AT) può accedere ai suoi dati
  5. (U), come l’uomo del monte, dice: “Sì”
  6. (SP) comunica a (AT) che può accedere ai dati di (U)
Semplice! Come potete notare ora (AT) ha accesso ai dati protetti di (U) senza aver avuto a che fare con le su credenziali di accesso a (SP).
Nella prossima è puntata, con un esempio pratico, introdurremo alcuni termini come application ID, application secret, access token.
Buona autenticazione! :)

Facebook – Introduzione alle Graph API

Pubblicato il Scritto il da

Cose necessarie:

  • ID dell’utente
  • Access token
  • CURL installato nel nostro server
Procurarsi un access token
https://www.facebook.com/dialog/oauth?client_id=xxx&redirect_uri=xxx&response_type=token&scope=create_event

http://www.venetotornei.com/#access_token=xxx&expires_in=4101

https://graph.facebook.com/xxx?access_token=xxx
<?php
$userID = "XXX"; // Può essere me o un numero
$accessToken = "XXX";
$update_url = "https://graph.facebook.com/".$userID."/events";
$form_fields = array(
	"access_token" => $accessToken,
	"start_time" => time() + (7 * 24 * 60 * 60),
	"end_time" => time() + (8 * 24 * 60 * 60),
	"location" => "someplace",
	"name" => "New Test Event Using Graph API"
);

$temp = array();

foreach( $form_fields as $key => $value )
	$temp[$key]=utf8_encode($value);

$form_data = http_build_query($temp);

$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, $update_url);
curl_setopt ($curl, CURLOPT_POST, 1);
curl_setopt ($curl, CURLOPT_POSTFIELDS, $form_data);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

$result = json_decode(res.content);

if ($result["id"]!==false)
   echo "Successfully Created Event";
else
   echo "Failure";

?>

E come sempre: scusate la rozzezza del codice.

Buona “developpata”! 😉

Lenovo B50 – Come accedere al BIOS e non solo

Pubblicato il Scritto il da

Se siete dei fortunati possessori di un Lenovo serie B50 (LOL) probabilmente vi sarete chiesti quali sono le combinazioni di tasti per accedere al BIOS o al menù di boot.
Vediamo un po’ come fare.

Accedere al BIOS

Premere Fn+F2 subito dopo la comparsa a schermo del logo di Lenovo. Qualche volta è necessario premere più volte questa combinazione di tasti per accedere ai settaggi di UEFI.

Accedere al boot menù

Premere Fn+F12 subito dopo la comparsa a schermo del logo di Lenovo.

Semplice no? 😉
Buon BIOS a tutti!

[Linux] Rinominare le foto RAW per data

Pubblicato il Scritto il da

Il formato RAW è un formato non compresso (senza perdita di qualità) per la memorizzazione delle fotografie.
E’ presente in molto fotocamere digitali professionali e amatoriali.
Questo tipo di formato, oltre a memorizzare la fotografia, può contenere altri informazioni utili ai fotografi: i dati EXIF.

Canon 600D

Grazie ai dati EXIF (Exchangeable image file format) possiamo sapere per ogni singola foto:

  • la lunghezza focale
  • l’apertura del diaframma
  • i tempi
  • la data e l’ora dello scatto

Quest’ultimo dato potrebbe tornare utile per rinominare le nostre foto con la data e l’ora di quando abbiamo scattato la nostra foto, vediamo come.
Prima di tutto dovrete scaricare il exiftool un tool disponibile per diverse piattaforme, scritto in Perl, che permette di leggere, scrivere e editare le meta informazioni presenti in molti tipi di file.
Installare il tool da riga di comando è semplicissimo:

sudo apt-get install libimage-exiftool-perl

Al termine dell’installazione spostiamoci nella cartelle che contiene le fotografie che vogliamo rinominare e lanciamo il comando:

 exiftool '-filename<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%le -r -ext cr2 -ext mrw .

Il quale rinominerà tutti i file con estensione cr2  (il formato RAW delle fotocamere Canon) nel formato AnnoMeseGiorno_OraMinutiSecondi-id, dove id è un valore incrementale, utile nel caso in cui abbiamo scattato una raffica di foto, magari per riprendere una sequenza sportiva.

Semplice no? 😉

Buona fotografia a tutti!

FRODE AGENZIA ENTRATE

Pubblicato il Scritto il da

Ciao a tutti, oggi vi scrivo poiché dovete fare molta attenzione ad una mail che sembra arrivare dall’agenzia delle entrate, che vi dice che avete diritto ad un rimborso, è UN FRODE se fate attenzione al mittente vedrete che arriva dalla Russia  RU, se voi cliccate il link siete…….avete capito.

Posto immagine della mail cosi non ci cascate.

MySQL – Tuning Database

Pubblicato il Scritto il da

Capita di trovarsi a gestire un gran quantitativo di dati in una o più tabelle, confrontandosi di conseguenza con le performance del proprio database.

Il mio gran quantitativo di dati corrispondeva a circa 600.000 righe (300 MB) tutte stipate in un’unica tabella. Questo mi hanno portato ad avere tempi di inserimento molto lunghi, con conseguenti cadute di velocità anche in lettura.

Quello che vediamo in questo post non è un vero e proprio tuning, ma una serie di passi (intelligenti??) per ottimizzare i nostri dati. Non metteremo mano ai file di configurazione di MySQL, anche se vi consiglio un buon tool online che vi propone un file my.conf in base alle vostre esigenze: Percona. ATTENZIONE! Effettuate sempre dei backup prima di modificare questi file.

Vi racconto la mia storia
Avevo una tabella con più di 600.000 record, non ottimizzata, non deframmetata e con dati molto vecchi e non più utilizzati.
Uno script giornaliero, che effettuava inserimenti massivi su tale tabelle, aveva raggiunto tempi di esecuzione molto elevati: più di 5 ore.
Durante l’esecuzione dello script dovevo mantenere accettabile anche le letture dei dati e non è bastato avvalersi di un provider con dischi SSD, come Digital Ocean, per sopperire al problema.

Dopo una breve analisi e un po’ di tentativi ecco quali accortezze ho implementato:

  • Passaggio delle tabelle da MyISAM a InnoDB (+)
  • Rimozione dei dati vecchi e non più utilizzati (++)
  • Ottimizzazione delle tabelle con la seguente query (++):
    OPTIMIZE TABLE nome_tabella
  • Deframmentazione della tabelle con la seguente query (+++):
    ALTER TABLE nome_tabella ENGINE=INNODB

Risultato finale
Numero di righe: 240.000
Spazio occupato dalla tabella: 125 MB
Tempo di esecuzione dello script: 1 ora e 31 minuti

Che dite? Non male.

Conclusioni
Nel mio caso ho dovuto schedulare queste operazioni con cadenza giornaliera, altrimenti nel giro di una settimana mi sarei ritrovato nella pessima condizione iniziale.

Buon tuning a tutti! 😉

Linux – Visualizzare un file di log in tempo reale sullo schermo

Pubblicato il Scritto il da

Oggi mi pongo la seguente domanda: come faccio a vedere l’aggiornamento del file di log in tempo reale?

Beh! Facilissimo!

Il comando da lanciare in console è:

tail -f /var/log/file.log

Per stoppare l’esecuzione basterà digitare CTRL+C.

Buona visione! 😉