DB error – Error: invalid user id 0

Este error me aparecía cuando intentaba ver la lista de procedimientos almacenados, en este caso con Aginity Workbench. Al parecer es porque en algún momento se intentó dropear un procedimiento pero no todas las referencias se eliminaron. Una de las soluciones que encontré era de volver a crear los procedimientos y después borrarlos, en mi caso no funciono.

Con esta consulta identifique los SP que estaban causando problemas:
select oid, proname from _t_proc where oid>200000 and prorettype > 0 and prorettype not in (select oid from _t_object);

Borre de la tabla _t_proc los registros de los SP corruptos y así pude ver de nuevo la lista.

Instalar driver de MongoDB para Php en Ubuntu

Instalar el driver de mongo para php me resulto un poco caótico, pero al final estos pasos son lo que funcionaron en un Ubuntu 14.04

Instalar dependencias:
$ sudo apt-get install php5-dev php-pear

Instalar driver con PECL (PHP Extension Community Library):
$ sudo pecl install mongo

Habilitar extensión:
# echo "extension=mongo.so" > /etc/php5/mods-available/mongo.ini
# php5enmod mongo

Verificar que extensión este disponible
$ php -i | grep mongo

Este debe ser el resultado, es la misma información que despliega con phpinfo():
/etc/php5/cli/conf.d/20-mongo.ini,
mongo
mongo.allow_empty_keys => 0 => 0
mongo.chunk_size => 261120 => 261120
mongo.cmd => $ => $
mongo.default_host => localhost => localhost
mongo.default_port => 27017 => 27017
mongo.is_master_interval => 15 => 15
mongo.long_as_object => 0 => 0
mongo.native_long => 1 => 1
mongo.ping_interval => 5 => 5

Reinciar apache:
$ sudo service apache2 restart

Listo!

Instalación de drivers de Netezza en Ubuntu para usar con PHP

Netezza es un appliance de IBM diseñado para el análisis de una gran cantidad de datos en poco tiempo. Los drivers se pueden descargar de la página de IBM, pero en este caso ya los tenía en el servidor. Utiliza un fork de PostgreSql bajo un arquitectura Red Hat. Para conectarme desde Ubuntu seguí este procedimiento:

Instalar unixodbc
# apt-get install unixodbc
unixodbc crea un archivo odbcinst.ini en /etc/ que se sobreescribe con archivo de driver (mas adelante).

Preparar subdirectorio para descargar software
$ mkdir nz-client
Copiar driver de Netezza (en esta ruta también estan los de windows)
$ scp nz@:/home/nz/nps_client_software/nz-linuxclient-v7.0-P4.tar.gz .
Descomprimir software
$ tar -xzvf nz-linuxclient-v7.0-P4.tar.gz
Instalar driver en /usr/local/nz
# ./linux64/unpack

Copiar archivos de configuracion
$ cp /usr/local/nz/lib64/odbc.ini.sample ~/odbc.ini
$ sudo cp /usr/local/nz/lib64/odbcinst.ini.sample /etc/odbcinst.ini

Configurar variables de entorno
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/nz/lib64
$ export ODBCINI=/home/desarrollo/odbc.ini
$ export NZ_ODBC_INI_PATH=/home/desarrollo
$ export PATH=$PATH:/usr/local/nz/bin64

Prueba con nzodbcsql (programa para probar el driver ODBC de Netezza).
$ nzodbcsql -h -d -u -p

Editar archivos de configuración (Servername, Database, Username, Password)
$ vim ~/odbc.ini
Editar linea si arquitectura es x64
$ vim ~/odbcinst.ini
Driver = /usr/local/nz/lib64/libnzodbc.so

Instalar modulo de odbc para php
# apt-get install php5-odbc

Reiniciar apache para cargar modulo
# service apache2 restart

Prueba con consola de php
$ php -a
php> $conn = odbc_connect("DRIVER={NetezzaSQL};Server=host;Database=db","usuario","password");
php > $qry = 'select count(*) c from tabla';
php > $result = odbc_exec($conn,$qry);
php > odbc_fetch_row($result);
php > echo odbc_result($result,'c');
40php >

¿Como saber que distribución Linux estoy usando, y si el sistema es de 32 o 64 bits?

Y que me da curiosidad por saber que distribución linux estoy usando:

$ lsb_release -a

LSB Version: :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: CentOS
Description: CentOS release 4.4 (Final)
Release: 4.4
Codename: Final

Para ver el detalle de la máquina:

$uname -a

Linux mimaquina 2.6.18-348.4.1.el5 #1 SMP DDD MMM timestamp TZ YYYY i686 i686 i386 GNU/Linux

Si el resultado es x86_64, tiene un sistema de 64 bits, si es i386…i686 es de 32 bits.

Evento para desarrolladores, diseñadores e innovadores TI en Tijuana

Hace unos dias Mario Chávez me comentaba de un evento tipo Code Camp / Super Happy Dev House que pretende hacer para finales de Octubre, tentativamente.

Hay una encuesta para saber el tipo de evente que nos gustaria asi que no dejen de participar.

A diferencia de otro tipo de eventos en el área de TI, este va dirigido a los desarrolladores, administradores, diseñadores, gente creativa que busca cristalizar ideas. No es necesario saber programar para poder participar, un proyecto de software es mas que únicamente escribir lineas de código en un lenguaje de programación.

Independientemente del modelo de evento que se elija, los objetivos generales del evento son:

  • La participación y colaboración de los asistentes durante todo el evento, eliminar la pasividad
  • Ayudar y/o apoyar a que esas ideas interesantes vean la luz y no se queden en algún obscuro rincón del disco duro
  • Tener un momento de diversión y conocer a mas gente del área en la zona
  • Crear la base para tener mas eventos de forma periódica en la región.
  • Creo que es un buen proyecto en el que deberiamos participar, algo aprenderemos y que mejor con gente que esta dispuesta a compartir sus conocimientos.