Inspekt es una librería para PHP 4 y 5 que nos filtra la entrada de datos para evitar posibles ataques. Su uso es bastante sencillo y automático por lo que podemos añadir esta librería tranquilamente en nuestras aplicaciones. Basado originalmente en la librería Zend_Filter_Input del framework de Zend.
Mediante unos simples métodos podremos filtrar el contenido de las variables $_POST, $_GET, $_COOKIE, $_SERVER, $_FILES y $_ENV, o todas a la vez. Además ofrece métodos para validar los datos entrantes, por ejemplo saber si se trata de una IP, de un número, una URL y mucho más.
Bing, el nuevo buscador de Microsoft, ya tiene una API a disposición de los desarrolladores, y también existe una librería para acceder a la API mediante PHP.
Tan solo es necesario instalar la librería, obtener una clave de desarrollador e integrarlo con nuestro código. Bing API PHP
Vía / DZone
Yo creo que el hecho de usar multilenguaje en un sitio web puede ser algo muy importante, sobre todo si deseas que tenga bastante repercusión. En Sentido Web ya hay entradas que trata el tema del multi-idioma ya sea mediante Apache o aportando recursos.
Claro, que a parte de un diccionario/traductor se puede usar un directorio especÃfico para cada idioma que contenga el contenido en ese idioma. Por ejemplo en un sitio de noticias no puedes tener un diccionario para introducir todo el texto de la noticia.
Afortunadamente los frameworks actuales como Seagull ya nos ofrencen módulos que nos facilitan esta labor.
Open Blog es un CMS para crear un propio blog realizado en CodeIgniter.
Tiene una interfaz de usuario limpia y fácil de usar, se instala y configura también de forma sencilla. Soporte a multilenguaje, plantillas, urls friendly, panel de administración, editor WYSIWYG, páginas estáticas, blogroll, feeds, y soporte a plugins. Open Blog
Interesante comparativa entre 3 de los lenguajes de programación más usados en desarrollo web: J2EE, ASP.NET y PHP:
Sintaxis: Java es el que mejor sintaxis tiene, PHP aún usa ‘::’ y ‘->’ y algunas funciones podrÃan ser usadas dentro de los objetos y no como procedimientos. Para ASP.NET lo más sencillo es VB.NET.
Velocidad de desarrollo: ASP.NET es el más rápido, debido a la cantidad de componentes que tiene que te hacen todo el trabajo. PHP es rápido si se usa algún framework. J2EE es el más lento.
Rendimiento: Suele ganar PHP en cuestión de velocidad y recursos. J2EE es más pesado, parecido a ASP.NET.
Servidor Web: ASP.NET solo funciona con IIS, PHP y J2EE tiene versiones comerciales y open source.
LibrerÃas y frameworks: Todos tiene muchas librerÃas y frameworks disponibles, siendo para PHP y J2EE la mayorÃa gratuitas y open source.
Soporte y comunidad: para ASP.NET la mayorÃa de los foros, grupos de usuarios y comunidades de desarrolladores están manejados por Microsoft, mientras que para PHP y J2EE existen muchos grupos independientes.
Coste: PHP es la alternativa totalmente gratuita, ASP.NET tiene licencias bastante caras, mientras que J2EE puede desarrollarse con herramientas gratuitas y de pago.
Excelente extensión para PHP que permite usar OpenCV (Open Source Computer Vision Library) para poder detectar caras en imágenes.
Por ahora dispone de dos funciones: face_count y face_detect, que proporcionan el número de caras encontradas y un array con las coordenadas de la cara. La verdad es que puede ser muy útil para todas las aplicaciones sociales que hay ahora.
Para instalarlo es necesario tener instalado: pkgconfig, libpng, zlib, libjpeg, libtiff y python. PHP Facedetect Extension
Vía / PHPDeveloper.org
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.