Como instalar el módulo sqlite para php 5.1.2 en Centos

En un Centos que tiene instalado php 5.1.2 me vi necesitado de instalar una aplicación que requería sqlite. PHP había si compilado sin soporte sqlite y sólo disponía de pdo_sqlite. Al ejecutar la aplicación en los logs salía un error que indicaba lo siguiente.
PHP
PHP Fatal error: Call to undefined function sqlite_open()

Para instalar el módulo php sqlite hay que descargarselo y compilarlo.

Descargar el código que corresponda a la versión de php instalada en nuestro caso la versión 5.1.6

wget wget http://museum.php.net/php5/php-5.1.2.tar.gz
tar -zxvf php-5.1.2.tar.gz
cd php-5.1.2
cd ext
./configure
make
sudo make install

Si no está instalado el compilardor hay que  instalarlo y las librerías de desarrollo de php.

sudo yum install gcc
sudo yum php-devel.x86_64


Al ejecutar make install, se muestra un texto como este.

Installing shared extensions: /usr/lib64/php/modules/
Installing header files: /usr/include/php/

En modules apareció un nuevo módulo llamado sqlite.so.

Los siguientes pasos fueron:

  • crear un nuevo fichero en /etc/php.d/ llamado sqlite.ini con la cadena “extension=sqlite.so”
  • Reiniciar apache

Se que esta no es la versión más reciente de php, pero en este caso estaba limitado a la versión que tiene el servidor. Espero que a alguien le sirvan estas instrucciones. Esta solución está basada en las instrucciones de instalación de sqlite de php.

Como ocultar los bordes de un Iframe en IE (Internet Explorer)

Hoy nuevamente y para variar el IE me ha hecho perder una buena cantidad de tiempo, tal ves por ceñirse al estándar de html o que se yo, pero el echo es que quería mostrar un iframe en una página y en firefox, el iframe sale sin ningún tipo de bordes, pero en IE por más que intenté por css quitar todos los bordes no lo conseguía.

 

La siguiente imagen es un iframe clásico como lo escribiríamos muchos:

<iframe class=”frmPubIzquierda” src=”laurl” width=”116″ scrolling=”no” height=”60″></iframe>

 

 image

 

Como no queremos ver los bordes, lo que tenemos que hacer es fijar otros atributos html del elemento iframe. (ver todos los atritbutos de iframe). Estos atributos son:

 

frameborder: Define el borde del marco (ancho) (Efecto IE si no se pone a 0: Color gris  alrededor)

marginwidth: Especifica la distancia entre el margen izquierdo y el contenido (Efecto IE si no se pone a 0: Color gris  a la izquierda)

marginheight: Especifica la distancia entre el margen superior y el contenido (Efecto IE si no se pone a 0: Color gris  a la arriba)

Así que para solucionarlo, simplemente añada estos atributos con valor ‘0’ en la declaración del iframe

<iframe class=”frmPubIzquierda” src=”laurl” width=”116″ scrolling=”no” height=”60″ frameborder=’0′ marginwidth=’0′ marginheight =’0′></iframe>

Apache 2.2.8 en Windows Vista

Hoy he actualizado la versión de mi apache 2.2.4 a 2.2.8 en Windows Vista. La versión 2.2.8 fue lanzada en enero 19 de 2008. El procedimiento que seguí fue el siguiente:

  • Hacer un backup del fichero de configuración.
  • Des instalación del apache 2.2.4.
  • Instalación de apache 2.2.8. (Este procedimiento tal cual no instala adecuadamente el servicio de apache). La versión que me instalé es la que soporta ssl.

La instalación la hice desde una consola DOS de administrador ejecutando el instalador, para evitarme algún inconveniente como los sufridos en la primera instalación.

Como el servicio no se instaló correctamente, lo instalé de forma manual usando el comando:

c:’…’apache2.2’bin’httpd.exe -k install -n Apache2.2

Una vez instalado el servicio, intenté usar el monitor (que ahora si se ejecuta, el de la versión 2.2.4 daba un error) pero como sorpresa me llevo que tengo que ejecutarlo como administrador para poder parar y activar el servicio. . Así que por ahora voy a ponerle privilegios en el enlace simbólico que pone en el menú de inicio para que arranque el monitor. Si me da pegas al iniciar la máquina lo quito porque la verdad no lo necesito pues mantengo el servidor el 100% activo.

Nota: Hice esta instalación, porque vi en los logs de mi equipo varias entradas de caídas del apache. Espero que todo vaya bien.

Problema con urls y TinyMCE en PHP

Al utilizar Tinymce en PHP tenia un inconveniente al utilizar los enlaces y las imágenes que se creaban desde el editor avanzado. Con un poco de reingenieria me di cuenta que al sacar el contenido de la BD las url me quedaban con in "’" antes de las dobles comillas, aunque en la BD se encontraran sin la misma. Por ello, al sacar el contenido el editor se la pegaba.

Pasando el texto a la función stripcslashes de PHP, se eliminan estos backslash y el editor funciona de maravilla. Lo mismo que las imágenes. La versión de editor que uso es la 3.0.1 con el compresor de PHP.

Perdido en el limbo con sw opensource

Estoy un poco decepcionado o con mi capacidad de instalar y configurar las cosas de manera rápida o porque efectivamente algunas aplicaciones no van bien del todo.

Primero, phpGrouware, me instalé la última versión para debian y nada, da un error que no está documentado ni resuelto en ningún lado. Luego eGroupware, lo mismo, intento instalarlo en un debian y nada. Luego, ayer con el Gregarius, suena muy bien la aplicación, pero intenté instalarla con la configuración que tengo de php + mysql y solo me crea un conjunto de tablas a medias.

Por último, hoy intentando usar el wiki de eGroupware que tenemos en la oficina, no encuentro una forma práctica de colocar enlaces internos usando el editor avanzado. No me quiere deshabilitar el editor avanzado para hacerlo con sintaxis wiki y por último, intento probar las noticias y no van… esto es una locura. Estoy aburrido.

No pongo los enlaces porque no me apetece mucho

Problemas con AdsRotator en CSharp

El control AdRotator de CSharp (C#) es una herramienta muy útil para generar publicidad rotativa de manera rápida. Se puede enganchar a una fuente de datos, configurarse dinámicamente o tomar los datos desde un fichero XML que cumpla con el esquema especificado para los ficheros de publicidad.

El único inconveniente que he encontrado hasta el momento es que si colocas varios controles seguidos con un conjunto de imágenes muy pequeño, enganchados desde la misma fuente de datos, los banners se repiten. Es decir, no tiene un mecanismo que guarde una memoria de la publicidad que se ha desplegado en la imagen a partir de la misma fuente de información.

Intenté modificar o cambiar dinámicamente los enlaces pero no he conseguido hacerlo. Si se construyen directamente en el código no hay un método que me permita recuperar la imagen asociada al banner una vez asignada la fuente. La única alternativa podría ser utilizar el evento de creación donde sí se recupera la imagen y la url asociada, pero si tengo que leer el fichero XML para cambiar la imagen y llevar el control manual de los que ya he sacado creo que puedo pasar del AdRotator. Si alguien sabe como "Agruparlos" los consejos serán bienvenidos.

Clase Hash en Prototype 1.6RC1

La versión nueva de la clase HASH de Prototype 1.6R1C ha sido modificada, esta versión no es compatible con la usada en las versiones anteriores. Un caso práctico es lo relacionado con la creación y asignación de valores almacenados en una clase HASH. En mi caso, usaba la siguiente forma (Prototype 1.5.1)

var ph=new Hash({operacion:1,gm_modulo:0,gm_selectName:""});
//Inicializamos los valores a enviar
//reemplazar por los valores correspondientes
ph["operacion"]=1;
ph["gm_modulo"]=modulo;
ph[’gm_selectName’]=’listaFicheros’
En la nueva versión, hay que hacerlo así:

var ph=new Hash({operacion:1,gm_modulo:0,gm_selectName:""});
//Inicializamos los valores a enviar
//reemplazar por los valores correspondientes
ph.set"operacion",1);
ph.set"gm_modulo",modulo);
ph.set’gm_selectName’,’listaFicheros’

Usando los métodos set, get y unset de la clase para fijar (crear), obtener y quitar un elemento de la tabla HASH.

Lista de cambios.
Descargar Prototype 1.6R1C

TinyMCE Comprimido

En un desarrollo que estoy haciendo estoy usando TinyMCE un editor web avanzado de texto usado ampliamente en aplicaciones opensource. El tamaño de carga de la página midiendo solo los ficheros JS era de 489KB medida en el firebox mediante el plugin firebug, el cual sea del paso para mi es una herramienta fundamental para cualquier desarrollador de aplicaciones web.

Dado que el tinyMCE ocupaba un tamaño considerable decidi buscar la versión comprimida (aqui). Siguiendo unas sencillas instrucciones incorporé el script comprimido y el tamaño total de carga se redujo a 363KB, una reducción impresionante (un 26% menos). Haciendo un análisis de los ficheros, he encontrado que al cargar tiniMCE sin comprimir este carga los siguientes ficheros:

  • TinyMCE.js 147KB
  • Theme/es.js 5KB (no coloco todo el path)
  • TinyMCE/es.js 3K
  • editor_plugin.js 4K
  • advimage.js 2K

Al utilizar el compresor, se pone todo en un solo fichero llamado tiny_mce_gzip.js de tan solo 5KB. Se gana en menor tamaño y menos operaciones http.

Depuración Visual Estudio 2005 y Vista

La cuestión es muy simple, ejecutar Microsoft Visual Estudio 2005 como un usuario normal no vale para depurar, para ello toca ejecutar VS como administrador. Esto se llama…Tocarle los …. a los desarrolladores. Porque además, si estas como un usuario normal y silvestre el Visual Estudio te deja pone el botón de depuración, le das y pasa de todos los puntos de ruptura que pongas.

Para evitarse problemas de olvidarse a la hora de arrancarlo, asignele permisos de administrador a la aplicación, con eso te sigue preguntando luego… "Este programa necesita privilegios para ejecutarse"…. jolines.. no tiene memoria el Vista, si yo mismo se los di, para que me pregunta. :-).

Lista Aplicaciones para instalar en Vista desde Consola

A continuación una lista de las aplicaciones que he probado instalar en vista y se instalan correctamente desde línea de comandos desde una consola de administrador.

  • Mysql
  • apache 2
  • WinMerge.
  • DBDesigner.

Para ejecutar la consola en modo administrador vaya al menú de inicio de Vista, seleccione Accesorios, y pulse el botón derecho sobre la opción "simbolo del sistema" y seleccione la opción "Ejecutar como administrador". Luego, busque el binario de instalación y ejecútelo.