Convertire PDF in jpg

Con ImageMagick è possibile convertire un pdf in immagini. Ciascuna pagina verrà convertita in immagine. Il comando:

convert   document.pdf[0]  prova.png

se il risultato in termini qualitativi non vi soddisfa provate ad utilizzare il parametro density:

convert -density 288  document.pdf[0]  prova.png
Annunci

Symfony, Admin Generator, personalizzare la lista

Symfony Admin Generator crea una action executeList in automatico basandosi sul model di riferimento.

Il comportamento predefinito è quello di recuperare tutti i record (paginandoli). Poi, le operazioni di “filtro” sono demandate all’utente il quale avrà nella parte destra a disposizione i filtri (definiti nella sezione filters).

Se si vuole recuperare fin dall’inizio un sottoinsieme di record (quindi alterando il comportamento di default) è possibile definire quale metodo della classe xxxTable si farà carico della definizione dei parametri di base per la query.

Un esempio pratico: nella lista non si vogliono vedere mai i record relativi ad un determinato status.

Nel file generator.yml nella sezione config list definire il parametro table_method (configurazione per Doctrine):

    config:
      list:
        title:   Suggestion list
        table_method: retrieveBackendSuggestionList

Nella classe Table del Model implementare il metodo definito nella configurazione dal parametro table_method:

public function retrieveBackendSuggestionList(Doctrine_Query $q) {
    $rootAlias = $q->getRootAlias();
    $q->andWhere($rootAlias.".status <> ?", 0);
    return $q;
  }

iPad e User Agent

Mi scrivo questo appunto come promemoria.

Lo User Agent del dispositivo iPad è qualcosa di simile:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; it-it) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10

Flickr va a singhiozzo ?!?!?

Flickr va a singhiozzo ?!?!?

Flickr va a singhiozzo ?!?!?

Symfony e google maps api V3

sfEasyGMap è un plugin per Symfony per utilizzare facilmente le Google Maps.

Questo plugin mette a disposizione Helpers e classi (in Symfony style) che offrono un livello di astrazione sulle API di google.

Il plugin sfEasyGMap che sfrutta le API di Google Maps versione 3 è:

http://svn.symfony-project.com/plugins/sfEasyGMapPlugin/branches/v3/

Admin Generator: definire la action principale

Per definire la action principale in una applicazione Symfony, generata con l’Admin Generator occorre modificare il file di configurazione di routing routing.yml.
Nel file:
apps/backend/config/routing.yml
Modificare e/o aggiungere la sezione homepage:

homepage:
  url:   /
  param: { module: events, action: index }

Dove in questo esempio:

  • backend: è il nome dell’applicazione genarata con l’admin generator;
  • events: è il nome del modulo principale;
  • index: è il nome della action di default.

Infine eliminare la cache affinchè le modifiche risultino attive:

php symfony cc

Youtube e la geolocalizzazione dei video

Google Data API

Youtube Google Data API

Youtube Google Data API

Google fornisce all’utente Web una enorme quantità di servizi quali gestione dei documenti, calendario, mappe. Questi servizi sono fruibili dall’utente finale tramite il proprio Browser Web. Per quanto riguarda gli sviluppatori, Google espone questi servizi in diversi formati:

  • Atom: utilizza il formato Atom per la rappresentazione dei dati e il protocollo HTTP per veicolare l’informazione;
  • JSON: utilizza il formato JSON per la rappresentazione dei dati e il protocollo HTTP per veicolare l’informazione.

In questo modo uno sviluppatore è nelle condizioni di integrare le informazioni gestite dai vari servizi Google nelle proprie applicazioni (Web e/o Desktop).
Le regole da seguire per la gestione di questa comunicazione (interrogazione dei dati, modifica dei dati eccetera) sono definite da un protocollo (fornito da Google), il Google Data Protocol.
Nel dettaglio questo protocollo indica al programmatore come richiamare i servizi (HTTP) e come gestire le risposte dal servizio (XML, JSON).

Quali A.P.I. sono disponibili?

Google mette a disposizione la API Directory nella quale sono elencati tutti i servizi disponibili. Per ciascuna API è presente un link alla guida, e link a Librerie Client.
Le librerie client sono disponibili per ciascuna API in differenti linguaggi di programmazione. Le librerie client forniscono un utile livello di astrazione che facilita la vita al programmatore che non deve occuparsi di gestire le richieste HTTP e le risposte XML/JSON.

YouTube Data API

Le YouTube Data API permettono di integrare le funzionalità offerte da Youtube nel proprio sito Web.
Per i programmatori PHP esiste una ottima guida che illustra come usufruire di ogni singola funzionalità tramite il proprio linguaggio di sviluppo.

PHP e YouTube in Azione

Una ottima libreria PHP client per YouTube è Zend Gdata.Dalla pagina di Zend Gdata è possibile scaricare l’ultima versione della libreria e accedere alla documentazione specifica.

Download Zend Gdata

Scaricare l’ultima versione dal sito:
http://framework.zend.com/download/gdata/
Estrarre l’archivio, ottenendo così 4 directory: demo, documentation, library, tests.
Copiare la directory library nella directory di lavoro. La directory di lavoro conterrà i sorgenti creati e dovrà essere “visibile” al Web Server.
Creare un file (index.php) nella directory di lavoro:

<?php
$clientLibraryPath = 'library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();
$query = $yt->newVideoQuery();
$query->setLocation("45.8529825,9.3900705");
$query->setLocationRadius("5km");
echo $query->queryUrl . "\n";
$videoFeed = $yt->getVideoFeed($query);
$i=0;
foreach ($videoFeed as $videoEntry) {
echo $i++;
echo "---------VIDEO----------<br>";
echo "Title: " . $videoEntry->getVideoTitle() . "<br>";
echo "<img src=\"".$videoEntry->mediaGroup->thumbnail[0]->url."\"><br>";
echo "\nDescription:\n";
echo $videoEntry->getVideoDescription();
echo "<br><hr>";
}

Nel dettaglio, occorre inizializzare l’ambiente in modo che la libreria Zend Gdata sia visibile allo script:

$clientLibraryPath = 'library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');

Per poter definire i parametri di ricerca utilizzare l’oggetto VideoQuery:

$query = $yt->newVideoQuery();
$query->setLocation("45.8529825,9.3900705");
$query->setLocationRadius("5km");

In questo specifico caso, il metodo setLocation serve per definire la latitudine e longitudine dei video geolocalizzati che si vogliono ricercare e il metodo setLocationradius serve per definire l’area (5 kilometri) di ricerca.
Per ottenere l’elenco dei video è sufficiente utilizzare il metodo getVideoFeed:

$videoFeed = $yt->getVideoFeed($query);
%d blogger hanno fatto clic su Mi Piace per questo: