Sentido Web

Referencias y explicaciones sobre desarrollo web, PHP, Ajax, XHTML, MySQL ...
22Dec
2010
<!-- 3 -->

Yahoo! S4: plataforma distributiva para procesar datos

S4 es una plataforma open source desarrollada por Yahoo! que permite procesar gran cantidad de datos de forma distributiva. Inicialmente desarrollada para tratar miles de queries de búsquedas por segundo, es posible añadir nodos de forma escalable y no centralizada.

S4

Vía / WebAppers

10Dec
2010
<!-- 3 -->

Acceder a Google Analytics con OAuth y PHP

Está claro que por ahora OAuth es el futuro para el uso de APIs, y como no, Google requiere OAuth para conectarnos a su API, lo cual puede parecer bastante difícil, pero cuando le coges el truco, es bastante sencillo:

$oauth = new OAuth($consumer_key, $consumer_secret);
$oauth->setToken($access_token, $access_token_secret);
$result = $oauth->fetch('https://www.google.com/analytics/feeds/datasources/ga/accounts');

El resto es fácil, tan sólo hay que mirar la documentación y obtener los datos de las distintas peticiones.

Google Analytics Accounts API

Publicidad
30Nov
2010
<!-- 1 -->

Manifiesto por una red neutral

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto manifestamos:

  1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.
  2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.
  3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.
  4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.
  5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en “aduaneros” del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.
  6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.
  7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.
  8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.
  9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.
  10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.
  11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.

La Red Neutral es un concepto claro y definido en el ámbito académico, donde no suscita debate: los ciudadanos y las empresas tienen derecho a que el tráfico de datos recibido o generado no sea manipulado, tergiversado, impedido, desviado, priorizado o retrasado en función del tipo de contenido, del protocolo o aplicación utilizado, del origen o destino de la comunicación ni de cualquier otra consideración ajena a la de su propia voluntad. Ese tráfico se tratará como una comunicación privada y exclusivamente bajo mandato judicial podrá ser espiado, trazado, archivado o analizado en su contenido, como correspondencia privada que es en realidad. Europa, y España en particular, se encuentran en medio de una crisis económica tan importante que obligará al cambio radical de su modelo productivo, y a un mejor aprovechamiento de la creatividad de sus ciudadanos. La Red Neutral es crucial a la hora de preservar un ecosistema que favorezca la competencia e innovación para la creación de los innumerables productos y servicios que quedan por inventar y descubrir. La capacidad de trabajar en red, de manera colaborativa, y en mercados conectados, afectará a todos los sectores y todas las empresas de nuestro país, lo que convierte a Internet en un factor clave actual y futuro en nuestro desarrollo económico y social, determinando en gran medida el nivel de competitividad del país. De ahí nuestra profunda preocupación por la preservación de la Red Neutral. Por eso instamos con urgencia al Gobierno español a ser proactivo en el contexto europeo y a legislar de manera clara e inequívoca en ese sentido. (Si te sientes cómodo y representado por este texto, dale toda la difusión que puedas y quieras: reprodúcelo, enlázalo, tradúcelo, compártelo, vótalo… todas esas cosas que puedes hacer con total tranquilidad y libertad gracias, precisamente, al hecho de que tenemos todavía una red neutral. Hagamos posible el seguir teniéndola) Copio y pego de Microsiervos y aNieto2K, haz lo mismo!.

16Nov
2010
Comments Off

El rendimiento de Google Instant Previews

Algunas veces no nos paramos a pensar en los cambios que añade una web, en este caso Google, los problemas que pueden aparecer en tema de rendimiento. Y estos problemas suelen ser fundamentales a la hora de la impresión que se lleva un usuario de la web, claro, que Google no se caracteriza por problemas de rendimiento y los expertos que están trabajando allá deben ser de lo mejorcito que existe.

Después de este rollo introductorio, me gustaría apuntar los 3 aspectos que utiliza Google para mejorar el rendimiento que se centran sobre todo en la reducción del número de peticiones HTTP:

  • Compilación de Javascript: mediante Closure Compiler, consigue reducir el tamaño de los ficheros js, reutilizar variables, …
  • JSONP bajo demando: JSONP permite envolver la respuesta JSON con una llamada Javascript. Se realizan llamadas directas al script en vez de usar Ajax, lo cual permite hacer llamadas crossdomain y que el navegador lo cachee perfectamente. El problema es que si se añade la llamada con un createElement, el navegador se queda cargando, por lo que es mejor meterlo entre un setTimeout.
  • DATA URIs: es un método de añadir contenido en URLs usando base64, el problema es que IE8 sólo admite DATA URIs de 32k, por lo que dividen las imagenes en trozos y los “empalman” con etiquetas IMG. También han comprobado que aunque base64 añade hasta un 33% del tamaño, como lo devuelven en gzip, el tamaño final es más o menos el mismo.

Está claro que hay que aprender de los que saben.

Instant Previews: Under the hood

Vía / High Scalability

09Nov
2010
Comments Off

Heatmap en tiempo real con Javascript y Canvas

Los heatmaps son muy útiles para ver qué zonas de nuestras webs atraen la atención de los usuarios. Esta función de Javascript permite mostrar en tiempo real el heatmap que se va produciendo gracias a Javascript y el elemento HTML de Canvas.

Real-time heatmap example with Javascript and HTMLCanvas

Post originalVía / WebAppers

Publicidad
07Nov
2010
<!-- 2 -->

Tratar imagen para romper reCAPTCHA con PHP

Para aquellos que usan JDownloader (y Windows) les gustará la noticia de que ha salido un plugin para romper reCAPTCHA, que aunque está en versión beta, rompe bastantes códigos.

Para hacerlo, realiza varias técnicas para convertir la imagen en una que pueda ser leída por un OCR, y lo curioso de todo esto es que está realizado en PHP y pasado a C++ con HIPHOP de Facebook.

El código lo podéis ver en el PDF que viene en el plugin.

reCAPTCHA ausgehebelt / antirecaptcha

03Nov
2010
<!-- 3 -->

Mejora la velocidad de tu página usando flush()

El buffer de PHP permite almacenar la salida de PHP para enviarla en bloques de cierto tamaño. Una forma de forzar el envío del buffer es usando el método flush(). Es interesante usar este método justo detrás de la cabecera del documento HTML, ya que cuando se envía el head el navegador puede empezar a descargar CSS, javascripts, iconos, …

</head>
<?php flush(); ?>

Speed Up Your Website with PHP Buffer Flushing

22Oct
2010
Comments Off

Enviar mailings con poMMo mediante CURL

poMMo es una de las mejores herramientas para envío de newsletters o mailing, el problema es que la última versión es del 2008 y no tienen ni API ni nada parecido, pero se puede simular mediante CURL, lo cual nos puede venir muy bien para añadir mailing a nuestras aplicaciones con CodeIgniter o WordPress.

 
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_URL, 'http://servidor.com/pommo/index.php');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
$post = 'referer='.urlencode('/pommo/admin/admin.php').'&username=admin&password=password&submit=Log In';
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch); 
 
curl_setopt($ch, CURLOPT_URL, 'http://servidor.com/pommo/admin/mailings/mailing/setup.php');
$post = 'subject=Asunto&mailgroup=all&fromname=Yo&fromemail=mi%40email.com&frombounce=mi%40email.com&list_charset=UTF-8&submit=Continue';
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch); 
 
curl_setopt($ch, CURLOPT_URL, 'http://servidor.com/pommo/admin/mailings/mailing/ajax.rpc.php?call=savebody');
$post = 'body='.urlencode('Hola a <strong>todos</strong>').'&altbody=';
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch); 
 
curl_setopt($ch, CURLOPT_URL, 'http://servidor.com/pommo/admin/mailings/mailing/preview.php');
$post = 'sendaway=true';
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
 
$result = curl_exec($ch);
Publicidad
20Oct
2010
<!-- 2 -->

Close Pixelate: pixela imágenes con HTML5

Close Pixelate es un script que convierte una imagen en su correspondiente pixelada haciendo uso de HTML5 y canvas. Se le pueden indicar las siguientes opciones: resolución, forma del pixelado, tamaño, desplazamiento y canal alpha

Su uso es tan sencillo como ejecutar lo siguiente:

var docReady = function() {
  document.getElementById('portrait-image').closePixelate([
    { resolution : 24 },
    { shape : 'circle', resolution : 24, size: 16, offset: 12, alpha: 0.5 }
  ]);
};
window.addEventListener( 'DOMContentLoaded', docReady, false);

Close Pixelate

Vía / WebAppers

20Oct
2010
Comments Off

Manipular vídeos con HTML5 y canvas

Increíbles ejemplos de cómo manipular vídeos en directo aplicando filtros gracias a HTML5 y canvas. Los ejemplos nos muestra cómo se reproduce un vídeo y se muestra el mismo vídeo con efecto de escala de grises o detección de contornos. Realmente increíble.

Post original