Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Semplice guida a jQuery

ottobre 5th, 2009 by Giovanni Caputo

Voglio segnalare a tutti gli sviluppatori una semplice e utile guida per jQuery.

Versione online:

jQuery Visual Cheat Sheet (by WOORK)

Category: Siti Web, Tecnologia | No Comments »

Alcune classi Utili per PHP

settembre 30th, 2009 by Giovanni Caputo

LETTORE PSD

Utilizzo:

<?php
// Send header to client browser
header("Content-type: image/jpeg");
// Includes the requested class
include_once('classPhpPsdReader.php');
// Finally display the PSD on the screen
imagejpeg(imagecreatefrompsd('yourPsdFile.psd'));
?>

Download

Determinare BROWSER

Download

ADOdb

La maggior parte dei siti web usano il database per salvare tutti i dati. ADOdb è una libreria PHP che estrae dal database e supporta MySQL, PostgreSQL, Interbase, Firebird, Oracle, MS SQL e altri.

Download


WPGet

WPGet è una classe PHP che permette facilmente di ottenere infomrazioni da un database di WordPress 2.X. In altre parole permetter di ottenere post, commenti, e altro di un blog WordPress per visualizzarle su un sito non realizzato con questo CMS.
Download

Category: Open Source, Programmazione, Tecnologia, tutorial | No Comments »

Creare file Zip in PHP

settembre 18th, 2009 by Giovanni Caputo

* creates a compressed zip file */
function create_zip($files = array(),$destination = '',$overwrite = false) {
	//if the zip file already exists and overwrite is false, return false
	if(file_exists($destination) && !$overwrite) { return false; }
	//vars
	$valid_files = array();
	//if files were passed in...
	if(is_array($files)) {
		//cycle through each file
		foreach($files as $file) {
			//make sure the file exists
			if(file_exists($file)) {
				$valid_files[] = $file;
			}
		}
	}
	//if we have good files...
	if(count($valid_files)) {
		//create the archive
		$zip = new ZipArchive();
		if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
			return false;
		}
		//add the files
		foreach($valid_files as $file) {
			$zip->addFile($file,$file);
		}
		//debug
		//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;

		//close the zip -- done!
		$zip->close();

		//check to make sure the file exists
		return file_exists($destination);
	}
	else
	{
		return false;
	}
}

ESEMPIO APPLICATO

 
$files_to_zip = array(
	'preload-images/1.jpg',
	'preload-images/2.jpg',
	'preload-images/5.jpg',
	'kwicks/ringo.gif',
	'rod.jpg',
	'reddit.gif'
);
//if true, good; if false, zip creation failed
$result = create_zip($files_to_zip,'my-archive.zip');
Fonte: sastgroup

Category: Programmazione, Siti Web | No Comments »

Trovare la posizione di un IP su google maps

agosto 31st, 2009 by Giovanni Caputo

Volevo segnalare un tutorial che permette di identificare la posizione geografica di un IP su google maps.

LINK

Category: Programmazione, Siti Web, Tecnologia, tutorial | 2 Comments »

Tutorial su come realizzare applicazione per iTouch / iPhone

giugno 12th, 2009 by Giovanni Caputo

Dopo aver segnalato il podcast dell’Univeristà di Stanford, che nel frattempo è arrivata alla 18° puntata, volevo segnalare una serie di tutorial forniti da iPhoneItalia:  corso base in 7 puntate.

Inoltre volevo segnalare un libro “Tutorial pratici per iPhone SDK” realizzato da Andrea Busi.

Si tratta di un libro contenente una serie di tutorial indirizzati soprattutto a chi è alle prime armi in questa materia.

Il PDF è acquistabile dal sito ufficiale al prezzo di 3€, ma da questo link potete scaricare gratuitamente le prime 20 pagine.

Category: Programmazione, Siti Web, tutorial | 4 Comments »

APE: open source Ajax Push Engine

giugno 9th, 2009 by Giovanni Caputo

The first Open Source Ajax Push Engine

APE (Ajax push Engine) è una tecnologia open source che permette di scambiare i dati attraverso il browser tra vari utenti senza la neccessità di effettuare il caricamento della pagina.
Di seguito il video di presentazione ufficiale.

Utilizza lo standard web per garantire scalabilità, infatti, funziona con i più comuni browser.

APE is fully cross browser. Ajax Push Engine works with all the Internet browsers.

La parte principale di APE è il epoll-driven HTTP server interamente scritto in C. Attraverso particolari protocolli riesci a mantenere attiva la connessione tra client e server  tramite  XHR long-polling (cross browser), forever frame e altri meccanismi. Il server può essere esteso usando moduli scritti in C oppure JacaScript server-side.

La seconda parte di APE è il framework Javascript basato su MooTools.

Per maggiori informazioni visitate il sito ufficiale.

Website: http://www.ape-project.org/en/
Demo: http://www.ape-project.org/en/demos/
Download: http://www.ape-project.org/en/download/

Category: Programmazione, Siti Web, Tecnologia, tutorial | No Comments »

Visualizzare un sito con differenti browser

giugno 7th, 2009 by Giovanni Caputo

Adobe ha messo a disposizione un servizio che permette di visionare il sito web con differenti browser. Il servizio ha il nome di Adobe BrowserLab. I browser con cui è permessa la visualizzazione:

  • Firefox 2.X e 3.X (Windows XP e Mac OS X)
  • Internet Explorer 6.X e 7.X (Windows XP)
  • Safari 3.X (Mac OS X)

Mancano però Opera e Chrome.

Con DreamWeaver CS4 sarà possibile accedere direttamente alle funzionalità fornite da questo servizio.

Adobe BrowserLab Free Preview for Web Designers

Category: Programmazione, Siti Web, tutorial | No Comments »

Sicurezza PHP e MySQL: proteggersi dalla SQL Injections

giugno 1st, 2009 by Giovanni Caputo

Vediamo alcune funzioni utili che possono essere utilizzati per proteggersi dalla SQL Injections. Questo tipo di attacco/problema è causato da alcuni caratteri speciali come apostrofi o slash che, se inseriti in una query, possono compromottere la sicurezza del database.

Vediamo, quindi, alcune funzioni PHP molto utili che preanalizzano i dati prima di effettuare una query.

add_slashes

Funzione built-in che aggiunge uno slash prima di apici, doppi apici, backslash, etc…

Per esempio se usata per la stringa O’Reilly,  la funzione, resituisce O\’Reilly. Questo però non basta per rendere una query sicura.

magic_quotes_gpc

Magic Quotes non è una funzione ma una opzione di configurazione. Questa opzione permette di aggiungere automaticamente blackslask ad ogni variabile, $_GET, $_POST e $_COOKIE,  che contiene uno dei caratteri menzionati precedentemente.

mysql_escape_string

Protegge i caratteri speciali come slash singoli o doppi, backslash, \x00, \n, \r, and \x1a.

Questa funzione è stata progettata proprio per essere utilizzata per query da eeguire su MySQL.

Category: Programmazione, Siti Web, tutorial | No Comments »

Plugin per upload file con jquery

maggio 30th, 2009 by Giovanni Caputo

Uploadify - Single and Multiple File Upload Plugin for JQuery

Realizza lo script per l’upload di file con jquery. UPLOADIFY

Il codice molto semplice:

<body>
<input type="file" name="fileInput" id="fileInput" />
<script type="text/javascript">
$(document).ready(function() {
$('#fileInput').fileUpload ({
'uploader'  : 'uploader.swf',
'script'    : 'upload.php',
'cancelImg' : 'cancel.png',
'auto'      : true,
'folder'    : '/uploads'
});
});
</script>
</body>

Category: Open Source, Programmazione, Siti Web | No Comments »

Lettore feed in PHP

maggio 27th, 2009 by Giovanni Caputo

<?php

/*

$insideitem = false;

$tag = "";

$title = "";

$description = "";

$link = "";

echo"

";

$xml_parser = xml_parser_create();

xml_set_element_handler($xml_parser, "startElement", "endElement");

xml_set_character_data_handler($xml_parser, "characterData");

$fp = fopen("http://www.nomesito.com/rss.xml","r") or die("Error reading RSS data.");

while ($data = fread($fp, 4096))

xml_parse($xml_parser, $data, feof($fp))

or die(sprintf("XML error: %s at line %d",

xml_error_string(xml_get_error_code($xml_parser)),

xml_get_current_line_number($xml_parser)));

fclose($fp);

xml_parser_free($xml_parser);

echo"";

*/

 ?

function startElement($parser, $name, $attrs) {

global $insideitem, $tag, $title, $description, $link;

if ($insideitem) {

$tag = $name;

} elseif (strtolower($name) == "item") {

$insideitem = true;

}

}

function endElement($parser, $name) {

global $insideitem, $tag, $title, $description, $link;

if (strtolower($name) == "item") {

printf("

•	%s",

trim($link),trim($title),trim($title));

printf("%s",trim($description));

$title = "";

$description = "";

$link = "";

$insideitem = false;

}

}

function characterData($parser, $data) {

global $insideitem, $tag, $title, $description, $link;

if ($insideitem) {

switch (strtolower($tag)) {

case "title":

$title .= $data;

break;

//case "description":

//$description .= $data;

//break;

case "link":

$link .= $data;

break;

}

}

}

Read the rest of this entry »

Category: Programmazione, Siti Web | No Comments »