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…


Google translator, nuevas funcionalidades

Google Translator es una de aquellas pequeñas herramientas que todo el mundo conoce y que a la vez aveces pasa como por inatvertida, tal vez por existen herramientas tambén gratuitas y tal vez más potentes como wordreference.

Pero lo curioso de Google Translator es su evolución y como con el tiempo y sin avisar se ha mejorado. Parece un cmapo de pruebas, muchas veces me ha pasado que no he usado la aplicación y al entrar pienso: “¡C***! Otra vez…. ¡la han vuelo ha cambiar!”. Y aunque no siempre la aciertan con los cambios (ponen botones personalizados, ahora los sacan, ahora ponen una lista… ) Habria estado bié hacer una captura de pantalla de cada una delas versiones que se han visto… pero la mejor sin duda es la actual, epero que esta vez duré mucho porque es casi un juguete con el que puedes matar el tiempo traduciendo palabras.

Entre las nuevas funcionalidades que podemos ver (almenos las descubreo hoy) es que si la palabra o frase traducida es en ingles, podemos pedirle a google que la lea, por fin dejaremos de decir “bug” y diremos “bag” (o algo así).

Pero lo que más me ha gustado (al menos lo he descubierto hoy) es que si traducimos una palabra al japonés o chino, a parte de mostranos la palabra en chino o japonés podemos hacer que nos muestre la palabra en formato romanizado, es decir en nuestro albafeto por lo que además podremos leer en chino o japonés.

Por otra parte, tambén nos ofrece un diccionario detallado en palabras sueltas, si se trata de un nombre o verbo… y ahora me surge la duda ¿siempre ha funcionado con peticiones AJAX? Esto no creo que sea nuevo, pero ahora en lugar de mostrar los resultados a la derecha los muesrtra debajo.

En fin lo que decía todo un juguete para perder el rato escuchando palabritas en inglés o mirando como se dice en japonés 私はスリープ状態に入る (watashi wa surīpujōtai ni hairu) .


Zend Form Decorator, parte I

Los formularios de Zend Framework es una de las cosas que más me gustan del framework porque te permite validar, procesar y modificar los formularios de una forma muy rápida y limpia. No obstante, de entrada queda todo muy limitado por la forma de presentar los datos con una lista de definición (dl). Aveces soy muy purista, y usar dl, dt y dd para maquetar un formulario no lo encuentro nada semántico (y tampoco con li).

La primera necesidad que me surge es cambiar el dl por un div y los dt’s y dd’s por p’s del formulario:

$form->clearDecorators()
	->addDecorator('FormElements')
	->addDecorator('HtmlTag', 	array('tag' => '', 'class' => 'zend_form'))
	->addDecorator('Form')
	->setElementDecorators(array(
		array('ViewHelper'),
		array('Errors'),
		array('Description', 	array('tag' => 'span', 'class' => 'element-description')),
		array('Label', 			array('separator' => ' ')),
		array('HtmlTag', 		array('tag' => 'p', 'class' => 'element-group')
	),
));

¡¿Que coño pasa con zend framework!?

Cada vez que actualizo el maldito Framework he de hacer malavares para poder settear mis aplicaciones… que si borra una en set_include_path, que si crea un puto plugin para que funcionen los modulos.

Cada vez los errores por pantalla son más extraños… ¡estoy hasta el moño! ¡Me paso a Symphony!


Oferta de Trabajo de mquetador en Atrapalo

Atrapalo.com

En Atrapalo.com se busca maquetador web.

Si buscas trabajo y tienes conocimientos en maquetación puede interesarte la oferta (todo es negociable). Puedes ver anuncio en infojobs.


Gracias a todos por vuestros comentarios

No quería irme a dormir sin expresar lo contento que me siento por los comentarios recibidos  últimamente, y en especial el primer comentario que dejó Olagato que me animó a continuar escribiendo sobre Zend.

Me dolió mucho los comentarios y la falta de respeto que mostró <em>Javi Moya</em> pero vosotros me lo habéis hecho olvidar rápidamente ¡Gracias!

Como veis es un blog pequeño y personal de pocos posts y muchos de poco interés.

Deciros que no me avergüenzo de decir que ayer cumplí mi récord de visitas 44! Y pese a ser un número ridículo cada vez que la web supera en vistas día tras día o cada vez que alguien deja un post aportando valor y no destruyendo me llena de alegría y no puedo evitar gritar en medio de la oficina “¡Tengo un nuevo comentario!” o “¡He superado mi record de visitas!”. Porque pese a trabajar (y haber trabajado) en webs con miles (y cuando digo miles son muchos miles) de visitas diarias, mis 44 visitas de mi blog son para mi mis 44 visitas más felices (incluso las de los bots).

Dado que lo que me gusta y parece que os gusta es Zend estoy preparando una nueva versión del blog más enfocada a este tema. Tengo dudas de como afrontar el cambio o de lo contrario abrir otro blog a parte, eso sí con Wordpress porque lo cierto es que no tengo tiempo para crear un blog con Zend.

Bueno, me quedo con ganas de decir y agradecer muchas cosas pero no quiero aburrir a nadie así que he borrado unos cuantos parágrafos. Por lo que me despido hasta un próximo post dando las gracias a:

Olagato, Arts, Federico, Milena, Caro, Matias y a Lisandro ¡Gracias!

Buenas noches y felices Zend-sueñuos


Zend Layout y ActionStacks de Zend Framework

En la documentación deZend Layout no acaba de quedar muy claro como se usa y suele provocar muchas confusiones si solo hacemos una lectura vertical del manual.

Zend Layout es uno de mis objetos preferidos por la versatilidad que ofrece y una vez entiendes el proceso y como combinarlo con el resto del Framework y los placeholders obtienes una gestión muy clara de las plantillas.

Vamos a suponer el siguiente layout:

<div>
<?php echo $this->render('header.phtml') ?>
<h1><?php echo $this->placeholder('h1') ?></h1>
<?php echo $this->layout()->nav ?>
<?php echo $this->layout()->content ?>
</div>

Zend Framework no funciona en MAMP PRO

Pues hoy me he de comer las palabras que dije ayer en el post que hablaba de MAMP. Hoy he querido probar MAMP Pro y me ha decepcionado.

A diferencia de la versión lite, con la Pro puedes configurar los virtual hosts sin tocar ningún fichero de conflagración ni el fichero hosts lo cual resulta muy práctico cuando no te mueves con soltura por la Terminal.

El problema en cuestión ha sido un “Fatal error: Allowed memory size of …” al ejecutar una apalicación desarrollada en Zend Framework. Por defecto PHP establece un máximo memoria de 8 Mb y cambiar este valor es tan fácil como editar el parámetro  memory_limit el php.ini.


YouTube hace pruebas en HTML5

YouTube HTML5

El otro día un compañero me enseñaba un link curioso sobre lo que se cuece en la casa de YouTube. Y es que lo están preparando todo para la llegada del HTML5. Si usamos la última versión de Safari o Firefox 3.5 podrás ver como reluce YouTube en HTML5.

Cabe destacar que es solo una maqueta así que no esperes ver ningún video pero lo curioso es que si no dispones de un navegador que sporte HTML5 en realidad no se ve nada mal excepto por algunos botones mal ubicados.

Quiero pensar que el soporte que dan lo navegadores a HTML5 e iniciativas como estas van a impulsar de una vez por todas la web semántica y que los millones de usuarios que usan navegadores obsoletos den el salto a la modernidad.