Monthly Archive for Enero, 2008

Malditos queries

querySon las 9pm 10pm y sigo en el trabajo, todavía me queda un rato más porque algo me atrasó.

Yo trabajo con PL/SQL de Oracle y el problema era este: una página que ejecutaba un query devuelve un resultado y otra página que ejecuta otro query prácticamente igual pero que devuelve otro resultado.

Eran queries sencillos (a unas cuantas tablas), pero para poner las cosas más interesantes, los queries no eran exactamente iguales (uno devolvía un listado, así que tenía algún GROUP BY por ahí pero los resultados de los dos tenían que tener sentido),, además, uno de ellos era dinámico (así que tuve que “construirlo” al vuelo para probar).

Luego de quitar cosas que no vienen al caso (las columnas devueltas en el SELECT, y los GROUP BY) y armar el query dinámico, estos eran:

Query 1:

SELECT *
  FROM cashdesk.np_payment_concept pc,
       cashdesk.np_payment_order_detail pod,
       cashdesk.np_payment_order po,
       cashdesk.np_payment_document pd,
       cashdesk.np_operation op
 WHERE po.npstatus = '20'
   AND pd.npstatus = '10'
   AND op.npstatus = '10'
   AND op.npoperation = '60'
   AND op.npoperationtype = '10'
   AND po.npcustomerid = 482473
   AND pc.npconceptid = pod.npconceptid
   AND pod.nppaymentorderdetid = po.nppaymentorderid
   AND po.nppaymentorderid = pd.nppaymentorderid
   AND pd.npoperationid = op.npoperationid
   AND op.npoperationid > '3522'
   AND TRUNC(op.npcreateddate) >= TRUNC(SYSDATE)
    AND pc.npconcepttarget = '30'

El segundo query era este:

SELECT *
  FROM cashdesk.np_payment_concept pc,
       cashdesk.np_payment_order_detail pod,
       cashdesk.np_payment_order po,
       cashdesk.np_payment_document pd,
       cashdesk.np_operation op
 WHERE po.npstatus = '20'
   AND pd.npstatus = '10'
   AND op.npstatus = '10'
   AND op.npoperation = '60'
   AND op.npoperationtype = '10'
   AND po.npcustomerid = 482473
   AND pc.npconceptid = pod.npconceptid
   AND pod.nppaymentorderid = po.nppaymentorderid
   AND po.nppaymentorderid = pd.nppaymentorderid
   AND pd.npoperationid = op.npoperationid
   AND op.npoperationid > '3522'
   AND TRUNC(op.npcreateddate) >= TRUNC(SYSDATE)
   AND pc.npconcepttarget = '30'

¿Encuentran por qué es que no devuelven lo mismo? A mi me tomó un buen rato y la ayuda de 3 personas más. Al final tuve que copiarlos en dos archivos de texto y usar uno de esos programa para buscar diferencias.

Entradas Relacionadas:
  • Malditos programas
  • Error 28 en MySQL
  • Código en la vida real y en Hollywood
  • Taxonomía de la Blogocosa

    En estos días hay alboroto en la blogocosa. Una cronología de los hechos puede ser encontrada en Meneame. Pero con lo que más me he reído ha sido con la taxonomía escrita en Don’t Panic.

    Jaroslaw Filiochowski describe con acierto los tipos de blogges que podemos encontrar. Por ejemplo:

    La Loca

    Es la típica adolescente o joven, insegura de su mundo, tal vez con tendencias melancólicas y suicidas, o tal vez sólo enamorada locamente de su cantante de turno. A través de la escritura, da salida a sus dilemas personales, pues no se atreve a confiarlos a ninguna amiga… o porque simplemente no tiene amigas. Sus blogs son muchas veces efímeros, pues cuando vuelve a leer lo que ha escrito cambia de idea y decide borrarlo. O tal vez solo se aburra del blog y lo deje expirar.

    Mr. Gadget

    En vez de tías en bolas, sus blogs están llenos de hardware destripado o que le gustaría destripar. Al principio se esfuerza en escribir algo interesante, pero con el tiempo su blog se va pareciendo cada vez más al catálogo de novedades de unos grandes almacenes. Obviamente, se saca un buen pillizco entre el hardware que le envían para echar un vistazo los fabricantes, los descuentos y regalos que recibe, y la propaganda que hace tragar a tíos “guayyy”s en busca del último MP3 láser.

    Guayyyy

    Gatitos saltando, perritos ladrando, señoras que se caen de culo, goles imposibles, el tío de las pelotas más grandes (según Guiness “con”) o por qué no debes beber refrigerante y conducir al mismo tiempo… son los temas más “guayyy” del momento. Da igual si se repiten cada pocos meses, o si los temas son los mismos día sí y día también, todo vale con tal de ser “guayyy”.

    A que encajamos en alguna :) . Pueden leer el resto de especímenes en el post original.

    PD: Y no se olviden de leer los tipos de comentaristas en los blogs.

    Entradas Relacionadas:
  • Nada relacionado
  • Webcam de notebooks HP en Linux

    cameraAlgunos modelos de notebooks HP vienen con una webcam integrada (por ejemplo la DV 2420). Podemos tenerla funcionando (con algunos programas) en forma sencilla:

    Instalamos subversion

    sudo apt-get install subversion

    Obtenemos la última versión del driver

    svn checkout http://svn.berlios.de/svnroot/repos/linux-uvc/

    Al momento de escribir este post se obtuvo la versión 173

    cd linux-uvc/linux-uvc/trunk/
    make
    sudo make install
    modprobe uvcvideo

    En mi caso funcionó con Kopete, KDE Tv, Gnome Cheese y Ekiga.

    Entradas Relacionadas:
  • Funda de notebooks para oficinistas
  • Skype 2 beta (con video) para Linux (64 bits)
  • Dell y Linux
  • Sentimiento Combi

    Hola a todos, aca vuelvo después de unas largas vagaciones, pa pasarles el dato de un nuevo fotoblog que apareció a partir de este año:

    http://sentimientocombi.blogspot.com

    A ver que les parece, saludos a todos.

    Entradas Relacionadas:
  • ¡Feliz día Lima!
  • Un blog que no es malo
  • Tarjetas inalámbricas Broadcom 43xx en Ubuntu 7.10 (Gutsy Gibbon)

    Wi-FiHace unos días tuve un tiempo para actualizar a Kubuntu 7.10 de 64 bits en mi notebook HP DV2420. Luego de la instalación vi que el gestor de drivers restringidos me permitía instalar (en teoría) los controladores para la tarjeta inalámbrica Broadcom… pero luego de instalarlos, Kubuntu seguía sin reconocerla.

    Intenté luego con el tutorial que escribí en octubre del 2007, pero tampoco dio resultado (ese método funciona hasta la versión 7.04 de Ubuntu). Tuve que buscar bastante por Google hasta dar con la solución en la Documentación de la Comunidad de Ubuntu.

    Identificando la tarjeta

    Ejecutamos en consola

    lspci -nn

    El resultado para la webcam de la HP Pavillion de la serie DV2000:

    01:00.0 Network controller [0280]: Broadcom Corporation BCM94311MCG wlan mini-PCI [14e4:4311] (rev 02)

    Según la web, este método sirve para varias tarjetas inalámbricas de la serie 43xx, en el caso de la 4311 funcionó a la perfección. Pueden consultar los demás modelos en este cuadro.

    Nota: no es un script, son comandos que deben ser ejecutados, uno a uno, en consola.

    Pasos previos

    Debemos desactivar los drivers Broadcom desde el Gestor de Controladores Restringidos de (K)Ubuntu.

    Instalación

    Instalamos NDISWrapper y agregamos a la “lista negra” el driver nativo

    echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist
    sudo apt-get install ndiswrapper-utils-1.9
    mkdir ~/bcm43xx; cd ~/bcm43xx

    Configuramos NSDISWrapper

    sudo ndiswrapper -i bcmwl5.inf
    ndiswrapper -l
    sudo depmod -a
    sudo modprobe ndiswrapper
    sudo cp /etc/network/interfaces /etc/network/interfaces.orig
    echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces
    sudo ndiswrapper -m
    echo 'ndiswrapper' | sudo tee -a /etc/modules
    echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant

    Reiniciamos

    Luego de esto, se debería mostrar la tarjeta inalámbrica en la lista de interfaces de red. En mi caso no fue así, por lo que tuve que seguir los siguientes pasos.

    Removemos NSDISWrapper

    sudo modprobe -r ndiswrapper
    sudo ndiswrapper -r bcmwl5
    sudo apt-get remove ndiswrapper-utils
    sudo rm -r /etc/ndiswrapper/
    sudo rm -r /etc/modprobe.d/ndiswrapper

    Reiniciamos

    Descargamos y compilamos la nueva versión de NDISWrapper (al momento de escribir esto la 1.51)

    sudo apt-get update
    sudo apt-get install build-essential
    sudo apt-get install linux-headers-`uname -r`
    sudo ln -s /usr/src/linux-`uname -r` /lib/modules/`uname -r`/build
    mkdir -p ~/bcm43xx/ndiswrapper; cd ~/bcm43xx/ndiswrapper
    sudo wget http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-1.51.tar.gz -Ondiswrapper.tar.gz
    tar xvzf ndiswrapper.tar.gz
    cd ndiswrapper*
    make distclean
    make
    sudo make install

    Configuramos

    cd ~/bcm43xx
    sudo ndiswrapper -i bcmwl5.inf
    ndiswrapper -l
    sudo modprobe ndiswrapper
    sudo ndiswrapper -m

    Reiniciamos y ya debería aparecer la tarjeta de red inalámbrica.

    Adicional: Wicd

    En mi caso, Knetwork Manager no reconocía la tarjeta inalámbrica (que si aparecía en el listado de interfaces de red), por lo que instalé el paquete Wicd que sirve para conectarnos a redes inalámbricas en forma gráfica (tal como Knetwork Manager).

    Agregamos en /etc/apt/sources.lst:

    deb http://apt.wicd.net gutsy extras

    Instalamos wicd:

    sudo apt-get install wicd

    Lo ejecutamos desde consola (o desde el menú Internet):

    $wicd

    Con Wicd configuraremos lo usual al conectarnos: contraseña de la red, IP, etc. En las preferencias yo tengo seleccionado como driver de WPA wext

    Entradas Relacionadas:
  • Tarjetas wireless Broadcom 43xx en Linux
  • Activar la aceleración gráfica en tarjetas nVIDIA
  • Cheese en Kubuntu
  • Foto de la Semana

    El 24 de enero de 1984 fue lanzada la Macintosh 128, la computadora personal de Apple. Por eso la foto de esta semana es del recuerdo: el equipo Macintosh de Apple (Steve Jobs es el que está sentado en el piano).

    Noten la manzana como parche de la calavera pirata:

    Apple Pirate Flag

    La foto es de la galería de imágenes de Gerardvschip.

    Entradas Relacionadas:
  • Foto de la semana: Trabajando con 16 monitores
  • Foto de la semana
  • Foto de la Semana: Feliz Día Internacional de la Mujer