Author Archive

Instalar uploadprogress en OS X Lion con Zend Server CE

En Mac OS X Leopard es muy fácil instalar la extensión uploadprogress. Basta con ejecutar en la terminal el comando:

sudo pecl install uploadprogress

El problema surge cuando se trata de OS X Lion. Todo parece ir bien hasta que reincidas el apache y el PHP salta con el siguiente error:

PHP Startup: Unable to load dynamic library '/usr/local/zend/lib/php_extensions/uploadprogress.so' - dlopen(/usr/local/zend/lib/php_extensions/uploadprogress.so, 9): no suitable image found.  Did find:
	/usr/local/zend/lib/php_extensions/uploadprogress.so: mach-o, but wrong architecture in Unknown on line 0

Si no has configurado la ruta del php.ini en el pcel es buen momento para hacerlo con el comando:

sudo pecl config-set php_ini usr/local/zend/etc/php.ini

Si ya hemos instalado el uploadprogress lo primero que haremos será desinstalarlo con:

sudo pecl uninstall uploadprogress

Ahora descargamos la última versión de desde http://pecl.php.net/package/uploadprogress (en el momento de escribir este post la versión actual es la 1.0.3.1) y lo descomprimimos.

A continuación desde la terminal nos movemos hasta la carpeta de la extensión:

cd /Users/jordi/Downloads/uploadprogress-1.0.3.1/uploadprogress-1.0.3.1/

Y empezamos tecleando:

phpize

Que nos responderá con algo como:

Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

Ahora ejecutamos el comando configure tal como muestro a continuación:

MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Developer/SDKs/MacOSX10.7.sdk/usr/bin/php-config

Luego:

make

Y luego:

make install

Si no hemos configurado la ruta del php.ini en pecl nos pedirá que agreguemos la extensión a nuestro php.ini añadiendo la siguiente linea:

extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/uploadprogress.so

Reiniciamos el apache y ya tenemos la extensión uploadprogress funcionando.

Maquetador HTML – Barcelona ¿9mil euros brutos anuales?

Me gusta cotillear como esta el mercado y como se paga mi trabajo y cuando veo estas cosas…

(dejo el link y copio el texto, para cuando caduque la oferta)

http://www.tecnoempleo.com/oferta-de-trabajo.php?goog_pr=2&goog=1&refer=844226866eec3ld65al7&sl=

Empresa 	perfect alibi event
Oferta 	 	Maquetador HTML - Barcelona
Provincia 	Barcelona - España
Perfil
Se precisa: Persona para desarrollar una web.

Su objetivo: Será desarrollar código HTML, PHP, JSP, JQUERY y AJAX según indicaciones de un Analista Programador y Analista de Bases de Datos.

Se requiere: Dominio de HTML, PHP, JSP, JQUERY, AJAX, MySQL a nivel de consultas.

Se valorará: Experiencia demostrable en proyectos similares. Dominio de alguno de los siguientes entornos de programación o similares : NuSphere, Eclipse, Eclipse PDT, Firebug.

Estudios: Preferiblemente ingeniero/a informático/a aunque no es imprescindible si se cumple el punto anterior.
Experiencia 	3-5 años
Puesto 	Se precisa: Persona para desarrollar una web: código HTML, PHP, JSP, JQUERY y AJAX
Jornada 	Jornada completa
Honorarios 	9000 € - 9000 € Bruto/año
Tipo contrato 	A determinar
Funciones  	Desarrollador Web
Tecnología  	HTML PHP JSP JQUERY AJAX MySQL .
  1. Tu no quieres un maquetador, quieres un programador que sepa maquetar
  2. De 3 a 5 años de experiencia. Bueno todos queremos gente valida
  3.  Jornada completa. Ok…
  4. “Preferiblemente ingeniero/a”, bueno es preferible… ok
  5. Con 3 a 5 años de experiencia, si se puede tener experiencia en muchas cosas. ok
  6. 9000 euros bruto/año!!!!  Espero que se trate de un error porque si alguien esta dispuesto a cobrar semejante miseria es que el mundo esta peor de lo que nos cuentan… vaya haciendo bocadillos en un fast-food cobraba mucho más que esto. Y para más inri 5 años de experiencia e ingeniero. Es una falta de respeto, espero que sea un error.

Zend Service Amazon response status code 400

Hoy, al hacer pruebas con Zend_Service_Amazon me he encontrado con esto…
Message: An error occurred sending request. Status code: 400
Y por mucho que googleara no encontraba el error… entre debugando y metiendo mano al código, miro la hora y veo que son las 2:00 de la madrugada… mmm… ups no, no puden ser las 2:00… el reloj de la maquina virtual está mal. Voilà!

Solución: ¡ajustar la hora del servidor!

Por otra parte… y no tiene nada que ver, parece ser que lleva unos días caido pear.phpunit.de, por lo que instalar phpunit desde pear es imposible

Solución a “Image corrupt or truncated”

Hoy, al crear la maquina virtual y descargar el reposiorio en ella he comprobado que al cargar la web no se veia ninguna imagen. Firbug saltaba por cada imagen con el mensaje: Image corrupt or truncated.

El problema viene dado por usar el sistema de comparición de carpetas de virtualbox, por algun motivo le esta añadiendo bites a las imagenes, lo cual hace que los ficheros sean enviados al cliente con errores.

Solución: añadir en la configuración de apache:

EnableMMAP off
EnableSendfile off

Evento oninput en input type number

Una de las cosas bonitas del HTML5 son los nuevos elementos de formularios.

Haciendo pruebas con los nuevos elementos vi que el elemento de tipo number en Safari no responden a los eventos cuando haces click en los controles (las flechecitas de arriba y abajo), solo cambia el valor, pero no se disparan los eventos atachados via JavaScript.

La solución más facil es usar el evento click.

Sobre maquetadores y frontends, reflexión

El perfil del maquetador web siempre ha quedao relegado a un programador o a un diseñador; pero cada vez se hace más obia la necesidad de un perfil más experto en esta area.

Para nada cosideraria que un maquetador no sabe de semántica ni de accesibilidad, eso depende de los conocimientos de la persona. Pero e aquí cunado un maquetador deja de ser maquetador para convertirse en frontend que deberia conocer y dominar toda una serie de aptitudes:

  1. XHTML semántico
  2. Tablas solo para datos tabulares
  3. Recomendaciones W3C
  4. Reconocer IE6 como hijo navegador pese a que de muchos disgustos
  5. Separar el contenido de la presentación y de la interactividad
  6. Accesibilidad
  7. Optimización web (imagenes, cargas, etc.)

Es un perfil relativamente nuevo que muchas empresas aun no tienen y muchas que no saben que lo necesitan.

Yo personlamente me considero frontend, pues creo sinceramente que hago algo más que maquetar una web.

Lo malo de este perfil es que cuesta mucho encontrar ha alguien que reuna todas estas caracteristicas (y que quiera cobrar lo que se esta pagando –depende claro, de la empresa–)

A mi jucio, lo peor de ser frontend es que me veo obligado a pelearme con diseñadores y progrmadores. Unos porque hacen diseños imposibles o muy costosos (para nada les importa el crossbrowsing, y a veces parece que ni la semántica –la usabilidad si, les encanta–) . Con otros porque te tocan el código y rompen la accesibilidad y la semantica con javascript obstrusivo o agrupando elementos con spans donde les interesa.

Con todo estos lo que queiro decir es que cada uno es lo que sabe y hace lo que puede. No importa demasiado el nombre o la etiqueta que le pongas. Las empresas miran por el dinero y no saben ni quieren saber (ni entender) que el maquetador/frontend es como la cola que engancha el diseño con la programación y que como professional que es tiene unas necesidades y unos valores.

No hace mucho las web eran como casas de paja. Pensad que las empresas que tienen todo su negocio enfocado en internet (en españa) la mayoria no tienen mucho más de 10 años y que muchas de estas no han podido afrontar los cambios que han surgido en internet.

Hace diez años no existian ni las capacidades técnicas ni los frameworks con los que hoy podemos trabajar.

Aunque Tim Berners-Lee concebiera la web como algo semántico y accesible es precisamente lo contrario, el uso del no-estandar, lo que permitió la rápida expansión de la web.

Afortunadamente desde hace unos pocos años la cosa esta cambiando, pero antes han de madurar las empresas y entender que al lobo no le costó tirar al suelo la casa de madera.

Instalar APC en Snow Leopard

Actualmente estoy integrando Doctrine 2 con Zend Framework.

A la hora de executar en la terminal doctrine orm:validate-schema me encontraba con el siguiente error:

PHP Fatal error: Call to undefined function Doctrine\Common\Cache\apc_fetch() in /vhosts/doctrine/library/Doctrine/Common/Cache/ApcCache.php on line 59

Esto sucede porque no tengo instalado el APC.

Para instalar correctamente el APC se han de indicar en Snow Leopard unos flags para que el APC se compile con la arquitectura adecuada

wget http://pecl.php.net/get/APC-3.1.3p1.tgz
tar -xvf APC-3.1.3p1.tgz
cd APC-3.1.3p1
/usr/local/zend/bin/phpize

MACOSX_DEPLOYMENT_TARGET=10.6
CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET

./configure --enable-apc-mmap --with-apxs=/usr/sbin/apxs --with-php-config=/usr/local/zend/bin/php-config

make
sudo make install

Luego insertamos en el php.ini

extension=apc.so

apc.enabled=1
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1

Reinicia el apache y revisa la configuración del APC con phpinfo(), verás que se ha compilado correctamente.

Actualización: Si al recargar las paginas web se os queda la página en blanco mirar los logs de php. Si os aparece:
Module 'apc' already loaded in Unknown on line 0 comentar la linea extension=apc.so poniendo un “;” (punto y comoa) delante.

Firefox 3.6 falla más que una escopeta de feria

Firefox falla más que una escopeta de feria

Lo cierto es que no se si se trata de Firefox 3.6 o de firebug 1.5.0 o de algun otro plugin como el HTML Validator 0.8.6.1 pero la cosa cada día va a peor. Con Firefox 3.5 tampoco iba demasiado fino el tema. Me recomendaron hacer un downgrade a Firebug 1.4.0. y tampoco ha solucionado nada.

Los principales problemas que tengo són:

  • Firefox se cuelga más de lo habitual, especialemente cuando me levanto y vuelvo al cabo de un rato, es decir en periodos de inactividad.
  • Firebug no es capaz de desplegarme el inspector, se queda en el body o en algun div. Por lo que he de reinicar Firefox.

Psansaba que podría ser algo de mi Mac, pero me pasa en varios Mac’s (los de casa y el del trabajo). Pensaba que seria algo de los Mac’s, pero colegas del trabjo que usan windows estan igual.

A todo esto… pues le estoy dando una oportunidad a Opera que trae por defecto herramientas de debug muy buenas…