Code Golf – Pasatiempo para programadores

Publicado en Programación el 27 de August de 2009 por Manel Pérez Mata
Tags: | (3 Comentarios)

Code GolfCode golf es un adictivo pasatiempos para programadores en el que el objetivo es conseguir una solución a un sencillo problema con el menor número de teclas picadas al programarlo (o lo que es lo mismo el archivo con menor peso en bytes es el que gana).

En la web se plantean diferentes retos y a partir de ahí se van marcando los mejores resultados a medida que los usuarios van subiendo sus scripts. Puedes subir tu mini-programa en uno de los siguientes lenguajes: PERL, PHP, Phyton o Ruby. … Seguir Leyendo

Novedades de PHP6

Publicado en Programación el 4 de August de 2009 por Manel Pérez Mata
Tags: , | (1 Comentario)

php6Los desarrolladores del motor de PHP llevan ya varios meses trabajando en la versión 6. De momento no parece que vaya a ver la luz en breve, pues acaban de liberar la versión 5.3 para postergar en la medida de lo posible la aparición de la nueva versión. En cualquier caso, es interesante estar al día e ir preparando nuestros desarrollos actuales para las posibles incompatibilidades con la nueva versión.

Recientemente preguntaban a Zeev Suraski, co-fundador de Zend Technologies Inc. sobre la versión 6 de PHP de la que se lleva algún tiempo hablando pero que parece que no acaba de ver la luz. En la entrevista, Zeev nos comentaba:

PHP6 es un proyecto mucho más difícil que PHP4 y 5 principalmente por dos razones:

  • La cantidad de código PHP que hay afuera, es tan inmensa.
  • Cada pequeña incompatibilidad que uno introduce se convierte en un horrible dolor de cabeza para mucha gente. Y combinado con la principal cosa que queremos hacer con PHP6, que es la introducción de soporte nativo para Unicode, es imposible no introducir una cantidad significativa de incompatibilidades en el lenguaje. No sé cómo va a resultar esto, estoy siendo completamente honesto.

… Seguir Leyendo

Cómo usar sfWidgetFormJQueryDate de sfFormExtraPlugin?

Publicado en Frameworks, Programación el 22 de July de 2009 por Manel Pérez Mata
Tags: , | (4 Comentarios)

sfFormExtraPlugin es un excelente plugin que mantienen los desarrolladores de Symfony con un montón de características adicionales que te ayudarán a construir formularios más completos.

¿Qué podemos encontrar en este plugin?

Són varias las utilidades que nos ofrece, desde la creación de campos captcha para evitar el spam hasta campos de texto autocompletables en función de lo que vayamos escribiendo. Aquí os dejo una lista con sus posibilidades:

  1. ReCaptcha widget y validador
  2. Editor HTML WYSIWYG para campos de texto
  3. Selector de fechas tipo calendario
  4. Selectores de idioma
  5. Widget de listas dobles
  6. Widget de autocompletado en campos de texto

¿Cómo instalar y usar sfWidgetFormJQueryDate?

sfWidgetFormJQueryDate nos creará un selector de fechas con unas configuraciones mínimas para facilitar la tarea de rellenar los campos date en nuestros formularios. En la siguiente imágen, puedes ver el resultado de su correcta implementación:

sfwidgetformjquerydate
… Seguir Leyendo

Cómo capturar una web en una imágen con Firefox?

Publicado en Navegadores el 17 de July de 2009 por Manel Pérez Mata
Tags: | Añadir comentario

FirefoxGracias a los fantásticos Add-ons de Firefox podemos dotar a nuestro navegador de nuevas funcionalidades como por ejemplo la que he encontrado esta mañana.

Necesitaba realizar un screenshot de toda una web y googleando un poco, he encontrado Page Saver, un fantástico plugin que permite realizar este tipo de capturas almacenando además las imágenes flash contenidas en la página.

Para instalarlo es bien sencillo, click aquí para ir a la ficha del plugin y click en el botón “Añadir a Firefox”.

Podeis buscar otros plugins para vuestro navegador en la página de Addons de Firefox. Aquí os dejo una pequeña lista con los plugins más interesantes y/o útiles que me he encontrado:

  • Web Developer: ¿Eres programador web? En ese caso ya conoces este plugin, sino es así, instalalo y disfruta ;)
  • Firebug: Completo paquete de utilidades con el que se puede analizar (revisar velocidad de carga, estructura DOM), editar, monitorizar y depurar el código fuente, CSS, HTML y JavaScript de una página web de manera instantánea e inline. Junto con Web Developer, uno de los plugins más útiles para un programador web.
  • Selenium IDE: Set de herramientas que permiten desarrollar scripts para pruebas de aplicaciones Web.
  • ColorZilla: Con este Addon podemos seleccionar cualquier color de cualquier elemento contenido en una web y obtener su valor en hexadecimal.
  • Live HTTP headers: Con él podrás controlar todas las cabeceras enviadas y recibidas al navegar por una web.
  • SeoQuake: Completa herramienta de diagnóstico SEO de una web.
  • Tamper Data: Permite modificar los datos enviados en un POST a una página.

Making a Google Chrome Logo

Publicado en Internet el 15 de July de 2009 por Manel Pérez Mata
Tags: , | Añadir comentario

Google Chrome Logo

Crear una relación many-to-many con Doctrine

Publicado en Frameworks, Programación el 14 de July de 2009 por Manel Pérez Mata
Tags: , , | Añadir comentario

Vamos a ver como informar al magnífico ORM Doctrine de que debe tratar un par de tablas con una relación many-to-many utilizando una tabla intermedia.

Supongamos que tenemos una talba de jugadores de fútbol y una tabla de equipos. Un equipo estará compuesto por varios jugadores y a su vez, un jugador puede estar relacionado con varios equipos (el actual, más los equipos por los que ha pasado en su vida deportiva).

Para este ejemplo necesitaremos tres tablas: Team, Player  y una relacional TeamPlayer. … Seguir Leyendo

Serializar array con JavaScript

Publicado en Programación el 12 de July de 2009 por Manel Pérez Mata
Tags: , , | (1 Comentario)

Ayer os comentaba como pasar arrays por POST con PHP mediante los métodos serialize y unserialize y dejaba un poco al aire como hacerlo desde JavaScript.

Una manera bastante usual de hacerlo en JavaScript es concatenar los valores del array en un string separados por un token que luego nos permitirá volver a generar el array con la función split de PHP, sin embargo, nos puede ser interesante utilizar la serialización por defecto de PHP, de este modo al recoger el valor, únicamente tendremos que llamar a unserialize y volveremos a tener el array intacto. … Seguir Leyendo

Pasar Array por POST con PHP

Publicado en Programación el 11 de July de 2009 por Manel Pérez Mata
Tags: , , | (1 Comentario)

Si queremos pasar un array por POST y lo hacemos tal cual, veremos que la cosa no acaba de funcionar. La manera correcta de hacerlo es serializando previamente nuestro vector y una vez enviado, deserializarlo. Para ello PHP dispone de las funciones serialize y unserialize que harán el trabajo por nosotros.

En el siguiente ejemplo, vemos un uso sencillo de este método para enviar nuestros datos por la web:

<?php

if(!isset($_POST['frutas']) && $_POST['frutas']=="" ) {
  // Creamos el array frutas
  $frutas[] = "Cereza";
  $frutas[] = "Pera";
  $frutas[] = "Fresa";
  $frutas[] = "Manzana";
} else {
  // si existe lo deserializamos para poder tratarlo
  $frutas = unserialize(stripslashes($_POST['frutas']));
  var_dump($frutas);
}
?>
<html>
<form method="POST">
  <input type="hidden" name="frutas" value='<?php echo serialize($frutas) ?>'></input>
  <input type="submit" value="Pasar">
</form>
</html></pre>
El resultado de hacer un var_dump de la variable $frutas serializado sería:
<pre dir="ltr"><span style="color: #cc0000;">a:4:{i:0;s:6:"Cereza";i:1;s:4:"Pera";i:2;s:5:"Fresa";i:3;s:7:"Manzana";}</span>

Si queremos, por ejemplo, enviar un array desde el lado del cliente mediante AJAX, podríamos por ejemplo, crearnos un método javascript sencillo que nos serializase un array y así luego poder desserializarlo desde PHP.

Mañana publicaré en un nuevo post una función serialize para JavaScript, de este modo, podemos enviar desde el lado cliente un array serializado con el submit de un formulario o mediante AJAX.

¿Qué son los QR-Codes?

Publicado en Internet el 10 de July de 2009 por Manel Pérez Mata
Tags: | (3 Comentarios)

QR-Code¿Y esto qué es?

Pues los “puntos aleatorios” que ves en el dibujo de la izquierda no son más que el QR-Code del texto http://www.tecnoretales.com, pero, exactamente ¿qué son estas imágenes?

¿Qué són los QR-Codes?

Un código QR es algo muy similar a un código de barras tradicional sólo que almacena la información en una matriz de puntos con lo qual conseguimos una capacidad de almacenameinto mucho mayor. Las siglas QR vienen de la palabra inglesa “Quick Response” (Respuesta rápida), nombre que le dieron sus desarrolladores para destacar la velocidad de lectura de un lector de este tipo.

En una de estas imágenes tan curiosas podemos almacenar hasta 4296 caractéres alfanuméricos o 7098 caractéres numéricos.

En Japón, lugar en el que se inventó a cargo de la empresa Denso-wave en 1994 están ampliamente extendidos, pero no ha sido hasta estos últimos años que se están poniendo de moda en la red a nivel global. … Seguir Leyendo

Configurar Doctrine en Symfony

Publicado en Bases de datos, Frameworks el 7 de July de 2009 por Manel Pérez Mata
Tags: , , , , | Añadir comentario

Doctrine Logo Symfony integra Propel ORM por defecto, sin embargo, Doctrine está ganando puntos sobre su rival.

La principal ventaja de cada uno de ellos es:

Propel: Está completamente integrado con Symfony y decenas de plugins sólo funcionan para Propel.

Doctrine: Tiene muy buen rendimiento en ejecución y una forma muy concisa al escribir consultas complejas.

Si te has decidido a utilizar Doctrine en lugar de Propel y no sabes como integrarlo con Symfony, aquí te dejo los pasos para activarlo. … Seguir Leyendo