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

Creare molti file PDF di test (macosx)

Mi è capitato di dover creare al volo molti file PDF per testare una applicazione.
In macosx per creare molti file PDF (1000) tramite il terminale (bash) è possibile utilizzare i comandi for , jot, text2pdf:

for i in $(jot - 1 1000); do echo "Questo  file pdf: $i" > file_pdf_$i.txt; text2pdf -o file_pdf_$i.pdf file_pdf_$i.txt; rm file_pdf_$i.txt ; done

Statistiche facebook per un url

Come recuperare informazioni circa:

  • quanta gente ha condiviso un link?
  • quanta gente ha fatto clic su “mi piace”?
  • quanta gente ha commentato un url?
  • quanta gente ha cliccato su un url condiviso?

è sufficiente accedere ad un url come questo:

http://api.facebook.com/restserver.php?method=links.getStats&urls=http://www.google.com

il cui formato di risposta è questo:

<?xml version="1.0" encoding="UTF-8"?>
 <links_getStats_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd" list="true">
   <link_stat>
     <url>http://www.google.com</url>
     <share_count>292957</share_count>
     <like_count>151683</like_count>
     <comment_count>176116</comment_count>
     <total_count>620756</total_count>
     <click_count>265614</click_count>
     <normalized_url>http://www.google.com/</normalized_url>
     <comments_fbid>381702034999</comments_fbid>
   </link_stat>
 </links_getStats_response>

dichiarazione della classe per un oggetto in PHP

Per convenzione quando un oggetto non e’ istanziato in modo esplicito in questo modo:

$oggetto = new Classe();

è possibile dichiarare il tipo di un oggetto con:

/* @var $oggetto Classe */

Così facendo oltre ad avere del codice autodocumentato si mette nelle condizioni il vostro editor (Eclipse o Zend studio … ) di capire il tipo del dato e quindi attivare le varie funzionalità come autocompletamento, accesso ai metodi eccetera.
Questa convenzione è valida in tutti i file php, quindi per esempio anche nei partial e/o template di symfony dove si perde il concetto di tipizzazione degli oggetti.

Abilitare la visualizzazione degli errori in PHP

Mi segno qui, come appunto, due istruzioni semplici che attivano la notifica dettagliata degli errori in PHP:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1); 

Riconoscimento volto con opencv in python

Riconoscimento del volto tramite una Webcam con opencv (python)

opencv, riconoscimento volto

opencv, riconoscimento volto

from opencv import cv as opencv
from opencv import highgui
import sys

print "Inizializzazione webcam"
camera = highgui.cvCreateCameraCapture(-1)
if (camera):
  print "Camera inizializzata"
else:
  sys.exit("Camera NON inizializzata")

im = highgui.cvQueryFrame(camera)
if (im):
  print "Acquisizione FRAME"
else:
  sys.exit("Errore acquisizione FRAME da webcam")

filexml ="haarcascade_frontalface_default.xml"
print "Caricamento file xml:"+filexml
cascade = opencv.cvLoadHaarClassifierCascade(filexml, opencv.cvSize(1,1))
if (cascade):
  print "Caricato"
else:
  sys.exit("Non caricato")
storage = opencv.cvCreateMemStorage(0)
loop = True
while(loop):
  frame = highgui.cvQueryFrame(camera)
  if (frame == None):
    break;
  grayscale = opencv.cvCreateImage(opencv.cvSize(frame.width, frame.height), 8, 1)
  opencv.cvCvtColor(frame, grayscale, opencv.CV_BGR2GRAY)

  faces = opencv.cvHaarDetectObjects(grayscale, cascade, storage, 1.2, 2,opencv.CV_HAAR_DO_CANNY_PRUNING, opencv.cvSize(50,50))
  if faces:
    #print 'face detected!'
    for face in faces:
      opencv.cvRectangle(grayscale, opencv.cvPoint( int(face.x), int(face.y)),
                         opencv.cvPoint(int(face.x + face.width), int(face.y + face.height)),
                         opencv.CV_RGB(127, 255, 0), 2) # RGB #7FFF00 width=2
  highgui.cvShowImage("Finestra", grayscale)
  char = highgui.cvWaitKey(33)
  if (char != -1):
    if (ord(char) == 27):
      loop = False
highgui.cvDestroyWindow("Finestra")

Magento, chiamare un metodo di un block da un template

Da un template, per chiamare un metodo definito nel Block corrispondente è sufficiente utilizzare la parola chiave $this.

Per esempio nel block: Page/Block/Html/Header.php è definito il metodo getWelcome(). Dalla relativa view: template/page/html/header.phtml è possibile invocare il metodo con l’istruzione:

<?php echo $this->getWelcome()?>

Per invocare quello stesso metodo da un file template differente è possibile ricorrere all’utilizzo di getBlockClassName().

Dal file template istanziare il blocco:

$className = Mage::getConfig()->getBlockClassName('page/html_header');
$block = new $className();

In questo modo è possibile chiamare il metodo getWelcome sull’oggetto $block:

<?php echo $block->getWelcome()?>
%d blogger hanno fatto clic su Mi Piace per questo: