Natural/ADABAS

Al comenzar a mirar las ofertas de empleo que hay de informática por mi tierra, vi que muchas pedían este «lenguaje». Al intentar busar información en castellano me las vi un poco crudas, y en ingles tampoco encontré demasiado, así que os contaré lo que he aprendido. Espero que os guíe un poco a los que comenzais a mirar ofertas, y os pregunteis como yo que demonios es eso de «Natural/ADABAS»

ADABAS parece ser una base de datos (con sus programas/scripts para arrancarla, hacer copias de seguridad y todo lo que se suele hacer con las bases de datos), y Natural un lenguaje que se emplea para manejar los datos que contiene. Todo esto está distribuido por Software AG, empresa que también se encarga de formar a los empleados de las empresas usuarias de dicho software. Para entrar en una empresa de estas necesitas conocer el lenguaje, y para conocerlo has tenido que estar en alguna de esas empresas. Creo que no lo puedes probar por tu cuenta, al menos yo no he encontrado ninguna descarga de versiones de evaluación ni similares que permitírian trastear un poco con el producto y conseguir así algo de experienccia. Por lo tanto estamos ante la típica pescadilla que se muerde la cola, si no trabajas con ello no lo puedes aprender y si no lo sabes no trabajaras con ello. Tampoco es que aprenderlo por tu cuenta valla a servir de mucho, por la poca experiencia que tengo en la busqueda de empleo en este campo, si no tienes experiencia o al menos un titulo específico, te da igual que digas que sabes latín. Supongo que en otros lugares donde halla mas demanda (donde me tendré que acabar llendo) habrá mas posibilidades de encontrar trabajao sin experiencia previa demostrable, pero aquí hoy por hoy, parece dificil conseguir una oportunidad.

He de reconocer, que también encontré unas trasparencias en castellano, pero daban la sensación de ser una traducción mas o menos literal e inventada de otras que tuvieran en ingles. Al menos que yo sepa el verbo «alocar» no existe.

Gracias a la inestimable ayuda de la mula, encontré un archivo con algunos textos algo antiguos en ingles, que me han permitido hacerme una idea de lo que es, y me han proporcionado unos conocimientos básicos sobre el sistema, aunque claro, sin poder practicar con ello quedan grandes lagunas. El lenguaje parece bastante malo, si es verdad que en 6 años puede que halla mejorado (y espero que lo halla hecho, porque si no no entiendo la perra de las empresas con él). Es un lenguaje muy orientado a la base de datos, pero se situa a bastante bajo nivel, aunque aun así no parece que permita hacer todo lo que podrías querer. Es muy facil generar vistas (en pantalla) de consultas, y parece muy orientado a la visualización de los datos. Tambien, por lo que me a parecido, se basa en pantallas en modo texto, aunque supongo que se pueda integrar con otros lenguajes que puedan manejar ventanas. Parece mas bien algo preparado para un uso mas o menos sencillo de personas que no se dediquen a la informática, y necesiten trabajar con una base de datos, sin embargo, las ofertas que yo he visto pedían al menos FP2 de informática y experiencia con él.

En resumen, no entiendo porque tantas empresas trabajan con esto habiendo otras soluciones que en principio parecen mejores. Es cierto que no lo conozco bien, y puede que tenga mil bondades que sólo descubres cuando lo tienes delante. Está claro que hablo desde el desconocimiento ante la poca información que he encontrado (si alguien sabe de algun buen recurso sobre el tema le estaré mil veces agradecido), pero a primera vista no es algo que elegiría para comenzar un proyecto…

Desmitificado el número de dni

Vía microsiervos, me entero que un tal Josep, ha encontrado una explicación razonable a ese número, «magico», que nos indicaba el numero de personaas que se llaman igual que nosotros. En realidad, al parecer (lo he comprobado con el mio y es así, supongo que con todos lo sea), no es mas que un triste y aburrido digito de control. Recuerdo que la última vez que renové el dni hace 5 años, el numero cambió de un 6 a un 4, y pensé triste y apenado «Vaya, ya se han muerto dos compadres, snif snif». Esto nos quitará la posibilidad de estando de ciego mirar el número de los colegas para ver cuantos se llaman como ellos (raro, lo se), aunque al menos los primeros dias, y hasta que lo sepa todo el mundo, habra que entretenerse poniendo a los colegas a hacer multiplicaciones y sumas para que comprueben que no les mentimos.

Divorcios

«La mayoría de divorcios de programadores son provocados por una mala asignación de valores no detectada.»

Muy pronto

Es tan pronto, que aun no han puesto ni los portales de internet… XDD

Ya se que hay que ser muy freaky para levantarse a las 4 30 (un viaje relampago para llevar al viejo a bilbo, para las 7 o por ahi estare de vuelta) y ponerse a mirar cosas en internet, pero es que al ver así infojobs, se me ha venido la frase a la cabeza, y me ha hecho mucha gracia, jajajaj. ¡Que freaky soy! XDD

Maneja un Mars Rover

Via meneame he visto esto. No es que sea algo especialmente novedoso, ya sabía que google vale para eso y mucho más. Sin embargo, tras haberme apuntado en varias bolsas de empleo, y haber entregado bastantes curriculums, no me queda mas que esperar a ver si el telefono suena, o llega algo a la bandeja de entrada…

Normalmente lo de las cámaras no es especialmente divertido, la mitad no van, y con lo que tardan las otras en cargar, es muy desesperante. Pero hoy no. Como no tenía otro huevo que rascar, y no me apetecía hacer nada, me he puesto a ver si encontraba algo curioso, divertido, entretenido… y lo he encontrado.

Me he encontrado con un campamento espacial con grandes cohetes, y pequeñas personitas admirandolos. Una sala de billar donde ver las carambolas de la gente. El cruce del anuncio en el que los coches se esquivan unos a otros, o uno que al menos es igual de caotico (si los cuadros rojos son las infracciones se están hinchando a poner multas). Incluso una autentica guardería canina, en la que los dueños pueden ver como sus mascotitas se divierten y juegan con sus «amigüitos». Sin embargo el mejor hallazgo ha sido el de la ciudad lego de la universidad Marshal. Ahí se puede ver una ciudad hecha con legos (supongo que tirando de mindstorms), pero lo que mas llama la atención es el mensaje "Teleoperate at http://LEGO.marshall.edu"

Desde ahí, puedes logearte para conducir un «autentico» Mars Rover (todo lo autentico que pueda ser un rover de lego). A mi al principio me ha costado, pues estaba como atascado, y además no sabía donde estaba. Despues de unos intentos le he detectado en la pecera del fondo. Yo le he dejado justo detras del molino, pero si lo quieres encontrar solo necesitas seguir unos cables que ascienden desde la izquierda y bajan despues hacia la pecera.

Un saludo, espero que os entretenga un rato muerto como me ha pasado a mi…

PD: Al parecer hay alguno más.

PPD: Si encontrais algo divertido decirmelo…

Por fin al fin el fin

Como diría una mezcla entre el rey y los integrantes de A Palo Seko: «Me llena de orgullo y satisfacción anunciarles por fin al fin el fin». No, no me refiero al anuncio de E.T.A., aunque como dice zapatero es algo que llena de esperanza. Me refiero a una noticia recibida antes de esa, una noticia que se cumplirá antes que desaparezca E.T.A., una noticia de la que estaba seguro que llegaria, mil veces mas que esa. Despues de X años (solo es un número, que mas da…) he aprobado todas las asignaturas que necesitaba para poder solicitar el titulo de Ingeniero Tecnico en Informática de Sistemas.

A sido un camino dificil, lleno de cambios de planes y de universidades, de discusiones con profesores, de prácticas hasta las tantas, y de llegar a examenes convencido de que eres el master del universo con una asignatura y al leerlo no saber si reir o llorar. Tambien ha habido momentos de tocarse los «egs», recuerdo mi primer año de fiesta en fiesta, en el que solo aprobe una (lo justo para que no me echaran), ese año me los toque a dos manos, he de reconocerlo. Pero bueno, despues de una larga espera (hice el examen hace mes y pico) han salido las notas de programación declarativa, la he reclamado, porque si reclamas cuando no estas de acuerdo y has suspendido, creo que debes reclamar cuando has aprobado y no estas de acuerdo, pero aun así solo falta que me diga que no me va a hacer ni caso, y hacer el papeleo…

Un saludo para todos los que estais en ello, estamos con vosotros (que bien se siente unno cuando esta en el grupo de los que finalizaron).

PD: Si alguien tiene un trabajillo por el norte, interesante, y busca alguien que se adapte rapido y aprenda con facilidad, que lo diga, que hay que agotar todos los medios antes de hacer como la mayoria e ir al mediterraneo o al centro.

No consigo compilar un plugin…

En esta entrada detallo los pasos que he dado para intentar compilar un plugin de compiz, por si a alguien le resulta de utilidad (si esta intentando lo mismo y no quiere cometer los mismos errores).

No tengo apenas experiencia con gcc, y ninguna con make, autogen, etc, por lo que puede haber cosas que os resulten evidentes y para mi no lo sean. Si alguien tiene solucion para algo, le estaría mil veces agradecido.

Sigue en la pagina de la entrada…

Los plugins no parecen tener una estructura excesivamente complicada (para hacer alguna chorradita sencilla al menos), pero si no los puedes compilar y probar, te da lo mismo que lo mismo te da.

Lo primero fue intentar seguir las instrcciones del archivo INSTALL del cvs. Así que lo primero fue descargar todos los fuentes:

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg login#Sin password (presionar tecla enter)cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co app/compizcvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg logout

Sin embargo el autogen no iba bien, intale autogen, automake, libtool, y no hubo manera. Lo siguiente es la salida de script:

Script iniciado (jue 09 mar 2006 18:16:15 CET) ]0;lopez@corocota: ~/pru/app/compiz  [?1h =lopez@corocota:~/pru/app/compiz$ ./autogen.sh [?1l >autoreconf: Entering directory `.'autoreconf: configure.ac: not using Gettextautoreconf: running: aclocal autoreconf: configure.ac: tracingautoreconf: running: libtoolize --copyPutting files in AC_CONFIG_AUX_DIR, `config'.libtoolize: `config.guess' exists: use `--force' to overwritelibtoolize: `config.sub' exists: use `--force' to overwritelibtoolize: `ltmain.sh' exists: use `--force' to overwriteautoreconf: running: /usr/bin/autoconfautoreconf: running: /usr/bin/autoheaderautoreconf: running: automake --add-missing --copy --no-forceautoreconf: Leaving directory `.'checking for a BSD-compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking for gawk... gawkchecking whether make sets $(MAKE)... yeschecking whether to enable maintainer-specific portions of Makefiles... nochecking for style of include used by make... GNUchecking for gcc... gccchecking for C compiler default output file name... a.outchecking whether the C compiler works... yeschecking whether we are cross compiling... nochecking for suffix of executables... checking for suffix of object files... ochecking whether we are using the GNU C compiler... yeschecking whether gcc accepts -g... yeschecking for gcc option to accept ANSI C... none neededchecking dependency style of gcc... gcc3checking for library containing strerror... none requiredchecking for gcc... (cached) gccchecking whether we are using the GNU C compiler... (cached) yeschecking whether gcc accepts -g... (cached) yeschecking for gcc option to accept ANSI C... (cached) none neededchecking dependency style of gcc... (cached) gcc3checking how to run the C preprocessor... gcc -Echecking build system type... i686-pc-linux-gnuchecking host system type... i686-pc-linux-gnuchecking for a sed that does not truncate output... /bin/sedchecking for egrep... grep -Echecking for ld used by gcc... /usr/bin/ldchecking if the linker (/usr/bin/ld) is GNU ld... yeschecking for /usr/bin/ld option to reload object files... -rchecking for BSD-compatible nm... /usr/bin/nm -Bchecking whether ln -s works... yeschecking how to recognise dependent libraries... pass_allchecking for ANSI C header files... yeschecking for sys/types.h... yeschecking for sys/stat.h... yeschecking for stdlib.h... yeschecking for string.h... yeschecking for memory.h... yeschecking for strings.h... yeschecking for inttypes.h... yeschecking for stdint.h... yeschecking for unistd.h... yeschecking dlfcn.h usability... yeschecking dlfcn.h presence... yeschecking for dlfcn.h... yeschecking for g++... g++checking whether we are using the GNU C++ compiler... yeschecking whether g++ accepts -g... yeschecking dependency style of g++... gcc3checking how to run the C++ preprocessor... g++ -Echecking for g77... nochecking for f77... nochecking for xlf... nochecking for frt... nochecking for pgf77... nochecking for fort77... nochecking for fl32... nochecking for af77... nochecking for f90... nochecking for xlf90... nochecking for pgf90... nochecking for epcf90... nochecking for f95... nochecking for fort... nochecking for xlf95... nochecking for ifc... nochecking for efc... nochecking for pgf95... nochecking for lf95... nochecking for gfortran... nochecking whether we are using the GNU Fortran 77 compiler... nochecking whether  accepts -g... nochecking the maximum length of command line arguments... 32768checking command to parse /usr/bin/nm -B output from gcc object... okchecking for objdir... .libschecking for ar... archecking for ranlib... ranlibchecking for strip... stripchecking if gcc static flag  works... yeschecking if gcc supports -fno-rtti -fno-exceptions... nochecking for gcc option to produce PIC... -fPICchecking if gcc PIC flag -fPIC works... yeschecking if gcc supports -c -o file.o... yeschecking whether the gcc linker (/usr/bin/ld) supports shared libraries... yeschecking whether -lc should be explicitly linked in... nochecking dynamic linker characteristics... GNU/Linux ld.sochecking how to hardcode library paths into programs... immediatechecking whether stripping libraries is possible... yeschecking if libtool supports shared libraries... yeschecking whether to build shared libraries... yeschecking whether to build static libraries... yesconfigure: creating libtoolappending configuration tag "CXX" to libtoolchecking for ld used by g++... /usr/bin/ldchecking if the linker (/usr/bin/ld) is GNU ld... yeschecking whether the g++ linker (/usr/bin/ld) supports shared libraries... yeschecking for g++ option to produce PIC... -fPICchecking if g++ PIC flag -fPIC works... yeschecking if g++ supports -c -o file.o... yeschecking whether the g++ linker (/usr/bin/ld) supports shared libraries... yeschecking dynamic linker characteristics... GNU/Linux ld.sochecking how to hardcode library paths into programs... immediatechecking whether stripping libraries is possible... yesappending configuration tag "F77" to libtoolchecking for ANSI C header files... (cached) yeschecking for stdlib.h... (cached) yeschecking sys/time.h usability... yeschecking sys/time.h presence... yeschecking for sys/time.h... yeschecking for unistd.h... (cached) yeschecking whether byte ordering is bigendian... nochecking for pkg-config... /usr/bin/pkg-configchecking pkg-config is at least version 0.9.0... yeschecking for COMPIZ... configure: error: Package requirements (libpng        xcomposite    xfixes        xdamage       xrandr        ice        sm        libstartup-notification-1.0 >= 0.7) were not met.Consider adjusting the PKG_CONFIG_PATH environment variable if youinstalled software in a non-standard prefix.Alternatively you may set the COMPIZ_CFLAGS and COMPIZ_LIBS environment variablesto avoid the need to call pkg-config.  See the pkg-config man page formore details. ]0;lopez@corocota: ~/pru/app/compiz  [?1h =lopez@corocota:~/pru/app/compiz$ make [?1l >make: *** No se especificó ningún objetivo y no se encontró ningún makefile.  Alto. ]0;lopez@corocota: ~/pru/app/compiz  [?1h =lopez@corocota:~/pru/app/compiz$  [?1l >Script terminado (jue 09 mar 2006 18:17:59 CET)

Luego intenté compilar a pelo con gcc un plugin solo (que es lo que me interesa), pero el archivo resultante genera una violación de segmento al ejecutar compiz…

gcc -fPIC -I../include -c rotate.c -o rotate.ogcc -fPIC -share rotate.o -o librotate.so

Ya digo que no tengo mucha idea, así que puede ser que ni siquiera tenga sentido lo que he hecho XDD. Por cierto en algun punto del proceso bajé algunos archivos de cabecera:

/usr/include/X11/extensions/wget http://webcvs.freedesktop.org/*checkout*/xorg/lib/Xdamage/include/X11/extensions/Xdamage.h?rev=1.3/usr/include/X11/extensions/wget http://webcvs.freedesktop.org/*checkout*/xorg/xc/include/extensions/damagewire.h?rev=1.2.8.1/usr/include/X11/wget http://webcvs.freedesktop.org/*checkout*/xorg/xc/lib/X11/Xregion.h?rev=1.1/usr/include/mkdir libsn/usr/include/libsn/wget http://webcvs.freedesktop.org/*checkout*/startup-notification/startup-notification/libsn/sn.h?rev=1.1/usr/include/libsn/wget http://webcvs.freedesktop.org/*checkout*/startup-notification/startup-notification/libsn/sn-launchee.h?rev=1.4/usr/include/libsn/wget http://webcvs.freedesktop.org/*checkout*/startup-notification/startup-notification/libsn/sn-launcher.h?rev=1.6/usr/include/libsn/wget http://webcvs.freedesktop.org/*checkout*/startup-notification/startup-notification/libsn/sn-monitor.h?rev=1.6/usr/include/libsn/wget http://webcvs.freedesktop.org/*checkout*/startup-notification/startup-notification/libsn/sn-common.h?rev=1.3/usr/include/libsn/wget http://webcvs.freedesktop.org/*checkout*/startup-notification/startup-notification/libsn/sn-util.h?rev=1.2/usr/include/GL/wget http://webcvs.freedesktop.org/*checkout*/xorg/xc/extras/Mesa/include/GL/gl.h?rev=1.4/usr/include/GL/wget http://webcvs.freedesktop.org/*checkout*/xorg/xc/extras/Mesa/include/GL/glext.h?rev=1.1.1.5/usr/include/GL/wget http://webcvs.freedesktop.org/xorg/xc/extras/Mesa/include/GL/glx.h?rev=1.1.1.3&view=log/usr/include/GL/wget http://webcvs.freedesktop.org/xorg/xc/extras/Mesa/include/GL/glxext.h?rev=1.5&view=log

Un saludo, espero que mis errores os puedan servir de algo.

PD: Cualquier información de como compilar un plugin será recibida con los brazos abiertos.