viernes, 22 de septiembre de 2006

vadRotator

Cuando desarrollaba webs con asp utilizaba el componente adRotator para gestionar la rotación de imágenes como banners o pase automático de fotografías.

Al pasar mis desarrollos web a Velneo la solución más fácil para conseguir el mismo efecto fué recurrir a Javascript, pero como no soy amigo de que el usuario que quiera ver mi web en condiciones deba instalar componentes de terceros, ni modificar los niveles de seguridad, ni nada por el estilo, decidí hacer un componente web en Velneo que usando html puro y duro me permitiese obtener el mismo efecto: vadRotator.

Así es como lo hice.

Lo primero que necesitaba era una tabla donde almacenar las imágenes que iba a rotar, y lo segundo, un proceso que montara una página en base a un componente html que se llamase a sí mismo cada cierto tiempo y cada vez cargase una imágen diferente.

Tabla - IMAGENES
Proceso - PROCESO.PRO
Componente html - CARRUSEL (de la tabla IMAGENES)

Para que una página se cargue a sí misma cada cierto tiempo utilizamos el meta refresh de html así

[meta http-equiv="refresh" content="#AVP$LAPSO$;URL=PROCESO.PRO?IMAGEN=#AVP'imagen'"]

Este tag va en la cabecera de la página y lo que hace es refrescar la página cada cierto tiempo o redirigir a otra página pasado un cierto tiempo.

En el caso que nos ocupa, pasados los segundos definidos en la variable global LAPSO, se carga el proceso accesible web PROCESO.PRO al que le pasamos el parámetro 'imagen' que es el código de imágen que se acaba de mostrar en el componente html CARRUSEL.

Ahora el PROCESO.PRO lo que hace es comparar el parámetro 'imagen' que recibe en la variable global IMAGEN con el número de imágenes almacenado en la tabla de imágenes.

Si la imagen que se ha mostrado no es la última de la tabla, entonces aumentamos el parámetro 'imagen' en 1, pero si la imágen que se ha mostrado es la última, reiniciamos 'imagen' a 1.

Seguidamente el proceso carga el registro 'imagen' de la tabla IMAGENES y ejecuta el componente html CARRUSEL pasandole el parámetro 'imagen'.

Y ya está!

Con algo tan sencillo como esto tenemos un componente vadRotator mucho más potente que otro desarrollado en php, asp o javascript: no depende de ningún fichero de texto residente en el servidor web que haya que cambiar o actualizar, no hay que modificar código y se mantiene desde el programa de gestión de la web, es decir, es realmente dinámico.

viernes, 15 de septiembre de 2006

El D.N.I. y Velneo

Leyendo un día microsiervos encontré en la sección de leyendas urbanas un post sobre el DNI. Trataba sobre la leyenda que decía que el número que aparece en la parte de atrás del DNI es el número de personas que se llaman igual que tú. Siguiendo los enlaces encontré la página de Josep Portella Florit donde explicaba el proceso que siguió hasta descifrar la parte de atrás del DNI.

Decidí en ese momento hacer la adaptación a Velneo del proceso y generar una web de coña que generase tu parte de atrás del DNI.

Veamos cómo es esa parte de atrás, algo parecido a esto:

IDESP12345678Z3***************
7410150M0903226ESP***********4
DE*TAL*Y*CUAL**FULANITO*******

Y qué es esto? Por campos,

[ID][ESP][12345678Z][3][***************]
[741015][0][M][090322][6][ESP][***********][4]
[DE*TAL*Y*CUAL][**][FULANITO][*******]

[ID] - Campo que indica el tipo de documento
[ESP] - Campo que indica que el documento es de España
[12345678Z] - Campo con el DNI letra incluida
[3] - Dígito de control del DNI letra incluida
[***************] - Relleno
[741015] - Fecha de nacimiento en formato AAMMDD
[0] - Dígito de control de la fecha de nacimiento
[M] - Sexo
[090322] - Fecha de caducidad del DNI
[6] - Dígito de control de la fecha de caducidad
[ESP] - Campo que indica que el documento es de España
[***********] - Relleno
[4] - Dígito de control de la cadena formada por el DNI letra incluida, su dígito de control, la fecha de nacimiento, su dígito de control, la fecha de caducidad y su dígito de control
[DE*TAL*Y*CUAL] - Apellidos
[**] - Separador
[FULANITO] - Nombre
[*******] - Relleno

Para el cálculo de los rellenos debemos tener en cuenta que la longitud de cada línea es de 30 caracteres.

El cálculo del dígito de control se reduce a tomar una cadena de longitud variable ( DNI, fecha, churro ), separarla caracter por caracter, sustituir los caracteres alfabéticos por su valor numérico según la fórmula (valorASCII - 65), de forma que la A sea 0, la M 12 y la Z 25, y luego aplicar los pesos 7-3-1 a los caracteres de la cadena, obtener la suma total y quedarnos con el último dígito de la suma.

Por pasos, tomando por ejemplo el DNI [12345678Z]

separamos por caracteres [ 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - Z ]

sustituimos la letra [ 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 25 ]

aplicamos los pesos 7-3-1 [ 1*7 - 2*3 - 3*1 - 4*7 - 5*3 - 6*1 - 7*7 - 8*3 - 25*1 ]

sumamos [ 7 + 6 + 3 + 28 + 15 + 6 + 49 + 24 + 25 ] = 163

nos quedamos con el último dígito [3]

y ya tenemos nuestro dígito de control. Así con todos.

La duda que me queda es el tema del sexo. No interviene en el cálculo de ningún dígito de control pero sufre una transformación que creo es M = Hombre, F = Mujer, aunque en el campo del DNI dedicado al sexo pone otra cosa. No sé si tendrá algo que ver también la comunidad autónoma o no.

Ah! Se me olvidaba comentarlo, al componer la última línea debereis tener en cuenta que si en el Nombre o Apellidos aparecen espacios, estos deberán ser sustituidos por [*]

Carencias de Velneo

Últimamente en el foro de Velneo se están viendo algunos comentarios de usuarios más o menos noveles en la herramienta criticandola y poniendo al descubierto alguna de sus carencias para realizar determinadas tareas.

A todos estos usuarios me gustaría desde aquí darles conocer una enseñanza que me transmitió mi profesor de Kyu jutsu. El Kyu jutsu es una disciplina marcial japonesa de tiro con arco. El arco es casi tan alto como una persona normal y no es simétrico ya que está diseñado para dispararse desde encima de un caballo.

Pues bién, mientras practicaba con el arco me quejé de forma lastimosa: "Este arco está desequilibrado!!! Así es imposible acertar en la diana!".

Mi profesor tomó el arco, lo acarició, lo tensó, y la flecha impactó justo en el centro de la diana. A continuación me dijo: "El arco no está desequilibrado, el desequilibrio lo tienes tú. Busca tu equilibrio y la flecha irá donde quieres."

Me parece una experiencia totalmente aplicable a Velneo: "Velneo no tiene carencias. La carencia la tienes tú. Concentrate en las bases, busca las respuestas en tu interior y verás como Velneo hace lo que quieres."

Aún no he encontrado qué no puedo hacer con Velneo.

Variables de sesión web y Velneo

Cuando empecé a hacer webs con Velneo eché a faltar las variables de sesión. Yo provenía del asp e IIS, así que cuando ví que Velneo no tenía un sessionID me llevé una gran decepción. No hay usuarios web, sólo hay UN usuario web.

Esto que en principio podía parecer una desventaja con el tiempo y la experiencia se ha ido convirtiendo en una gran ventaja. El servidor web de Velneo ( de momento ) no está dimensionado por usuarios, ya tengas una visita o 1.000 visitas concurrentes, todas ellas sólo gastan un enganche con el servidor.

Y cómo resolvemos el tema de las variables de sesión? Fácil y sencillo, como todo en Velneo.

Creamos una tabla, que yo llamo Navegantes, con código autonumérico, que será nuestra tabla de visitas únicas, y una variable global NAVEGANTE que contendrá el código de visita única, que será la única variable que nos pasaremos de página en página por el resto de la web.

La página INDEX.PAG de nuestra aplicación es un frameset con dos columnas. La primera columna está dimensionada al 100% de ancho del navegador y contiene el proceso INDEX.PRO que monta la web a base de componentes html y, claro, como es un proceso, puede hacer todas las cosas que nos dé la gana, como por ejemplo controlar si hay o no un Navegante. Si hay Navegante es que el usuario proviene del interior de nuestra web y ha vuelto a pasar por la página principal, si no hay Navegante es que el usuario accede por primera vez en esta sesión a nuestra web, y le podemos asignar un Navegante. A partir de aquí, la imaginación al poder!!!

En la tabla Navegantes podemos tener tantos campos auxiliares ( campos "dummy", punteros a otras tablas, etc... ) como sean necesarios para la nevegación por nuestra web, que rellenaremos en el proceso que monta cada página, y la tabla puede tener submaestras auxiliares para arrastrar información mucho más compleja de página en página y mientras dure la sesión del Navegante.

En adelante sólo deberemos pasar el parámetro NAVEGANTE de página en página, y localizando ese Navegante en la tabla de Navegantes, pendiendo de él tenemos toda la información relacionada que necesitemos.

Potente, flexible y sencillo.

Esto es Velneo.

XML y Velneo

Últimamente me he encontrado con la necesidad de comunicar mis aplicaciones Velneo con terceros a través de ficheros de intercambio en XML.

Un fichero XML en principio no es más que un fichero de texto plano con una estructura jerárquica estricta definida por etiquetas con apertura y cierre, dentro de cada etiqueta van los datos.

Un ejemplo sencillo puede ser;

[?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?]
[ficha]
[nombre] Angel [/nombre]
[apellido] Barbero [/apellido]
[direccion] c/Ulises, 36 [/direccion]
[/ficha]

Lleva una cabecera que define la versión de xml del documento, la forma en que se ha codificado el documento y si el documento va acompañado de un DTD (Declaración de Tipo de Documento ) o no. Un DTD define la estructura y semántica del XML, pero en eso no vamos a entrar ahora.

Veamos otro ejemplo un poquito más complejo;

[?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?]
[movies]
[movie]
[title]Raising Arizona[/title]
[writer]Ethan Coen[/writer]
[writer]Joel Coen[/writer]
[producer]Ethan Coen[/producer]
[director]Joel Coen[/director]
[actor]Nicolas Cage[/actor]
[actor]Holly Hunter[/actor]
[actor]John Goodman[/actor]
[comments]A classic one-of-a-kind screwball love story.[/comments]
[/movie]
[movie]
[title]Midnight Run[/title]
[writer]George Gallo[/writer]
[producer]Martin Brest[/producer]
[director]Martin Brest[/director]
[actor]Robert De Niro[/actor]
[actor]Charles Grodin[/actor]
[comments]The quintessential road comedy.[/comments]
[/movie]
[/movies]

La cabecera, un elemento padre "" englobando a todo lo demás, y una serie de tags anidados de forma correcta que contienen información. Si lo analizamos un poco podemos ver cierto parecido con la manera que tenemos de tratar la información en Velneo, una tabla maestra de películas y por ejemplo las tablas escritores, productores, directores y actores relacionadas con esta mediante históricas ( escritores-películas, productores-películas, etc... ).

Generar este XML desde Velneo es algo tan fácil como:

Fichero: Abrir -] xml, d + "\\xml\\nombre_fichero.xml", Lectura/escritura. Crea o Limpia
Fichero: Grabar línea -] xml, "[?xml version=\c1.0\c encoding=\cUTF-8\c standalone=\cyes\c?]"
Fichero: Grabar línea -] xml, "[movies]"
Búsqueda -] PELICULAS if -] n ! 0
Ordenar Lista -] %TITULO%
Recorrer lista sólo lectura
Fichero: Grabar línea -] xml, "[movie]"
Fichero: Grabar línea -] xml, "[title]" + %TITULO% + "[/title]"
Cargar histórico -] ESCRITORES-PELICULAS, CODPELI
Recorrer lista sólo lectura
Fichero: Grabar línea -] xml, "[writer]" + %NOMBRE% + "[/writer]"
etc...

Hay que ser estricto a la hora de cerrar todos los tags que abrimos y que la anidación sea correcta y ya está. Esto puede complicarse mucho más pero, básicamente, cargando lista, recorriendola, multipartiendola, cargando históricos, tenemos solucionado en cuatro pasos la generación de ficheros XML bién formados, que en la gran mayoría de los casos satisfacen la demanda de datos de terceros.

Como complemento a esto os diré que en el almacén de objetos hay una utilidad lista para su uso llamada parseador XML que con pocas modificaciones sirve para almacenar ficheros XML en tablas nativas Velneo. Yo además la he utilizado para comprobar que el documento XML almacenado está bién formado y que los datos almacenados son consistentes. Todo ello en un par de horas, utilizando las plantillas y el amacén de objetos.

Ahora sigo preguntándome; qué problema de tratamiento de información se me puede plantear que no pueda resolver con Velneo?

CSS y Velneo

Desde la explosión de los blogs en internet todo el mundo se está dando cuenta de hacia dónde va internet; hacia una web más semántica donde el contenido se separa de la estructura, y esto se puede hacer con XHTML y CSS.

Hay etiquetas HTML que las recomendaciones de W3C tienden a hacer desaparecer. Todas aquellas que se dedicaban a intentar "maquetar" el aspecto de la web dentro del propio código HTML; fuentes, colores, etc.

Actualmente se debe tender hacia una maquetación web basada en CSS, y si lo haces así, es un trabajo duro en principio, pero que posteriormente te permite cambiar cualquier aspecto de tu web prácticamente sin tocar código de las páginas, sólo modificando el CSS del sitio.

Cuando has elaborado un CSS completo para un sitio es bastante fustrante que sea accesible a los ojos ajenos para que por ejemplo te puedan "clonar" un trabajo que tus horas de trabajo te ha costado elaborar.

Si te fijas en una página cualquiera, puedes ver en el encabezado lo siguiente:

link href="css/estilo.css" type="text/css" rel="stylesheet"

Esto significa que el sitio web usa una hoja de estilo en cascada llamada estilo.css donde se define el aspecto de las fuentes, los párrafos, los enlaces y demás cosas. Al fín y al cabo, no es más que un fichero de texto plano.

Esto me hizo pensar un día; "Y si lo pongo en un proceso que me devuelva ese texto plano?"

Experimenté lo siguiente:

link href="CSS.PRO" type="text/css" rel="stylesheet"

donde CSS.PRO es un proceso de Velneo que lo único que hace es:

Set -> css, "aquí irá el contenido del archivo css"
Añadir retorno texto -> 'css'

y funcionó!!!

A partir de esto me dí cuenta de que se me abría todo un mundo de posibilidades con el CSS del sitio, ya que al ser generado en un proceso, lo podía hacer dinámico.

Imagina que haces depender el CSS del sitio de una serie de variables que pueden ser elegidas por el usuario, o que en función de otras variables que el usuario no puede elegir configuras la apariencia de tu sitio con el CSS dinámico.

Imagina.

Sigue imaginando...

Parte web de una aplicación Velneo

Todos aquellos que desarrollais aplicaciones Velneo en entorno C/S disponeis de un Servidor Velneo que no sólo sirve aplicaciones, datos y disco. Disponeis por el "morro" de un servidor web que sirve páginas html puras y duras, y páginas dinámicas, es decir, procesos.

Muchos de vosotros pensareis; "Y yo para qué quiero servir web, si la aplicación de mi cliente es pura gestión y además, ya tienen web alojada en otro servidor externo?".

Hasta aquí, vale. Dejamos aparcada aquí la pregunta.

Por otra parte, una queja de muchísimos usuarios de Velneo son las carencias de los dichosos informes; partir esto en varias páginas de forma controlada, poder sacar en un mismo informe informaciones muy dispares provenientes de diferentes tablas, incrustar gráficos de columnas, y cuestiones más estéticas como fotografías o elementos decorativos.

En esta línea, un compañero me vino un día con lo siguiente; "Tengo un menú formulario con un mogollón de casilleros sincronizados que al cliente le encanta, pero ahora me ha pedido que le ponga un botón para imprimirlo... y esto no lo puedo meter en un informe".

Entonces me vino la inspiración, ya está!!; un informe web.

Y aquí es donde enlazo con la pregunta que teníamos aparcada, para qué el servidor web en aplicaciones de gestión puras y duras? Para informes web. Informes html tan bonitos como te permita tu nivel de diseño html y sin limitaciones de acceso a datos de cualquier tabla de la aplicación, tan rápidos de desarrollar o más que un informe, y con un resultado gráfico infinitamente más rico, personalizado y profesional.

Los informes web, como página web que son, pueden utilizar un CSS y así ya tienes todos los informes web de tu aplicación compartiendo una misma imagen corporativa sin tener que definirla en cada informe.

Así pues, recomiendo a los que os dedicais a programas de gestión pura y dura que no dejeis de lado la parte web ya que no sólo puede sacaros de algún apuro, sino realmente enriquecer enormemente vuestras aplicaciones.

VelneoLatinos

Ha nacido un nuevo portal dedicado al mundo Velneo; VelneoLatino

Vaya desde aquí la enhorabuena al amigo ofsantana por tan buena iniciativa y los mejores deseos para el portal.

Keep it simple

Tras varios años programando en VV ( de ahora en adelante Velneo ) por fín se está produciendo la expansión de la herramienta a nivel global, al menos en el mundo de habla hispana.

Hasta ahora los programadores de Velneo quizás podíamos sentir una extraña sensación, algo así como "Estaré equivocandome? Por qué no lo ven todos? Qué pasa con esta herramienta que es tan buena? Por qué no la usan todos los programadores masivamente? Será esto una secta y estaré sofronizado?".

Pues bién, ahora ya ha ocurrido. Ya no estamos solos, ya no somos bichos raros.

Se está incorporando a la herramienta toda una comunidad de desarrolladores del mundo de habla hispana, muchos de ellos provenientes de otros lenguajes y herramientas de programación como VisualBasic o .Net

Y con ellos están viniendo también las malas costumbres heredadas de esos otros mundos de programación.

En el foro de Velneo ( en permanente ebullición ) te encuentras a diario cientos de consultas y respuestas acerca de cómo hacer esto y lo otro; "pues para eso te montas un proceso que haga tal y cual, y lo pones en el botón de..."

Procesos, procesos y más procesos.

Keep it SIMPLE.

Cuando empecé con VV me dijeron: "Tú tienes suerte, eres virgen, no estás contaminado por otros lenguajes de programación", y era verdad. Es más fácil aprender Velneo si no sabes nada que si crees que sabes algo.

Si provienes de otros lenguajes de programación, olvida todos los artificios que te enseñaron.

Velneo es simple y ahí reside su potencia.

Puedes liarte con procesos inmensos que carguen listas para tener origen, que recorran la lista, que carguen históricos y los modifiquen, o que suban a los maestros para hacer lo que sea, que guarden valores en variables globales o locales para luego ser utilizadas, puedes hacer prácticamente lo que quieras, pero... para qué?

Supongo que eso será una costumbre heredada de otras herramientas donde la gente acostumbraba a teclear cientos o miles de líneas de código.

En Velneo no es así.

Velneo no es un lenguaje de programación, es una base de datos real, y como tal, tienes a tu disposición la estructura de base de datos donde no sólo se definen las tablas y los campos, sino también las relaciones entre ellas mediante punteros de tipos que hasta ahora desconocías que pudiesen existir, con actualizaciones automáticas sobre campos de otras tablas, con procesos de tabla para comprobación, modificación de datos o lo que se te pueda ocurrir, todo ello al vuelo y sin programar ni un sólo proceso.

Velneo es así, simple y potente.

Así pués, mantengamoslo simple y disfrutemos de su potencia.

Para ello debemos retroceder a los orígenes, bajar a las bases, conocer su esencia y utilizarla.

Cuesta al principio, pero como ya he dicho alguna vez, cuando ves la luz, el cielo se despeja y puedes ver un amplísimo panorama lleno de posibilidades que antes no te dejaban ver las líneas de código.

Keep it SIMPLE.

Una cuestión de fe

Abandonar tu plataforma de desarrollo para pasarte a Velázquez Visual es una cuestión de fe.

Te pueden contar maravillas sobre la herramienta, citarte algunos ejemplos de aplicaciones críticas que están funcionando, sus capacidades de búsqueda y esos endemoniadamente cortos tiempos de respuesta, te pueden contar lo que sea pero... si no lo ves con tus propios ojos no lo creerás.

Al principio es cuestión de fe; o crees o no crees.

Empiezas bajandote la herramienta gratuita y probando algunos ejemplos, para rápidamente ponerte a desarrollar tu primer mapa.

Lo haces tan rápido y funciona tan bién a la primera que sigues sin creertelo.

Sigues desarrollando aplicaciones cada vez más críticas en tiempos récord y con requerimientos hardware mínimos, y sigues sin creertelo.

Pero llega un momento en que ves la luz, y cuando la has visto, estás perdido para siempre, porque ya crees.

Si aún no crees, te voy a contar un cuento que escribió Miguel:

Un buen día un amigo me pregunto- ¿Qué es Velázquez Visual?

Me pase tres días debanándome los sesos para poder darle una definición, ¿Un programa?, ¿Una Herramienta de Desarrollo Rápido?, ¿La mejor base de datosque jamas haya existido? ¿Un nuevo lenguaje de Programación? ¿Un SistemaOperativo? ¿Un servidor de Aplicaciones, de Html, de Correo, de Ficheros, de Mensajes...?

Ante mi impotencia para explicarle que era, me dije: Voy a mostrárselo.

Me fui a mi casa , en la cual tengo un Pentium 4 y un MMX . Al Pentium 4 le instale Windows NT Workstation. No configuré usuarios, ni absolutamente nada, le quite la compartición de discos, y desactivé prácticamente todos los Servicios de Windows incluido el SERVICIO SERVIDOR. De esta manera tenia un Servidor bastante seguro y fiable ya que de hecho, en muchos aspectos, Velázquez es de por sí casi un sistema, y sólo utiliza el núcleo principal de Windows, del cual se apodera, haciendolo un sistema realmente estable.

Instale Velázquez, y me dije: voy a hacer una programa nuevo y sencillo para que lo vea claro.

Aprovechando que tenia una base de datos en Ascii con 700.000 libros, decidí hacer un mapa en Velázquez , definendo la base de datos en el mismo programa. El resultado fue un programa que dando un Trozo del Título me mostraba todos libros que contenían esa palabra estando al principio al final o en medio del título. Seleccionando uno podía ver su ficha, incluido el Autor o la editorial, y seleccionando el Autor o la editorial me volvía a mostrar todos sus libros.

Para hacerlo un poco más espectacular, decidí poner al lado del Autor un Botón, que en una ventana del formulario del libro mostrara las referencias encontradas de ese autor en GOOGLE, sin necesidad de abrir el explorer, ni de teclear nada. Además le puse otro botón para que enviase un E-mail automáticamente a la dirección elegida, solicitando el libro.

Hice el menú, las pantallas de interrogación, los formularios, etc, y un pequeño listado con los códigos de barras de cada uno de los libros y la foto de la portada. Posteriormente decidí que seria interesante que estas interrogaciones sepudieran hacer por la web, de forma que diseñe con Velázquez 3 paginas HTML; una para pedir las opciones de búsqueda, otra para mostrar los títulos encontrados, y una más para mostrar los datos de un libro en concreto, la foto de la portada, etc.

Se me estaba haciendo tarde. Había empezado a las 9 de la mañana y ya eran casilas 12.

Para probar hice una interrogación sobre los 700.000 libros y puse la palabra CASA. Me mostró 20.000 libros. Tiempo de Respuesta Inmediato. En el antiguo Pentium MMX instalé el navegador Velázquez, configuré la conexiónen red TCP/IP en dos minutos y repetí la operación. Tenía alguna duda, ya que era una maquina Windows 3.11. Tiempo de Respuesta: Tardó algo más de 1 segundo. Bueno parece que todo es correcto.

Casi se me olvida modificar la configuración del router y abrir el puerto 690 VATP que quiere decir Velázquez. Sí, Velázquez aunque español tiene su propiopuerto asignado por la IANA, no se me debe olvidar comentárselo a mi amigo.

Ya eran las 12 , me voy que se me hace tarde. En ese momento me aparece un telegrama en mi pantalla “Telegrama Velázquez , Remite Dpto. Informatica XXXX, ¿Vas a venir esta tarde por la oficina?. Inmediatamente le contesto “No esta tarde no iré, ya te llamaré más tarde”.

Cogí el coche y me desplace a casa de mi amigo que vivía en una urbanización cercana a la capital, aunque pese a ello no habia llegado todavía el ADSL. Pero bueno probaríamos con el MÓDEM que tenía.

Llegué, nos sentamos en su ordenador y nos bajamos el navegador por internet, lo cual nos llevo casi 20 minutos. La conexión era terrorífica. Una vez bajado lo instalé y lo lancé, el navegador me pidio el servidor con el que quería conectar, le di mi Ip y en seguida vimos en pantalla el mismo programa que había probado en la oficina.

Ejecuté otra interrogación y, increíble pero cierto, nos devuelve 30.000 registros de forma inmediata. Mi amigo salto de inmediato “ Sí, sí pero quiero ver el último libro de la lista”. Voy al final y le muestro todo el contenido, las fotos, un comentario de texto, un link a otros libros del mismo autor, etc, y veo como su cara empieza a cambiar de color.

Como tengo ganas de quedarme con él, cierro el navegador de Velázquez y, aunque podría haber navegado por la web con el mismo, prefiero abrir el Internet explorer y probar las páginas HTML que había realizado. Lancé la interrogación y, los mismos datos y de forma inmediata.

Además me conecto con el navegador Velázquez, accedo a una ficha, modifico la foto, voy al Explorer le doy refrescar y, la modificación ya está en la Web. Ni qué decir tiene que no se creía que todo eso lo había desarrollado la misma mañana. Entonces decido mostrarle cómo Velázquez también es un Servidor de Disco. Lanzo el Navegador y le digo que quiero explorar mi servidor, cojo el mapa que se estaba ejecutando, lo bajo, lo instalo en su máquina y ejecuto el programa ahora en Local. No lo entiende y se lo resumo.

El programa que hasta ahora estaba funcionando en un servidor remoto, lo he bajado y lo he puesto ha funcionar en local sin necesidad de ninguna licencia y en tan solo 10 minutos. De la misma forma puedo ahora modificarlo y volverlo a poner en el Servidor y que accedan todos los usuarios que quieran bien mediante HTML o con navegadores VELÁZQUEZ. Y además si quieres pasamos los datos que he traído en un cd y verás como los tiempos son los mismos.

Paramos a comer y me niego a hablar de Velázquez hasta no acabar la comida.

Por la tarde le realicé una pequeña facturación; en fín lo de siempre, Clientes, Albaranes, algunos listados, control de Existencias, etc. De hecho era un trabajo que tenía que hacer para un amigo que llevaba 2 meses desarrollándo en no-sé-qué-lenguaje.

A las 6 teníamos terminado el programa. De todas formas hay que repasarlo y probarlo un poco mas, le indiqué. Si quieres lo repasamos juntos y se lo instalamos a tu cliente. A partir de ese momento mi amigo, como si se tratara de la niña del Exorcista, empezó a vomitar preguntas y mas preguntas...: ¿Y puede estar conectado a bases de datos Oracle , Odbc, Informix..? ¿Puedo interrogar la base de datos Velázquez desde Access.? ¿Además de leer los puertos serie, puedes crear tu propio protocolo TCP/IP.? ¿Aunque parece que no lo necesitas para nada, puedes utilizar dll’s externas? ¿Tiene nivel de Seguridad 6 la información que corre por la red? ¿Puedes dar privilegios además de por usuarios, por tipo de conexión, Local oRemota? ¿De verdad no necesitas generadores de informes externos,? ¿Y puedes realizar versiones demo te tus programas para distribuirlas con totalseguridad? ¿Y de verdad en tu empresa con un Pentium 4 y una Adsl de 2 Mb estas sirviendo acasi 100 usuarios, la mitad de ellos por Internet ademas de los que te accedenvia Web?

A todas estas y muchas mas preguntas mi respuesta fue siempre "SI".

Y la suya....”No me lo creo”.

A lo que yo añado ni se lo cree hoy, ni se lo creerá mañana cuando probablemente sea capaz de realizar su primer mapa. Pero si tiene fe probablemente comprenderá Velázquez y lo que realmente es: una abstracción de todos los Sistemas de información que nos rodean. Una nueva forma de ver la información, una nueva filosofía de la información. Intentar explicar que Velázquez no es una base de datos Relacional es como pretender explicar este concepto al que solo conoce el fichero secuencial.

Pero no lo dudo, quizás dentro de un mes o quizás dos sea cuando no le quede ninguna duda y se pregunte como podía haber sido rentable su empresa durante tantos años sin Velázquez Visual.

De todas forma lo que pensaría esa noche es que Velázquez es una herramienta maravillosa, pero que como otras que ha visto, seguro que tiene limitaciones.

Yo le podría haber indicado que no tiene limitaciones, que no se obceque pensando que es una herramienta de desarrollo rápido, etc, etc , pero todo eso sólo lo puede descubrir él mismo.

También le podía haber dicho que no se preocupara por el tiempo que perdió en sus antiguos desarrollos , si no que se alegrase por el que iba a ganar a partir de ahora.

Sin embargo Velázquez sí que tiene un problema:

En su mente no habrá vuelta atrás

Velneo Conference 06

Otra invitada a la Velneo Conference 06.



Te lo vas a perder?

vAngelina

Quién tenía alguna duda con VV?

Ahora queda claro que tenemos muy buenas razones para pasarnos todos a Velázquez Visual, o no?


Velneo & Web ( v )

Me habeis comentado que hablo maravillas sobre Velneo y la web, que se pueden hacer muchas cosas, pero que no había puesto nigún ejemplo de funcionamiento. Bién, pués ahí va:

reservaentradas.com
Portal de Cine, hecho íntegramente con VV y en funcionamiento real.

Velneo & Web ( iv )

Cuando los chicos de VV anunciaron la aparición de su nueva web rápidamente fuí a visitarla.

Desde aquí vaya mi enhorabuena por la web: contenidos constantemente actualizados y una estética mucho más acorde con la nueva empresa.

Analizando el código de la página me maravilló el exquisito uso de las capacidades dinámicas de VV para la web: El estilo css del sitio se construye en un proceso!!! Magnífico.

Estilos en cascada dinámicos, uaoh!

Esto me inspiró para incluir en mi aplicación-portal web la configuración de la apariencia del portal a partir de la aplicación de gestión.

Genial. Con inspiraciones como esta, el futuro de la web y VV queda asegurado.

Velneo & Web ( iii )

Como provengo del mundo del ASP e IIS estaba acostumbrado a usar el componente ad-Rotator para programar y rotar los banners en la web.

Ahora que desarrollo en VV me planteé:

"Y si me hago un componente para rotar banners en la web?"

Dicho y hecho.

Banners programables en el tiempo con prioridades ( % de impacto ) y todo desde VV.

Algo más?

Velneo & Web ( ii )

Hace tiempo desarrollé un foro en Velázquez visual.

Viendo el auge de los blogs en internet decidí que para mi próximo proyecto en internet incoporaría un blog en la misma web.

Me hice mi propio weblog en internet y pude ver cómo funcionaba.

Acto seguido decidí hacer mi propio blog con Velázquez Visual, pero, acto seguido mi inquietud fue hacer un blogger en Velázquez Visual.

En breve, un blogger en VV. Ya os avisaré de la versión definitiva.

Velneo & Web ( i )

En mi empresa trabajamos dos personas dedicadas al desarrollo web: Julián, experto en PHP y yo, aficionado al ASP.

Entre los dos le dábamos salida a cualquier proyecto web que pasaba por nuestras manos, que quieres una web con catálogo y tienda virtual para hacer pedidos, ea!, que quieres una web con un portfolio de tus obras, ea!, que quieres vender caballos desde la web, ea!, que quieres que tus clientes puedan desde la parte privada de tu web puedan hacer pedidos y consultar su estado, ea!, que quieres hacer un club de contactos en la web, ea!.

Pero llegaron los proyectos más gordos. "Quiero una web para, en tiempo real, poder vender mi producto, cobrarlo del banco en forma de tarjeta de crédito EMV de forma segura, y darle al cliente la seguridad de que lo que ha comprado lo tiene". Ostras!!!

Afortunádamente ambos hicimos los cursos avanzados de Velázquez Visual y aprendimos a desarrollar webs dinámicas ( enlazadas a procesos ) que garantizaban al cliente el cobro de forma segura y en tiempo real.

Puede parecer exagerado pero un curso en Velázquez Visual Módulo Avanzado, de dos semanas para dos personas, que saben del tema web, hace que esas dos personas puedan producir webs en VV capaces de codearse con los bancos con más renombre del país.

Visto el salto cualitativo de nuestras webs en tan poco tiempo, aún me pregunto qué no podemos hacer en la web con VV.

Y sólo somos dos y VV.

Velázquez Visual

Como ya sabreis leyendo mi perfil, no soy programador de carrera, soy ingeniero técnico industrial mecánico especialidad construcción de maquinaria, reconvertido en la práctica, y os preguntareis; "En qué programa este tío?"

Pues programo en Velázquez Visual.

Que qué es Velazquez Visual? Os cuento la historia.

Hace unos años nuestra oficina se encontraba en un centro comercial al lado de un Mercadona. Teníamos la puerta abierta al público en general y entraba todo tipo de gente, en especial, maridos que habían dejado a la mujer comprando en el supermercado y aprovechaban para ir a la tienda de informática a echar un vistazo.

Un día entró un señor vestido con camiseta, bermudas y chanclas, con un aspecto ciertamente desgarbado. Era Miguel. Nos comentó que era programador de Velázquez Visual. Nosotros desconocíamos por completo la herramienta, trabajábamos con Access y Visual Basic fundamentalmente ya que hacíamos programitas de gestión bastante básicos.

Tras una pequeña charla dijo que si le podíamos dejar un ordenador con conexión a internet para enseñarnos una cosa. Le dejamos uno de nuestros puestos y se conectó a su servidor. Tenía abiertos un navegador para controlar su programa de gestión que servía una página web, y el explorador de internet con la página en cuestión. Desde la gestión modificó la fotografía de un producto y... oh!, en tiempo real, apareció modificada en la web!!! Sacó un listado con miles de referencias en segundos que inmediatamente estaba saliendo por la impresora.

Im-pre-sio-nan-te.

Como su mujer ya había terminado las compras, quedamos para el día siguiente por la mañana, para una reunión más relajada, donde poder analizar en profundidad el producto y sus posibilidades.

La reunión fué espectacularmente fructífera. En una semana habíamos comprado nuestras licencias profesionales, nos habíamos formado y empezábamos a obtener nuestras primeras aplicaciones de gestión.

Eso es Velázquez Visual: Una herramienta que aglutina la base de datos más rápida que jamás te hayas podido imaginar con un lenguaje-entorno de desarrollo propio superintuitivo, que sirve aplicaciones y datos por internet a la velocidad del rayo, y además es servidor web!

Velázquez cambió nuestras aburridas líneas de código por algo mucho más divertido, dinámico y potente.

Lo que pasó de ahí en adelante es otra historia...

Nuevo blog

He decidido traspasar todos mis posts que tratan única y exclusivamente de Velneo de mi otro blog a este, así no liamos las cosas.

Además con esta nueva versión de blogger puedo utilizar labels para categorizar los posts cosa que no puedo hacer en el otro ya que es de una versión anterior.

Espero que os sea de utilidad.