sábado, febrero 24, 2007

PHP5 MSSQL

En este articulo voy a explicar como compilar PHP5 con soporte para MSSQL y como empaquetarlo para debian, para meterlo luego en un repositorio debian :)

Todo esto es para la debian stable (sarge).

Primero de todo creamos un directorio de trabajo:

# mkdir /usr/src/devel

Luego entramos en el:

# cd /usr/src/devel

Descargamos las fuentes de PHP5 para debian:

# apt-get source php5

La versión que me ha descargado es la php5-5.2.0. Esta ultima orden a parte de bajar las fuentes, aplica los parches y lo deja listo para ser empquetado.

Ahora vamos a instalar las dependencias de compilación:

# apt-get build-dep php5


Instalamos el paquete de desarrollo de freetds (si no se ha instalado):

# apt-get install freetds-dev

Vamos a hacer unas pequeñas modificaciones en algunos ficheros del directorio debian para que tenga soporte para MSSQL.
En el fichero control añadir lo siguiente:

Package: php5-mssql
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${php:Depends}, php5-common (= ${Source-Version})
Description: MSSQL module for php5
This package provides a module for MSSQL using FreeTDS.
.
PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
from C, Java and Perl with a couple of unique PHP-specific features thrown
in. The goal of the language is to allow web developers to write
dynamically generated pages quickly.


En el fichero modulelist añadir:

mssql MSSQL

Por ultimo en el fichero rules, en la función configure-apache2-stamp donde pone --with-mysql=shared,/usr \ añadir:

--with-mssql=shared,/usr \

en la misma función cambiar --without-pdo-dblib \ por:

--with-pdo-dblib=shared,/usr \

Finalmente volvemos al directorio padre y lo empaquetamos:

php5_5.2.0# dpkg-buildpackage

Con esto tendremos el PHP5 empaquetado en varios modulos entre los que veremos:

php5-mssql_5.2.0-8~bpo.2_i386.deb

Ahora vamos a construir el repositorio de paquetes debian. Primero de todo creamos un directorio llamado debian en el www.

# mkdir /var/www/debian

Luego creais el siguiente script para crear el repositorio:
#!/bin/bash

REPO="$1"
if [ ! -d "$REPO" ]; then
echo "Usage: $0 repo"
exit 1
fi
(
cd "$REPO"
dpkg-scanpackages . /dev/null | tee Packages | tee >(gzip -9c > Packages.gz) | bzip2 -9c > Packages.bz2
apt-ftparchive release . > Release
gpg --output Release.gpg -ba Release
)
-----------------------------------------------------------
Lo copiais en /usr/local/bin y de le dais permisos de ejecución.

Nos situamos en el directorio donde estan los paquetes deb y ...

cp *deb /var/www/debian
update-debian-repos /var/www/debian

Finalmente añadimos una linea similar a la siguiente en el archivo /etc/apt/sources.list:

deb http://nuestroservidor/debian/ ./

Actualizamos la Base de datos de paquetes:

# apt-get update

Ahora buscamos el paquete:

# apt-cache search mssql

y veremos algo como:

php5-mssql - MSSQL module for php5

Para instalar-lo basta con:

#apt-get install php5-mssql

y eso es todo viejo amigo :D

PD:Si por alguna razón se quisiera empaquetar como otra version se puede poner al principio del fichero changelog del directorio debian algo como:

php5 (5.2.0-8~bpo.3) sarge-backports; urgency=low

* Added support for mssql
php5-mssql

-- Jose Gonzalez Fri, 23 Feb 2007 12:00:10 +0200

miércoles, febrero 14, 2007

howto sacar variables de entorno //Util para programación web

A veces se nos olvida cual es la información que podemos sacar de una peticion http, pues bien, a continuación muestro un pequeño cgi que muestra las variables de entorno.

#!/bin/bash
echo "Content-type: text/html"
echo
echo "<html>"
echo "<body>"
set
echo "</body>"
echo "</html>"


Esto nos mustra todas las variables de entorno, entre otras podremos ver las del protocolo HTTP.

sábado, febrero 03, 2007

Howto make 3-D glasses o como dirian otros como fabricar unas gafas 3-D

En este articulo voy a explicar como hacer unas gafas 3-D.

¿Para que sirven? para ver imagenes o video en 3-D.

Son las tipicas gafas hechas con celofan ;)

Ingredientes:
  • 3 folios de celofan de color rojo, verde y azul.
  • tijeras
  • cartulina
  • lapiz
  • pegamento
Primero de todo he utilizado otras gafas de cartulina para dibujar - usandolas para el controno - las gafas sobre la cartulina con el lapiz. Luego he medido a que altura ivan los ojos para dibujar los cuadrados en el interior. Tambien he dibujado la pieza que tiene que ir por dentro con sus correspondientes agujeros.


Una vez se tienen las gafas dibujadas pasamos a recortarlas...



Una vez recortadas ha que cortar cuatro trozos de celofan un poco mas grandes que los agujeros del interior de las cartulinas. Hay que cortar dos de color rojo, uno de color verde y otro de color azul.
Ponemos un poco de pegamento sobre los bordes y pegamos los dos pedazos de celofan rojo donde tiene que ir el ojo izquierdo y los restantes donde tiene que ir el ojo derecho.


Finalmente se pone pegamento en las partes restantes de la cartulina y un poco - cuidadosamente - sobre los el cefolan que hay sobre la cartulina, se juntan las piezas para que el pegamento se adhiera y se pone debajo de algun libro gordo para que haga presión.