Blog

Debugar PHP en Ubuntu con Eclipse PDT y XDebug

Disclaimers

  1. Esta es una mini-guía escrita por un desarrollador y debugador de PHP novato para desarrolladores y debugadores de PHP novatos: expertos abstenerse 😉
  2. Gran parte del conocimiento está extraído del artículo “Debugging PHP applications with xdebug” escrito por Cal Evans.
  3. Las versiones empleadas son:
    • $ lsb_release -a: Ubuntu 10.04.3 LTS
    • $ java -version: 1.6.0_20 OpenJDK Runtime Environment (IcedTea6 1.9.10)
    • $ php -v: PHP 5.3.2 Zend Engine v2.3.0
    • $ apache2 -v: Apache/2.2.14

Antes de empezar

Instalar:

  • JDK o OpenJDK: $ sudo apt-get install openjdk-6-jre
  • Apache HTTP Server: $ sudo apt-get install apache2
  • PHP 5: $ sudo apt-get install php5 libapache2-mod-php5
  • Reiniciar Apache: $ sudo /etc/init.d/apache2 restart

Instalar Eclipse PDT

Descargar Eclipse PDT desde la dirección http://www.eclipse.org/pdt/downloads/. En el momento de escribir esta guía las versiones disponibles son Eclipse 3.7.1 y PDT 3.0.2. Descomprimir el archivo en /home/username/workspaces/.

Eclipse PDT

Instalar XDebug

$ sudo apt-get install php5-xdebug

Añadir las siguientes líneas al archivo xdebug.ini$ sudo gedit /etc/php5/conf.d/xdebug.ini

xdebug.remote_enable=On
xdebug.remote_host=”localhost”
xdebug.remote_port=9000
xdebug.remote_handler=”dbgp”

Crear un nuevo proyecto PHP en Eclipse PDT

Abrir Eclipse PDT y crear un nuevo workspace en /home/username/workspaces/debugando/.

Seleccionar File > New > PHP Project.

  • Project name: debugando
  • Directory: /var/www/debugando (si no os permite seleccionar este directorio tendréis que dar permiso a vuestro usuario para poder leer y escribir en él $ sudo chown -Rf username:username /var/www/)

Clicar sobre Finish.

Create Project

Crear un nuevo archivo PHP dentro del proyecto

Seleccionar File > New > PHP File.

  • File Name: index.php

Clicar sobre Finish.

Create File

Editar el archivo index.php.

<?php

$var = 1;

while ($var < 10){
echo $var;
$var ++;
}

Debugar el archivo index.php

Seleccionar Window > Preferences > General > Web Browser.

  • Use external web browser

Botón derecho sobre index.php y seleccionar Debug As > Debug Configurations. En la ventana emergente hacer doble clic sobre PHP Web Applications.

  • Name: Nueva configuración
  • Server Debugger: XDebug
  • File: /debugando/index.php

Clicar sobre Debug. Se abrirá una ventana emergente para lanzar la perspectiva de debug: clicar sobre Remember my decision y sobre Yes.

Avanzar el breakpoint pulsando F6. Podréis ir viendo el valor de la variable $var en la pestaña Variables.

Debugger

Terminar el debug pulsando F8. En vuestro navegador podréis ver el resultado de la ejecución del script PHP.

Browser

Et voilà! Debugar un script PHP con Eclipse PDT y XDebug es tan sencillo como esto o tan complicado como queráis 🙂

One more thing

Nunca está de más instalar Mercurial en vuestro Eclipse:

  • $ sudo apt-get install mercurial
  • En Eclipse, seleccionar Help > Install New Software.
  • Clicar sobre Add.
  • Seleccionar Mercurial Eclipse (deseleccionando Windows Binaries for Mercurial si no estáis en Windows).
  • Clicar sobre Next y seguir las instrucciones de instalación.

¿Qué pasa en Silicon Valley?

Mikel me envía el enlace a esta interesantísima discusión en LinkedIn en la que Iñaki Bartolomé se pregunta por la posibilidad de replicar Silicon Valley en Euskadi.

Esta discusión me ha dado pie a recopilar lo que pude ver y escuchar durante dos semanas allí (en Silicon Valley, se sobreentiende) 😉 Dos semanas conviviendo con emprendedores europeos afincados en EL valle y visitando numerosas empresas (grandes y consolidadas como Google, EA, Autodesk y otras en enorme y rápido crecimiento como Zynga o Twitter) y charlando con emprendedores de todo el mundo e inversores sobre las startups que están lanzando. No es una lista muy extensa, pero 2 semanas dan para lo que dan 😛 Aquí la, esperando que quienes conozcan Silicon Valley mejor que yo la completen o corrijan 🙂

  • Prácticamente cero intervención pública: las Administraciones Públicas no dan apenas subvenciones pero tampoco ponen trabas en las actividades empresariales y administrativas.
  • Prácticamente cero jerarquías: puedes encontrarte hablando con el más boss de la mayor empresa o fondo de inversión sin que te mire por encima del hombro, y sin traje, por supuesto.
  • Todo el mundo está dispuesto a darte la oportunidad de hablarle sobre tu proyecto, aunque sólo sean 5 minutos, o menos, lo que pueda durar un viaje en ascensor, el famoso elevator pitch.
  • MUCHÍSIMOS eventos de networking entre emprendedores e inversores: LinkedIn, tarjetas de visitas e e-mails de seguimiento (follow-up) de encuentros son imprescindibles.
  • DINAMISMO: velocidad de infarto en el desarrollo de proyectos, toma de decisiones y en la decisión de si una startup es un éxito y debe seguir adelante o un fracaso y debe desaparecer o pivotar.
  • PIVOTAR: la palabra de moda, ser ágil en cambiar el rumbo de una startup si no da los resultados esperados de forma rápida.
  • MENOS planificar, y MÁS desarrollar.
  • Competencia BRUTAL pero sin embargo mucha cooperación entre empresas/proyectos, compartiendo ideas con muy poco secretismo profesional.
  • MUCHÍSIMO gusto por el riesgo y el pelotazo, muy poco conservadurismo empresarial.
  • Cultura positiva del fracaso: no haber fracasado da mala espina, “no habrá arriesgado lo suficiente” piensan.
  • Saben vender y venderse MUY bien.
  • Envidia sana y admiración por el emprendedor.
  • Multiculturalismo de verdad: cada vez menos estadounidenses desarrollan y dirigen en Silicon Valley.
  • Empresarios veteranos dispuestos a invertir MUCHO dinero en nuevos proyectos tecnológicos y no tanto en activos inmobiliarios.
  • Cultura hacker-céntrica (desarrolladores puros y duros) en el entorno startup: los MBAs y personas con varias carreras no están muy bien vistas.
  • 2 universidades en el Top 10 mundial: Stanford University y University of California (Berkeley).
  • Muchísima relación Universidad / empresas (startups y consolidadas).
  • Aunque hay proyectos hardware, industriales, en energías renovables y sanitarios, la inmensa mayoría de los proyectos son software.
  • Clave la conjunción de estos 3 factores: Universities + Entrepreneurs + Financial Market.

Apple y Shaquille O’Neal: hago lo que quiero, cuando quiero y donde quiero

Comentaba con mis compañeros de MBA la presentación central de Apple en la WWDC de la semana pasada. Resumiendo: Mac OS X Lion, iOS 5 y iCloud. ¿Novedades tecnológicas? Pocas. ¿Capacidad para marcar tendencia tecnológica? Mucha, como viene siendo tradición en los últimos años. Vaya por delante que no uso ninguno de los productos Apple ni sus servicios.

Pero no es necesario ser un fanboy de Apple para rendirse a la evidencia: sólo Apple tiene la capacidad para coger una tecnología ya existente, incorporarla a sus productos y servicios y convertirla inmediatamente en tendencia. Smartphones, tablets y, ahora, cloud “lo petan”, en gran medida, gracias a Apple. ¿Qué pasó con Flash y los netbooks a los que Apple puso la cruz? ¿Y qué hay de la tecnología NFC? ¿Está herida de muerte si Apple no la incorpora en el iPhone 5? ¿Y qué va a pasar con los desarrolladores de apps como WhatsApp o Instapaper?

Sólo se me ocurren las siguientes frases para responder a todas estas preguntas:

Posdata: Shaq se retiró del baloncesto hace poco más de una semana de una forma muy digna, ¿debería Steve Jobs tomar ejemplo?

El moonwalk del emprendimiento

Llevaba algunos días dándole vueltas a este tema y una discusión sobre innovación en el curso de estrategia del MBA me ha venido como anillo al dedo para profundizar y escribir sobre él.

El moonwalk del emprendimiento

El “Moonwalk del emprendimiento“, que podríamos llamar también “De aquellos inconformismos vienen estos emprendimientos“, son 4 sencillos pasos que nos llevan a emprender. Lo llamo moonwalk por aquello de empezar en un punto destino, el emprendimiento, para ir retrocediendo hasta un punto origen, el inconformismo, pasando por la innovación y la creatividad.

Emprendimiento

Últimamente se habla mucho de emprendimiento, emprendizaje y emprendedores: hasta los políticos hablan sobre ello, o al menos lo hacían hace unas semanas, en plena campaña electoral 😉 ¿Pero qué es emprender? Nos dice la Real Academia Española que emprender es “acometer y comenzar una obra, un negocio, un empeño, especialmente si encierran dificultad o peligro“. En dos palabras: acción + dificultad. Acción porque si no se llevan a cabo, las ideas no valen absolutamente nada. Y dificultad porque implica romperse un poco la cabeza (en sentido figurado y, en ocasiones, también en sentido literal).

Innovación

Innovar, es decir, introducir novedades en un producto, servicio o proceso, implica devanarnos los sesos… o no. No toda innovación requiere crear algo de la nada: tengamos siempre en mente el “don’t innovate, fusilate“. Además, esta innovación no tiene por qué implicar un avance tecnológico: puede consistir en una sencilla sonrisa y un cordial buenos días cuando un cliente entra en nuestra tienda (os aseguro que así de sencillo resulta innovar en una provincia vasca cuyo nombre empieza por g y termina por a). “El potencial de diferenciación de cualquier producto o servicio sólo está limitado por las fronteras de la imaginación“, que diría Robert M. Grant. Antes de saltar al siguiente paso, repitamos:

  1. Innovación como tarea diaria y a todos los niveles de la empresa y de la vida.
  2. Innovación como única ventaja competitiva sostenible a largo plazo.

Creatividad

Nuestra amiga la creatividad es la que nos va a permitir introducir innovaciones en nuestros productos, servicios y procesos. Y esto en muchas empresas se olvida, a veces de forma inconsciente, y otras veces de forma consciente, quedando la creatividad debajo de un montón de tareas mucho más urgentes pero muchísimo menos importantes. Cualquiera de nosotros puede ser creativo: no es necesario llevar gafas de pasta ni calzar Mac (y ya me perdonaréis el topicazo). Sólo hace falta dejar volar la imaginación y no tener miedo a proponer cualquier idea que se nos pase por la cabeza, por muy extravagante que parezca: “there is no such thing as a bad idea“. Y he aquí el gran problema: en muchos países, empezando por el colegio y siguiendo por la empresa, se arranca de cuajo cualquier atisbo de creatividad o, en el mejor de los casos, se merma considerablemente. Y esta falta de “educación para la creatividad” supone la ruina a largo plazo para un país. No sé si me seguís.

Inconformismo

No existe terreno mejor abonado para la creatividad que el inconformismo
. “True entrepreneurs think there is something wrong in the world and want to fix it” comentaba el otro día Sean Parker (le conoceréis por la interpretación que de él hace Justin Timberlake en “la película sobre Facebook“). Si sois inconformistas, sabéis perfectamente a qué se refiere el compañero Sean:

  1. Si consideráis que algo se está haciendo mal, allá estáis vosotros para ver cómo se puede arreglar.
  2. Si creéis que algo, sin estar mal e incluso estando bien, se puede mejorar, ahí que os vais de cabeza a dar feedback y sugerencias.

Eso sí, sin llegar a obsesionarse, teniendo siempre en mente que la perfección no existe y que lo perfecto es enemigo de lo bueno. Y así como del inconformismo brota la creatividad, no hay mejor tiempo para el inconformismo que las crisis. Porque cuando las cosas van bien en la empresa (y en la vida en general), tendemos a la autocomplacencia y a conformarnos con las cosas tal y como son y nos vienen. Pero cuando vienen mal dadas nos volvemos inconformistas y llegamos incluso a indignarnos. Doble guiño.

Resumiendo

Si ponemos los pasos anteriores en orden cronológico tenemos, a ritmo de Chikilicuatre: Uno, ¡el inconformismo! Dos, ¡la creatividad! Tres, ¡la innovación! Cuatro, ¡el emprendimiento! Ahora que han quedado claros los pasos, ¡a practicar! Y recordad, estos pasos hay que repetirlos a diario tanto si tenéis vuestra propia empresa, como si sois empleados por cuenta ajena, funcionarios, autónomos, freelance, políticos o si lleváis adelante un proyecto de familia 🙂 Keep always moonwalking!

Un breve análisis sobre la deuda municipal de Irún

Introducción

Se busca un análisis breve y conciso sobre la deuda municipal de Irún basado en los siguientes documentos y apoyado en otros enlaces de interés:

Demografía

Usaremos los datos demográficos para ponderar el volumen total de deuda por los habitantes del municipio y para analizar la evolución del gasto corriente presupuestado. Irún ha pasado de 56.601 habitantes en 2001 a 61.410 a día de hoy, es decir, se ha producido un aumento del 8,50% (4.809 personas) en 10 años.

Deuda

La deuda viva es la deuda acumulada por el Ayuntamiento con las entidades financieras y no incluye la deuda comercial, que es la que tiene con sus proveedores. No están todavía disponibles los datos de deuda viva para 2010 por lo que analizaremos los datos de 2008 y 2009 y los compararemos con los de otras ciudades de nuestro entorno.

Veamos qué ocurre en otros municipios de nuestro entorno.


Observamos que el incremento porcentual de la deuda viva de Irún entre 2008 y 2009 (+19,32%) es similar al de Pamplona (+20,57%) y queda muy lejos del incremento en San Sebastián (+91,27%). No obstante, tanto en 2008 como en 2009 Irún presenta la mayor deuda viva por habitante (564,43 € y 673,58 €, respectivamente) de las grandes ciudades de su entorno. En 2009, esta deuda viva por habitante fue 166,53 € superior a la de Vitoria (segunda ciudad con mayor endeudamiento por habitante) y 662,42 € superior a la de Bilbao (la ciudad con menos endeudamiento por habitante de esta lista).

Presupuesto

Si analizamos el gasto corriente presupuestado por el Ayuntamiento entre 2001 y 2011, observamos un aumento de 21,63 millones de €, pasando de 30,27 millones de € a 51,90 millones de € (+71,46%), muy por encima del aumento en la población que se situó en el 8,50% para el mismo periodo.

Respecto de los ingresos corrientes presupuestados, en 2008 fueron de 70,33 millones de € y en 2009 de 66,05 millones de €. Si comparamos estos ingresos corrientes con la deuda viva de los años 2008 y 2009, que fue de 34,52 millones de € y 41,19 millones de € respectivamente, vemos que esta representaba el 49,09% de los ingresos corrientes en 2008 y el 62,36% en 2009.

Conclusiones

  1. En 2009, la deuda viva por cada habitante de Irún fue 166,53 € superior a la de Vitoria y 662,42 € superior a la de Bilbao.
  2. Entre 2001 y 2011, el gasto corriente presupuestado por el Ayuntamiento aumentó en un 71,46% mientras que el aumento en población se situó en el 8,50%.
  3. En 2008, la deuda viva representaba el 49,09% de los ingresos corrientes presupuestados por el Ayuntamiento y en 2009 el 62,36%.

¿Qué os parecen el análisis y las conclusiones? ¿Qué más datos podemos aportar? ¿Cómo se justifican estos números?

Una propuesta de marketing móvil para el Grupo Cervecero Modelo: Corona International Summer Pass

En un caso de marketing se nos pide proponer la estrategia de comunicación de Coronita en España para el año 2002 siendo mi propuesta la campaña Corona International Summer Pass. Al plantearse el caso hace 9 años, he tenido que aportar una solución menos techie de lo que me hubiese gustado, por lo que aprovecho este mi blog para despacharme a gusto 😉

Corona International Summer Pass

La campaña Corona International Summer Pass (campaña CISP de aquí en adelante) es un esfuerzo de marketing del Grupo Cervecero Modelo, fabricante de la cerveza Corona (conocida en España como Coronita) con un doble objetivo:

  1. Que el Grupo Cervecero Modelo sea tan reconocido a nivel internacional como su producto estrella Corona, presente en más de 150 países de los 5 continentes, líder de ventas en cervezas de importación en los EEUU y en otros 100 países más y posicionado de forma única y original en todo el mundo: cerveza Corona Extra de color dorado, suave y ligera, servida fría en botella transparente long neck de 33 cL con la información impresa y bebida a morro con una rodaja de limón, asociada al tequila mexicano.
  2. Aumentar las ventas de Corona en todo el mundo a través de la fidelización y la repetición de compra de los clientes existentes que son en su mayoría jóvenes hombres y mujeres de entre 18 y 40 años, urbanos, modernos, amantes de las nuevas tecnologías, cosmopolitas y viajeros.

La campaña

La campaña CISP se desarrollará del 15 de junio al 15 de septiembre y consiste en la acumulación de check-ins Corona en bares y discotecas de todo el mundo, como si de un pasaporte se tratase. Un check-in corresponde a la compra de una botella de Corona Extra en cualquier punto del planeta: San Francisco, Miami, Cancún, Barcelona, Ibiza, Saint Tropez, Roma, Ios, etc… Se podrán hacer tantos check-ins (léase beber/tomar Coronas) como se quiera en cada lugar hasta el 15 de septiembre, fecha en la que se hará el recuento de los check-ins de todos los participantes, estableciendo rankings a nivel nacional. No sólo se tendrá el cuenta el número de check-ins sino que este número se multiplicará por el número de lugares (puntos de venta), el número de países distintos y el número de continentes distintos, favoreciendo así a los clientes más viajeros. El primer clasificado de cada país se llevará un viaje de una semana para dos personas a Riviera Maya con todos los gastos incluidos. Esta campaña se repetirá de forma anual, poniéndose el contador de check-ins de nuevo a cero.

La aplicación móvil

La aplicación móvil para la campaña CISP podrá descargarse de forma gratuita desde www.coronainternationalsummerpass.com, un mini-site creado ex profeso para esta campaña y al que se accederá de forma automática desde www.corona.com.

Esta aplicación móvil tendrá 2 caras:

  1. Aplicación para el punto de venta: los puntos de venta tendrán que registrarse bien a través de la aplicación bien a través del mini-site, facilitando su datos de contacto, CIF y dirección de correo electrónico. Una vez que se haya confirmado que son distribuidores oficiales de Corona, recibirán por correo electrónico un identificador único. Al introducir este identificador único en la aplicación, esta generará un código QR que se mostrará en la pantalla de su terminal móvil (smartphone). Se podrá introducir en una misma aplicación un identificador único distinto que generará un código QR diferente. Para el correcto funcionamiento de la aplicación en el punto de venta será necesario que el terminal móvil esté conectado a Internet bien por 3G bien por WiFi. Resumiendo las funcionalidades de esta aplicación para el punto de venta:
    1. Registro/modificación de datos.
    2. Insertar/editar identificador único.
    3. Mostrar código QR.
  2. Aplicación para el cliente: el cliente también tendrá que registrarse bien a través de la aplicación bien a través del mini-site, facilitando sus datos personales y su correo electrónico e indicando además si desea recibir información sobre los distintos eventos internacionales de Corona (información enviada a su correo electrónico 2 veces al mes en junio, julio, agosto y septiembre y 1 vez al mes el resto del año). El cliente recibirá por correo electrónico un identificador único que deberá introducir en la aplicación. Cada vez que pida una Corona, el camarero mostrará al cliente el código QR generado en la aplicación para el punto de venta. El cliente usará a su vez su aplicación para sacar una foto al código QR que le muestra el camarero, añadiendo automáticamente un check-in a su contador personal. Para el correcto funcionamiento de la aplicación en el cliente será necesario que el terminal móvil esté conectado a Internet bien por 3G bien por WiFi. Tanto en el mini-site como en la aplicación, el cliente podrá ver en tiempo real los rankings de check-ins por países. Podrá consultar además sus propios check-ins detallados (hora y lugar), información que sólo se mostrará al introducir su identificador único. Resumiendo las funcionalidades de esta aplicación para el cliente:
    1. Registro/modificación de datos.
    2. Insertar/editar identificador único.
    3. Leer código QR.
    4. Consultar rankings de check-ins.
    5. Consultar hora y lugar de sus check-ins personales.

Claro está que la aplicación por sí sola no hace la estrategia de marketing móvil ni mucho menos la estrategia de marketing global, sino que se engloba dentro de un esfuerzo mayor que incluye, entre otros, la promoción y difusión de la propia aplicación.

¿Qué os parece? 🙂