viernes, 29 de diciembre de 2006

Feliz 2007!!!

Bien, llegados a estas alturas del 2006 creo que ya va siendo hora de felicitar la entrada del nuevo año a todos los asíduos lectores de este blog ;-D



FELIZ 2007!!!

martes, 5 de diciembre de 2006

Autobombo

Tras la visita a Velneo para la grabación de los vídeos de desarrolladores Velneo han ocurrido varias cosas que me enorgullecen mucho a nivel personal:

1.- Portada del Velneo Hoy de Noviembre de 2006

2.- Apunte en el blog de Velneo

3.- Posicionamiento en YouTube. Ahí va la captura de pantalla que podré enseñar a mis nietos diciendo "Cuando el yayo era joven salió el primero una vez en YouTube..., ah, qué tiempos aquellos! COJ! COJ!"

No es un retoque, es una captura original
Esta, con permiso de todos, se la dedico a mis dos hijos; Sergi y Pau, y a la compañera de mi vida; Maribel.

Life is soft!

viernes, 24 de noviembre de 2006

Campo objeto vs. Senda

Cada vez me cuesta más, a nivel web con Velneo, hacer referencia a las imágenes que se muestran por su senda.

En web tienes la posibilidad de guardar las imágenes en una carpeta específica y, a la hora de, por ejemplo, mostrar un catálogo de productos, para cada imagen de producto leer la ruta (senda que has guardado en un campo de la ficha del producto) y mostrar esa imagen.

También tienes la otra posibilidad, que es guardar la imagen en un campo tipo objeto de la ficha del propio producto, y para mostrar la imagen en web hacer referencia al objeto guardado en el campo.

Cada posibilidad tiene sus pros y sus contras. Veamos cuales son.

Guardando las imagenes en una carpeta y referenciandolas sólo por su senda en la ficha del producto tienes la ventaja de que el contenedor de objetos de la tabla no engorda, pero puede pasar que la imagen se mueva de sitio o cambie de nombre o símplemente desaparezca, y es que aunque parezca lo contrario, las imagenes como cualquier otro tipo de archivo, tienen vida propia y a veces toman sus propias decisiones. Así puedes llegar a encontrarte con un verdadero desaguisado en la web.

Si guardas las imagenes en un campo tipo objeto en la tabla, el contenedor engorda, pero es más difícil, que la imagen desaparezca, y si desaparece, el historial del servidor me dirá cómo ha sido.

El problema del contenedor gordo no me preocupa, ya que compañeros de Velneo conviven con contenedores de 5GB que siguen engordando, y siguen yendo como todo en Velneo, como un tiro y estables.

Me preocupa más un "pinchar-arrastrar-uy-yonohesido" del usuario. Con el historial del servidor, eso me preocupa menos todavía.

Ahora viene la gran ventaja del campo objeto frente a la senda: fruto de experimentación práctica con ambos casos sobre la misma base de datos, puedo asegurar y aseguro que, un listado grande de productos con su imagen correspondiente en la web tarda menos leyendo el objeto desde el campo que desde la senda.

Quizás tenga algo que ver la indexación que realiza Velneo sobre la tabla, o no, pero esa es mi experiencia, y ahí queda por si os puede resultar de utilidad.

Be "soft" my friend!

jueves, 16 de noviembre de 2006

Vídeos Velneo

En la anotación "Velneo existe" expliqué el tema, y por fín están aquí los vídeos!!!




El del resto de los compañeros que asistimos al evento los teneis aquí:

- Hugo
- Héctor
- Enrique

Que los disfruteis.

[Actualización 28 Nov. 2006]

Aquí están, pero en inglés!!!

- DomK
- Hugo
- Héctor
- Enrique

Life is soft!!

miércoles, 8 de noviembre de 2006

Velneo existe!!!

Un amigo mío siempre dice: "Has estado allí? Lo has visto con tus propios ojos? No? Pues entonces no existe!!!"

Tanto es así que creía que Soria no existía hasta que le enseñé las fotos que hice yo mismo cuando estuve allí de vacaciones. Ah! Y entonces sólo se le ocurrió decirme: "Tío, eres raro de verdad! Programas en Velneo... y te vas de vacaciones a Soria!!!"

Bien, pues en mi empresa pasaba algo parecido con Velneo, trabajamos con la herramienta y nos va muy bién, pero eran realmente excépticos y no se acababan de creer que Velneo existiera y tuviese ese edificio (vCenter) en Porriño-Vigo, así que me dijeron: "Haz fotos, Domingo"

El tema de la visita Velneo surgió de una iniciativa del propio Velneo; llevar a su sede a varios desarrolladores Velneo con un claro perfil: jóvenes, guapos, dinámicos, con blog...

Bueno, fuera de coñas, buscaban desarrolladores Velneo con experiencia previa en otros entornos de desarrollo para hacer una serie de vídeos promocionales de la herramienta, comparándola con nuestras experiencias previas.

Así que recibí la llamada de Velneo invitándome a tal efecto y acepté rápidamente.

Nicolás Osuna, encargado del área de márketing de Velneo se puso en contacto con nosotros para concretar fecha, vuelo y horarios.

Yo fuí desde Valencia junto con Enrique Barbeito que venía de Alicante en coche (debió salir de allí de madrugada!!!).

Quedamos en el aeropuerto de Valencia a las 06:30h, en la terminal de salidas. No lo conocía personalmente, había visto fotos suyas en su blog, del que soy asíduo lector desde hace tiempo, y al llegar me pareció verlo entre la multitud, pero me dije: "No puede ser. Es demasiado joven", y continué buscando.

Tras no encontrar a otro candidato a ser ebarbeito decidí enviarle un mensaje al móvil y... efectívamente era él, estaba cogiendo el móvil para leer mi mensaje. Para mis adentros pensé: "Qué joven!! Cuando lees su blog y sus posts en el foro de Velneo, nunca pensarías que una persona tan joven tuviese la cabeza tan bién puesta sobre los hombros"

Tomamos un café corto y un café americano respectívamente mientras empezábamos un trasiego interminable de ideas y experiencias sobre la vida y sobre Velneo, haciendo tiempo para embarcar en el vuelo que nos llevaría a Vigo.

Ya se lo comenté a Enrique: "Verás qué vuelo más guay!", y así fué. Un reactor pequeñito, casi privado, con asientos de cuero y amables azafatas que nos obsequiaron con un suculento desayuno a base de zumo de naranja, donuts, prensa diaria y café con leche.

Leí un poco de "Sueñan los androides con ovejas mecánicas?" durante el vuelo y dejé descansar un rato a Enrique mientras amanecía y llegábamos a Vigo.

Vigo nos acogió con su cara más amable; Nico esperándonos en el aeropuerto, no llovía, temperatura muy agradable y un hermoso arcoiris sobre la ría. Ideal.

Rápidamente nos fuimos a un bar donde nos reunimos con Hugo, Hector, Juan, el hermano de Fran Abad (que se parece mogollón a él y hace camisetas personalizadas y diseña) y el resto del staf para el vídeo.

Entre más zumo, café con leche y unos deliciosos croasanes, mantuvimos una animada brainstorming sobre unos cortos animados de Velneo. Se barajaron ideas interesantes y divertidas como el "Be soft my friend", o el Coyote que machacaba al Correcaminos porque había cambiado de marca ACME a Velneo, y la inevitable referencia a los hechos bíblicos e históricos. Nico tomó notas en su libreta de gusanillo y tras desbarrar un rato más, nos dirigimos al estudio de grabación donde nos maquillaron, nos sentamos en el set y soltamos todo lo que se nos fué pasando por la cabeza sobre Velneo y nuestra experiencia.

Comenzó Enrique (VB vs Velneo) que estuvo como una hora hablando sin parar y mirando al infinito, seguí yo mismo, contando las experiencias más chorras y rayantes que se me ocurrieron (web y Velneo, y juegos con Velneo), para luego intervenir Hector (Textiles Saroni o cómo dos desarrolladores Velneo hacen lo que un equipo de ingenieros desarrolladores no pudieron con otras herramientas), que se quedó sin sonido y tuvo que repetirlo todo otra vez, y por fín Hugo nos contó cosas interesantísimas sobre Velneo y su enfoque en el mundo del negocio.

Fué una sesión sincera y no dirigida. Aunque cada uno había preparado unos apuntes tipo "rollete a soltar", al final Nico decidió que quería algo expontáneo y así fué, cada uno dijo lo que le vino en gana y como se le pasó por la cabeza. Lo mejor; las sonrisas cómplices e incluso la carcajada espontánea. Terminamos cada una de las intervenciones con aplausos. Aún recuerdo el agobio de Hector intentando quitarse el maquillaje y me entra la risa...

Ya veremos cómo se las apañan con el montaje de los vídeos, ya que reducir a un minuto lo que contó cada uno, será sin duda obra de gigantes.

Tras esto ya habíamos terminado el trabajo y sólo quedaba disfrutar de la visita a Velneo.

Nos dirijimos raudos y veloces, pero sin sobrepasar el límite de velocidad, al vCenter y por fín lo vimos y lo pudimos tocar, realmente existe!. El comentario generalizado fue: "Qué buenas son las fotos del vCenter que aparecen en la web!", ya que en marmol y cristal (por no decir carne y hueso) no parece tan grande. Antes de entrar en las interioridades del vCenter fuimos a comer a un restaurante que hay al lado. Allí nos juntamos los visitantes y parte de la plantilla de Velneo que trabaja en el vCenter.

Fué un verdadero disfrute por ambas partes; el equipo de Velneo estaba entusiasmado de tener contacto directo con los desarrolladores que usan la herramienta (Nico no paraba de recoger en su cámara de vídeo las perlas que íbamos soltando sobre Velneo, nuestras experiencias, etc), y el grupo de desarrolladores, y especialmente el que os cuenta esto, alucinába con el personal de Velneo. Tíos jóvenes, guapos, dinámicos y con una validez profesional extrema. Verdaderas joyas.

Durante la comida siguió la cada vez más animada charla sobre Velneo, nuestras experiencias, problemas técnicos, otras herramientas de desarrollo e ilusiones de futuro con la V7.

Cómo no, Enrique seguía con su interminable discurso sobre todo tipo de herramientas de desarrollo, lenguajes e interioridades técnicas varias, cuando le soltaron una indirecta acojonante: "Tienes novia?" (te auguro un gran futuro Enrique).

Tras devorar la exquisita carne regada con buén vino de aquellos lares, nos dirigimos al vCenter.

El edificio es de marmol negro y cristal, con un interior moderno y minimalista. Lo vimos todo, todo, todo; la recepción, el sótano (donde alguno se agenció los tomos 1 y 2 de Velneo, pero no el maletín para el portátil), el comedor, el servicio técnico, los servidores, las dos primeras plantas donde hay personal de soporte y desarrollo, y la tercera planta donde se encuentra el equipo de Velneo.

Allí charlé con Ricardo (comunicación externa, es periodista y antes presentaba el telediario edición nocturna en Galicia), Dani (diseñador, que nos mostró en primicia y bajo máximo secreto la futura imágen de diferentes productos V7), Alberto (webmaster, con el que estuve liado comentando las posibilidades de Velneo y la web), Fred (versión inglesa de la herramienta), Mario (Velneo directo, que nos enseñó la última beta funcional de V7, hasta en chino!!!) y Cacho (también de Velneo directo y relación con clientes, que me sorprendió por su tono de voz grave y profundo, y su extensísimo conocimiento del medio), y seguro que me dejo a alguien, pero que me perdone! Ya sabeis... el alzheimer.

Todos y cada uno de ellos me sorprendieron muy grátamente; gente jóven, muy formada, dinámica, emprendedora y con las ideas muy, muy claras. Si ya confiaba en Velneo como herramienta, al conocer a parte de las personas que hay detrás del proyecto, estoy absolútamente convencido de que el futuro es suyo. Si pudiese invertir en Velneo (me refiero a pasta gansa) lo haría sin dudar ya que va a subir como la espuma, y se van a comer el Mundo, porque tienen la mejor herramienta y sobre todo, el mejor equipo humano.

Charlamos sobre nuestras inquietudes acerca de la V7, plazos, adaptación, migración, plantillas, posible comportamiento futuro de usuarios actuales, intentamos absorver lo máximo de V7 con lo poco que pudimos fisgonear, pero sobre todo nos echamos unas buenas risas juntos. Me impresionó el buén ambiente reinante en la empresa.

Terminamos la visita en las puerta del vCenter donde nos hicimos una "foto para la historia" que no salió.

Tras esto fuimos Enrique, Hugo, Nico y yo a tomar unas cañas por Vigo, mientras hacíamos tiempo para coger el avión. Sentados en la terraza Hugo y Nico no paraban de saludar a la gente que pasaba y pensé: "O son muy famosos en Vigo o Vigo es como un pueblo grande y todos se conocen..."

Tras 15 horas de disfrute intensivo nos metimos en el avión de vuelta a Valencia, donde nos volvieron a obsequiar con bocata y cervecita. El vuelo se nos hizo corto y es que fué realmente corto: el piloto pisó el acelerador más de la cuenta y llegamos con adelanto!!!

Me despedí de Enrique, no sin antes indicarle el camino de regreso a Alicante y preocuparme sincéramente por él, ya que aún le quedaban un par de horas hasta llegar a casa, y me fuí a casa con la sensación de haber pasado una jornada única y extraordinaria.

No sé si se repetirá en el futuro, pero si es así, me gustaría volver a participar, y si no es así, seguro que nos vemos en alguna vConference.

Life is soft!!!

martes, 7 de noviembre de 2006

Sesiones de usuario en Velneo (i)

Veamos cómo montar una web en Velneo con control de visitas y acceso a zona privada.

Lo primero será la estructura de tablas.

Vamos a necesitar una tabla de USUARIOS donde almacenar los usuarios que tienen permiso para acceder a la zona privada de la web.

La estructura de esta tabla será, por ejemplo:

Campo CODIGO numérico de la longitud necesaria con contenido inicial siguiente al último
Campo NOMBRE para almacenar el nombre real completo del usuario autorizado
Campo RAZON-SOCIAL para almacenar la empresa del usuario autorizado
Campo USUARIO para almacenar el nombre de usuario autorizado
Campo CONTRASENYA para almacenar la contraseña del usuario autorizado

Montaremos los índices de clave única necesarios para que no se puedan repetir el mismo NOMBRE y RAZON-SOCIAL, ni el mismo USUARIO y CONTRASENYA, o ni el mismo USUARIO, ni la misma CONTRASENYA.

Vamos a necesitar también una tabla NAVEGANTES donde almacenaremos las visitas únicas a la web.

La estructura de esta tabla será, por ejemplo:

Campo CODIGO numérico de la longitud necesaria con contenido inicial siguiente al último
Campo USUARIO enlazado a la tabla de datos maestra USUARIOS
Campo FECHA de tipo fecha con contenido inicial fHoy(), para almacenar la fecha de inicio de sesión de ese NAVEGANTE
Campo HORA de tipo hora con contenido inicial fAhora(), para almacenar la hora de inicio de sesión de ese NAVEGANTE

Si además queremos controlar el histórico de movimientos a través de la web de los diferentes NAVEGANTES, montaremos una tabla VISITAS que será submaestra de NAVEGANTES.

La estructura de esta tabla será, por ejemplo:

Campo NAVEGANTE enlazado a la tabla de datos maestra NAVEGANTES
Campo CODIGO numérico de la longitud necesaria con contenido inicial siguiente al último
Campo PAGINA donde almacenaremos la referencia de la página visitada (si utilizamos un sistema parecido al de vWeb, será el código de página)
Campo FECHA de tipo fecha con contenido inicial fHoy(), para almacenar la fecha de la visita a la página en cuestión
Campo HORA de tipo hora con contenido inicial fAhora(), para almacenar la hora de la visita a la página en cuestión

Lo segundo será la estructura html de la web.

Para empezar usaremos un refinamiento que permitirá que nuestra página inicial por defecto en vez de ser una página PAG sea un proceso PRO.

Esto lo conseguiremos haciendo que nuestra página INDEX.PAG defina una estructura de frames como la siguiente:

[html]
[head]
[title]Título de la web (muy importante)[/title]
[meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"]
[meta name="keywords" content="palabras por las que queremos aparecer en los buscadores separadas por espacios"]
[meta name="description" content="Breve descripción de la web. Este es el párrafo resumen que aparece en los buscadores"]
[/head]
[frameset border="0" framespacing="0" frameborder="0" cols="100%,*"]
[frame src="INDEX.PRO" name="web" frameborder="0" framespacing="0" noresize]
[/frameset]
[noframes]
[body bgcolor="#FFFFFF"]
Su navegador no soporta frames. Actualice su versión.
[/body]
[/noframes]
[/html]

Como veis definimos un frameset con dos columnas; la primera del 100% de ancho y la otra del resto, es decir, nada, y como contenido de la primera columna ponemos el INDEX.PRO

Así conseguimos varios efectos colaterales:

1.- Tener una página inicial que es un proceso y no una página. En un proceso podemos hacer lo que queramos, una página es html "tonto".

2.- Escondemos toda la web dentro de un frame. La dirección en la barra del navegador siempre mostrará el título de la página principal y no se verán cosas

raras ni incómodas como la ip de nuestro servidor, la pasarela cgi de Velneo, los nombres de los procesos y las variables globales que manejamos.

3.- Si tenemos nuestro dominio.com contratado en un servidor externo, la redirección será siempre la misma; http://ip_servidor/cgi-vel/alias_aplicacion/ y no deberemos apuntar a una INDEX.PAG o un INDEX.PRO

4.- Por aquí sólo se pasará una vez en cada sesión, al conectar por primera vez con nuestra web, el resto de veces, desde cualquier punto interno de la web, iremos directamente al INDEX.PRO

Ahora, de momento, sólo queda ver cómo es el proceso inicial INDEX.PRO

En este proceso veremos si hay un NAVEGANTE o no. Si lo hay (el usuario procede del interior de la web), lo conservaremos, y si no lo hay (el usuario procede del exterior de la web), lo daremos de alta.

Para ello usaremos una variable global NAV en memoria independiente para cada tarea en segundo plano accesible web de tipo numérico con la misma longitud que el campo CODIGO de la tabla de NAVEGANTES.

El proceso puede ser algo como:

Rem-] Inicializamos la página html
Set-] pagina,""
Rem-] Recibimos el Navegante
Set-] navegante,$NAV$
Rem-] Comprobamos si viene de fuera o de dentro
if-] fCampoVacio('navegante')
Rem-] Viene de fuera
Rem-] y le asignamos un Navegante
Alta directa-] NAVEGANTES
Pre
Libre
Post
Set-] navegante, %CODIGO%
Rem-] Apuntamos la visita
Alta directa-] VISITAS
Pre
Modificar campo-] NAVEGANTE, 'navegante'
Modificar campo-] PAGINA, "Entrada a la web"
Post
Libre
Rem-] Componemos la página, pasando el parámetro 'navegante'
Html: ejecutar componente-] pagina, INDEX, 'navegante'
Rem-] Devolvemos la página
Añadir retorno texto-] 'pagina'

Analicemos el proceso en profundidad.

Lo primero que hacemos es inicializar la variable local 'pagina' que es la que contendrá el resultado de ejecutar el componente html que compondrá la página html. Es conveniente hacer siempre esta inicialización.

Pasamos el contenido de la variable global NAV a la variable local 'navegante' y comprobamos si está vacía con la función fCampoVacío(). Si está vacía quiere decir que esta visita viene de fuera de nuestra web y le asignamos un NAVEGANTE mediante alta directa en la tabla NAVEGANTES. Si no está vacía, quiere decir que esta visita proviene del interior de nuestra web, y conservamos su valor.

Apuntamos la visita a esta página mediante alta directa en la tabla VISITAS, especificando el NAVEGANTE y la página visitada.

Ahora ejecutamos el componente html INDEX que compondrá nuestra web, pasándole el parámetro 'navegante', y devolvemos como resultado la página html.

Con esto hemos conseguido que, a partir de aquí, cualquier visita a nuestra web tenga asignado un NAVEGANTE que arrastraremos por el resto de páginas de la web, pasándolo siempre como parámetro.

En el momento en que un usuario haga login positivo podemos apuntar el USUARIO en la tabla NAVEGANTES y de ahí en adelante ya lo tenemos identificado en cualquier página de la web.

En una próxima entrega, espero que muy pronto, seguiremos con este desarrollo para completar el login, ver la posibilidad de la caducidad de las sesiones de usuario, y hacer un estudio completo del histórico de visitas a nuestra web.

Hasta pronto!!

viernes, 3 de noviembre de 2006

Fondo Velneo 002

Como alguno en el foro sugirió, aquí está la primera vChica Velneo-Life-is-Soft.



Que la disfruteis!!!

Un saludo.

Primeros pasos con Velneo

Sirva esta anotación para contaros mi experiencia de aprendizaje de Velneo, aunque si ya leisteis esta otra anotación sabreis algo más sobre ello.

Como decía en otro post anterior, parte fundamental del aprendizaje de Velneo se basa en el cambio de chip. Velneo es otro mundo y si provienes de otros entornos de desarrollo como Access, Visual Basic, Delphi, php, asp, .net u otros similares, quizás lo más difícil sea olvidar la forma en que trabajabas antes, ya que en Velneo, las cosas son más sencillas, más directas, menos artificiales, más lógicamente naturales.

Empecé con Velneo siendo prácticamente virgen como programador (aquí está explicado), y tuve la enorme suerte de recibir clase de un experto programador de Velneo; concrétamente tres sesiones de tres horas cada una durante tres días.

Ahí conocí por primera vez la estructura de la base de datos; los tipos de tabla, los tipos de campo, los punteros, las actualizaciones, los eventos de tabla..., y fué realmente satisfactorio encontrar un entorno de desarrollo que traducía de una forma tan fiel la idea de base de datos que tenía en la cabeza expresada con conceptos y expresiones, en estructura y relaciones dentro del modelo de base de datos real.

Hasta ese momento mi función dentro de la empresa donde trabajo, a nivel de programación, había sido de colaborador lateral de los programadores, aportando otros puntos de vista a la hora de intentar resolver problemas, como pensador lateral: "Hombre, si tuvieses la posibilidad desde ahí de saber el último precio al que vendiste ese mismo producto a ese mismo cliente..."

Inmediatamente me agencié los dos tomos de Velneo y los devoré incesantemente una y otra vez. Por las noches abandoné lecturas como "El perfume", "El ocho" o "Los pilares de la Tierra", por los dichosos tomos 1 y 2 de Velneo.

El primer tomo es fácil de asimilar, empiezas a conocer Velneo y su forma de trabajar y plantear las cosas, y rápidamente desarrollas tu primera aplicación donde plasmas los dos o tres conceptos que has asimilado, y te entusiasma ver que ya tienes tu primera aplicación funcionando en pocas horas.

Esto me hizo pensar que Velneo era muy fácil, pero más adelante me dí cuenta de que no era así.

El segundo tomo es más difícil de asimilar, ya que trata de tipos de enlaces entre tablas que hasta entonces desconocía al no haberlos encontrado en otros entornos de desarrollo. Parece una tontería, pero aún sigo deleitándome con la lectura esporádica del tomo 2 para refrescar y mantener conceptos.

Tras esto hice los cursos "Básico" y "Avanzado" en la Universidad de La Florida; dos semanas muy productivas tanto por los conocimientos adquiridos como por las personas conocidas allí. Comenzábamos pronto por la mañana, almorzábamos en el bar de la universidad, continuábamos hasta la hora de comer y nos íbamos todos juntos a un bar cercano a la universidad, a comentar nuestras experiencias, nuestras empresas, nuestros desarrollos y las inmensas posibilidades de negocio que nos brindaba la herramienta Velneo. Seguíamos por la tarde hasta que se hacía de noche y nos despedíamos con ganas de que llegase el día
siguiente para seguir descubriendo velneo.

Una vez oficialmente formado en Velneo me incorporé completamente al equipo de desarrollo como programador Velneo con el primer reto de migrar todos nuestros desarrollos anteriores en Access y Visual Basic a Velneo. Tres meses después teníamos todos nuestros desarrollos esenciales migrados. Esta migración nos permitió estandarizar nuestras aplicaciones y, por fín, tras años de infructuosos intentos, disponer de un modelo estandard de desarrollo a partir del cuál realizar personalizaciones a clientes.

Un año después lanzábamos al mercado reservaentradas, la primera suite de ticketing multicanal íntegramente desarrollada en velneo, que actualmente compite con los gigantes del mercado como Tice y Servicaixa.

Pasábamos horas planteando y discutiendo la estructura de la base de datos hasta encontrar una solución óptima. Podíamos permitirnos dedicar el 33% del tiempo de desarrollo a esta fase ya que, una vez definida la estructura conveniente, el resto salía solo, gracias a Velneo.

Aquí fué cuando me dí cuenta de que Velneo, aunque parece fácil, no lo es en absoluto. Requiere muchísima abstracción y conceptos básicos muy claros.

Desde entonces hasta ahora, todo ha sido un camino cada vez más llano. Surgieron las plantillas empresariales y, ni cortos ni perezosos, adaptamos nuestro software a las mismas, consiguiendo integrar en una solución única los diversos desarrollos que manteníamos hasta el momento.

Descubrimos y explotamos al máximo las funciones remotas que nos permitieron hacer replicación de datos en caliente entre servidores, consolidación de datos en grupos de trabajo, etc, e incorporamos a nuestros desarrollos los nuevos objetos TCP/UDP que expandían las posibilidades de comunicación y control de dispositivos externos como lectores biométricos de huellas dactilares.

Ahora seguimos investigando y desarrollando las posibilidades de Velneo en la web que son ricas y variadas.

Así pues, dada mi experiencia con Velneo, mi consejo a los que se quieran iniciar en el maravilloso mundo de Velneo es:

1.- Descárgate los manuales de Velneo, léelos y asimílalos. Es fundamental cambiar el chip y comprender la filosofía de desarrollo Velneo. Si no lo haces, perderás mucho tiempo haciendo procesos que te solucionaría la estructura de la base de datos por sí misma.

2.- Haz los ejemplos de los tomos 1 y 2. Parece que no, pero ayudan mucho.

3.- Lee la ayuda del editor.

4.- Recurre siempre que puedas al soporte de Velneo. Es muy bueno.

5.- Consulta la FAQ, los tutoriales y la vBdC de Velneo. La base de datos del conocimiento es una inmensa recopilación de información útil para el desarrollador Velneo.

6.- Investiga el contenido del almacén de objetos, te sorprenderá. Ahí puedes observar el verdadero estilo de programación Velneo.

7.- Si puedes, realiza algún curso de Velneo, presencial u on-line en la web.

8.- Lee y aprende de las anotaciones publicadas en el foro de Velneo. Hay gente estupenda con muchísima experiencia que no duda en ayudar a los demás.

Ante todo documéntate, lee todo lo que puedas sobre Velneo y cambia el chip.

Si Velneo es una herramienta potentísima, si reduce el tiempo de desarrollo de aplicaciones de gestión de información de forma drástica, es gracias a las estructuras y relaciones de la base de datos, así que "pierde" todo el tiempo que quieras en conocerlas a fondo, te compensará.

Ánimo y bienvenido a Velneo!

martes, 31 de octubre de 2006

Fondo pantalla Velneo 001

Hace tiempo publiqué unas fotos de dos azafatas de la Velneo Conference '06, una aquí y otra aquí.

Como ya ha pasado mucho desde entonces (ahora nuestra querida herramienta se llama Velneo), he decidido actualizar las imágenes de Velneo que tengo en marcha. Pronto publicaré un nuevo diseño de camiseta Velneo que tengo a medias, pero de momento, me decido a publicar una serie de fondos de pantalla para los que trabajais con Velneo.

Aquí está el primero de ellos.

En principio pensé, cómo no, en hacerlo con chicas, pero visto que en el foro de Velneo cada vez hay más chicas, y recientemente algún comentario machista, pero sin acritud, ha causado cierto revuelo, me dije "Por qué no lo hago con un chico?"

Pues bién, aquí teneis, para ellos y para ellas, el primer vChico Velneo-Life-is-Soft.



Que lo disfruteis.

lunes, 30 de octubre de 2006

El software más difícil del mundo

Yo tuve la suerte de que me presentara Velneo un experto en Velneo que casualmente pasaba por allí.

Conocí Velneo de primera mano y me enseñaron la verdadera filosofía de programación en Velneo desde las bases. Me leí y releí los dos tomos de manuales de cabo a rabo varias veces. Me bajé y ví todos los vídeo-tutoriales de Velneo una y otra vez. Hice los cursos presenciales básico y avanzado...

Además tuve la inmensa suerte de que en mi empresa se decidiera abandonarlo todo por Velneo y en tres meses habíamos rehecho todo nuestro software en Velneo.

Y tuve más suerte, si cabe, ya que yo no era programador exhaustivo de otras herramientas como Access o Visual Basic, de llegar "virgen" a Velneo, es decir, sin arrastrar "malas costumbres" de programación.

Todo esto hizo que tomase conciencia de Velneo rápidamente y empezase a producir de forma muy efectiva en poco tiempo.

Pero yo tuve mucha suerte.

Si en vez de ser esta mi historia con Velneo hubiese empezado bajándomelo de la web para probarlo, con los manuales, el foro y lo que ya sabía de otras plataformas de programación, hubiese pensado: "Pero si esto es lo más fácil del mundo!!!"

Y seguramente hubiese empezado a reproducir mi viejo software de otras plataformas en Velneo, cometiendo seguramente los mismos errores; un enfoque que no es y miles de líneas de código para solucionar problemas que no lo son, todo por no haber cambiado el chip.

Y seguramente mis compañeros que no habrían cambiado de herramienta de desarrollo me dirían: "Pero si sólo es un RAD! Pero si es como Access! Pero si esto es lo más fácil del mundo!!!"

Cuesta, cuesta mucho al principio, pero hay que cambiar el chip.

Velneo no es un RAD, no es un Access, no es un Visual Basic, es mucho más que todo eso junto.

Velneo es la sinergía de una Base de datos potentísima con un entorno de desarrollo muy intuitivo.

Velneo es un modelo de base de datos con punteros de tipos desconocidos hasta ahora en cualquier otra base de datos.

Velneo es una estructura de tablas con actualizaciones, procesos de tablas, punteros a hermanos, punteros singular de plural por índice o posición, punteros indirectos virtuales o reales...

Velneo es otro mundo.

Velneo parece fácil, pero no lo es.

Velneo basa su potencia en las estructuras de la base de datos, las relaciones entre tablas y los eventos de tabla. Esto hace que Velneo no sea un entorno de desarrollo "pensado y hecho".

Velneo te da la libertad de pensar.

Cuanto más pienses la estructura de tablas y sus relaciones, más potente será tu solución, y mucho más fácil de desarrollar, mantener e implementar el resto de la aplicación.

Y como en esto de pensar no hay límites, porque el límite te lo pones tú, te puedo decir que Velneo es el software más difícil del mundo.

Velneo te hace libre para desarrollar e implementar a tus anchas, como tú quieras, y eso es difícil, a veces muy difícil.

Cuando estás acostumbrado a que las cosas se hacen de una forma, restringiendote a las posibilidades de unos objetos predefinidos con unos métodos determinados y sólo esos, es muy difícil que te digan "Olvida todo lo que sabes".

Cuando de repente te dan la libertad total lo normal es que te sientas perdido, como un niño delante de todo un universo nuevo y desconocido.

Pero tranquilo, no pasa nada, Velneo es el software más difícil del mundo, pero hacerlo fácil es cuestión tuya.

Así que ánimo! Estudia las bases, domina el fundamento y expandete más allá de los límites.

Life is soft!

RSS & Velneo

Hace tiempo tuve que comunicar una aplicación Velneo con terceros para pasarles información acerca de la cartelera de los cines que usan reservaentradas.com (1ª aplicación de ticketing multicanal íntegramente desarrollada en Velneo).

Cada medio de comunicación que se iba a conectar a reservaentradas.com para recopilar información usaba una aplicación diferente, desarrollada con lenguajes y plataformas muy dispares.

La única solución que ví era servir esos datos en XML, un estandard.

Así pues, decidimos que reservaentradas.com publicaría periódicamente en una carpeta un archivo xml donde iría la cartelera de todos los cines del periodo de tiempo determinado, los medios de comunciación autorizados accederían a la carpeta y obtendrían su información en formato XML.

Perfecto, un sólo proceso (que además se programa para que se ejecute automáticamente en el servidor Velneo cada cierto tiempo) que sirve datos a cualquier aplicación externa en formato estandard XML.

Esto que en principio parece una aplicación muy concreta para una necesidad única no lo es.

Esto es RSS.

RSS consiste en la publicación de archivos XML en una carpeta específica con las novedades publicadas en una web. Estas novedades pueden ser anotaciones de un blog, posts de un foro, artículos de un catálogo, películas de un cine, etc.

Así pues, siguiendo la "Teoría del Kiwi" de Velneo, sean cuales sean tus novedades, las puedes publicar en formato XML en tu web de forma accesible.

Un lector de feeds es como un navegador web restringido que almacena las direcciones de esas carpetas, accede a esos ficheros XML, los interpreta y te informa acerca de las novedades publicadas en esas webs.

Si te interesa ver cómo generar los ficheros XML desde Velneo puedes consultar esta otra anotación donde se explica el cómo.

Si quieres leer y validar XML de forma cómoda y rápida, consulta el proceso Parseador XML en el almacén de objetos de Velneo en Objetos visuales - Procesos.

Si quieres hacer un lector de feeds en Velneo, lo tienes todo.

La próxima vez que tenga un rato libre me pondré con ello, a ver si en dos o tres horas lo tengo funcionando.

Life is soft!

miércoles, 25 de octubre de 2006

PERDIDOS

Ahora mismo me encuentro traspasando datos de una vieja, muy vieja, aplicación de Access97 a Velneo.

Ya no es simplemente el traspaso de datos, que como sabéis es muy fácil; declaras la base de datos externa en el mapa Velneo y a través de tubos de importación que tiran de las consultas Access pasas los datos a tablas Velneo, es además, la revisión y depuración de datos introducidos.

Y aquí es donde me encuentro, intentando dar sentido a miles y miles de datos: Cómo 4 usuarios pueden escribir 67 conceptos de 2.472 formas diferentes????

Cuando conocimos Velneo tardamos tres meses en abandonar Access y Visual Basic, y ahora, 4 años después, todas esas aplicaciones parecen dinosaurios fosilizados. No sé cómo podíamos funcionar con esos engendros..., bueno sí lo sé, lo que pasa es que ahora mi perspectiva ha cambiado ya que miro hacia atrás con los ojos de Velneo y realmente me sorprende lo que veo.

Ufff!!! Parece que han pasado siglos desde que desarrollábamos en Access y Visual Basic, pero no ha pasado tanto, y aún hay gente que sigue en ese mundo; PERDIDOS.

lunes, 16 de octubre de 2006

Velneo & París

Como ya sabreis programo con Velneo y por eso ahora tengo más tiempo libre.

Tanto es así que me estoy haciendo a ratos una maqueta de París.

Aquí teneis un trocito

Función remota, esa gran desconocida

Una de las herramientas más potentes de Velneo son las funciones remotas.

Una función remota es, como su nombre indica, una función que puede ser ejecutada de forma remota.

Una función remota reside dentro de un mapa de Velneo, este mapa es el mapa de la aplicación alias_aplicacion, que está siendo servida por un servidor Velneo.

Supongamos una función normal y corriente de Velneo marcada con el flag Accesible VRPC, y que recibe dos parámetros; parametro_1 y parametro_2. Esta función hará lo que tenga que hacer y devolverá un resultado ( Set retorno función ).

Por tener marcado el flag Accesible VRPC, esta función ya es remota, es decir, ya puede ser ejecutada desde otras aplicaciones Velneo.

Veamos cómo puede ser llamada esta función de forma remota.

Dentro de otra aplicación Velneo, por ejemplo, en un proceso cualquiera hacemos lo siguiente:

Set ejecuta_fr, fEjecutarFuncionRemota( ip_servidor_Velneo, alias_aplicacion, nombre_funcion_remota, contraseña_funciones_remotas, parametro_1, parametro_2 )

Con esta sentencia le estamos diciendo a la aplicación que conecte con el servidor Velneo (ip_servidor_Velneo) donde reside la aplicación (alias_aplicación) que está siendo servida y que ejecute la función (nombre_funcion_remota) con la contraseña (contraseña_funciones_remotas) que se ha definido en el servidor Velneo para poder ejecutar funciones remotas contra esa aplicación, pasandole los parámetros (parametro_1, parametro_2).

Dentro de ejecuta_fr tendremos la respuesta que ha devuelto la ejecución de la función remota (Set retorno función).

Yo acostumbro a hacer un Set retorno función 1, de forma que tras la ejecución de la función remota es inevitable el if ejecuta_fr (si se ha ejecutado la función remota hago una cosa y si no hago otra).

Las funciones remotas pueden ser ejecutadas desde aplicaciones que están siendo servidas por otros servidores Velneo o desde aplicaciones ejecutandose en monopuesto que tengan acceso a internet.

La potencia de las funciones remotas entre servidores Velneo permite hacer una replicación de datos en caliente entre servidores, una consolidación de datos entre servidores y aplicaciones, etc.

Lo más sorprendente de las funciones remotas es que se pueden ejecutar desde versiones monopuesto contra servidores Velneo, de forma que una aplicación monopuesto puede estar funcionando de forma local, y en el momento en que, por ejemplo se detecte conexión a internet, se proceda al envío de datos al servidor mediante funciones remotas para centralizar datos.

Algunas aplicaciones prácticas de las funciones remotas pueden ser por ejemplo, dentro de la suite de ticketing "reservaentradas", el poder realizar el cuadre de cajas cuando se realiza una venta cruzada, es decir cuando un cine vende una entrada de otro cine, o la replicación en caliente de datos entre servidores para copia de seguridad en tiempo real, o dentro de la suite "GestCem" para la gestión de cementerios, la comunicación de los datos de los difuntos a la web del cementerio.

Rápido, sencillo y potente, como casi todo en Velneo.

viernes, 13 de octubre de 2006

Musicasette Velneo

Vista la proliferación de empresas que están surgiendo alrededor de Velneo, léase empresas formadoras en Velneo, yo también me he decidido a lanzar un "Master en Velneo & Web", y como parte del merchandising del master he editado un interesantísimo material multimedia al respecto.



Los interesados pueden ponerse en contacto conmigo y por un módico precio les haré llegar un ejemplar.

* Hecho a partir de material encontrado en Microsiervos ( Juegos y Diversión )

miércoles, 4 de octubre de 2006

CSS para imprimir

Al respecto del artículo "Informes html en Velneo" han surgido ciertas dudas sobre el uso de css para controlar la impresión de documentos ( tamaño del papel, márgenes, cabecera, pie de página, etc...).

Con el uso de css podemos definir todo ello.

Cuando definimos el css para un sitio web normalmente ponemos

[link href="general.css" rel="stylesheet" type="text/css" /]

pero no olvidemos que existe el selector media.

Con este selector podemos definir el css de un sitio así

[link href="impresion.css" media="print" rel="stylesheet" type="text/css" /]
[link href="general.css" media="screen" rel="stylesheet" type="text/css" /]

con lo cual cuando nuestro documento se vea en pantalla se aplicará el estilo marcado como media="screen", y cuando estemos imprimiendo nuestro documento se estará aplicando el estilo media="print".

Definiendo nuestras reglas css así

@media print [
H1 [ font-size: 10pt ]
]
@media screen [
H1 [ font-size: 12pt ]
]

estamos definiendo un estilo para pantalla y otro para impresión, en este caso cambiando el tamaño de la fuente de los titulares de nivel 1.

Podemos ocultar elementos en cualquiera de los dos casos para que se muestren en la versión en pantalla pero no en la versión impresa y viceversa.

{ visibility: hidden }

Y por ejemplo si queremos insertar saltos depágina controlados en html podemos usar la propiedad page-break.

Si insertamos un

[div style="page-break-after:always"][/div]

en nuestro documento estaremos forzando un salto de página tras este elemento.

He comentado los media print y screen, pero existen muchos otros como aural ( para lectores de voz sintética que te leen la pantalla cuando tienes problemas para visualizarla ), o braille ( cuando lees la pantalla en braille ), handheld ( para dispositivos con pantallas pequeñas o limitaciones de color o ancho de banda ), projection, tty, tv, etc.

Si quereis profundizar más sobre el tema os recomiendo w3c, la página del World Wide Web Consortium en español donde podreis consultar y estudiar las recomendaciones, tendencias y estandares sobre la web que viene.

Tened en cuenta lo siguiente; las normas de cómo es la web no las dicta ningún fabricante de navegadores de internet, las dicta un consorcio internacional de expertos, w3c.

Los fabricantes de navegadores lo que deberían hacer es atenerse a las reglas y hacer que sus navegadores sigan los estándares de w3c, cosa que ninguno de ellos cumple al 100%, pero hacia ahí vamos.

Así que no desarrolleis webs para que se vea bién con este u otro navegador, desarrollad webs que cumplan los estándares y si no se ve bién con el navegador de turno, que se actualice o muera, porque yo personalmente me cambiaría a otro navegador que sí cumpla los estándares.

martes, 3 de octubre de 2006

Informes html en Velneo

En el foro de Velneo se ven muchas consultas acerca de cómo hacer informes complejos que muestren información de varias tablas, incluyendo fotos, textos largos que se partan por páginas, saltos de página controlados y multitud de cosas que con un informe tradicional de Velneo no se pueden hacer o si se pueden hacer es a base de "astucias".

Bién, yo siempre comento en esos hilos "Y por qué no haces un informe html?"

Veamos un ejemplo práctico y sencillo.

Supongamos que en una aplicación de gestión de clubes de campo tenemos un menú formulario con un selector de fecha, un casillero de secciones ( spa, gimnasio, piscina, bodega, etc... ), un casillero de instalaciones ( relax room, sun bed room, hydrobath, tenis1, tenis2, padel1, padel2, etc... ), un casillero con las horas del día en periodos de media hora, y otro casillero para mostrar el plannig ( ocupación de cada recurso por hora del día ).





La información de este planning se guarda en una sola tabla PLANNING, por ejemplo.

Al usuario de la aplicación le encanta este menú lleno de controles sincronizados que le muestra el planning de ocupación de sus instalaciones.

Le gusta tanto que pide "Ahora lo quiero imprimir".

Cómo hacemos un informe como este? O recurrimos a "astucias", tablas temporales en memoria que rellenamos para el caso, etc, o hacemos un informe html.

En este caso vamos a poner un hermoso botón "Imprimir" en el menú.

El botón ejecuta un proceso sin origen y accesible web que añade retorno url la dirección fGetWebAplicacion() + INFORME-WEB.PRO

El proceso INFORME-WEB monta el informe html en base a componentes html.

En el proceso necesitamos varios componentes html, veamos cuales:

1.- Un componente1 para inicializar la página con el IMPRESCINDIBLE doctype, la apertura del html, la apertura del head, los metas, el cierre del head, la apertura del body, y el inicio de una tabla 100% de ancho y alto que contrendrá el resto de la página.

2.- Un componente2 que muestra la fecha del plannig.

3.- Un componente3 que muestra la instalación.

4.- Un componente4 que muestra un tramo horario ( de 08:00 a 08:30, por ejemplo ).

5.- Un componente5 que muestra la ocupación ( cliente, motivo de la visita o servicio a prestar y empleado que lo realizará, por ejemplo ).

6.- Un componente6 para saltar a la siguiente fila de la tabla general.

7.- Un componente7 que cierre la tabla, el body y el html por este orden.

Ahora el proceso lo que va a hacer es lo siguiente:

1.- Inicializar las variables locales pagina y tramo a "". Estas variables las utilizaremos para ir componiendo la página de la siguiente forma, la ejecución de un componente html la guardamos en el tramo, y la pagina es la pagina más el tramo.

2.- Iniciamos la página ejecutando el componente1.

3.- Ejecutamos el componente2 al que le pasamos el parámetro fecha_del_plannig.

4.- Cargamos la lista PLANNING, ordenamos por el campo INSTALACION, multipartimos la lista por INSTALACION y ejecutamos el componente3. Esto nos genera la fila encabezado de la tabla con las diferentes instalaciones.

5.- Ejecutamos el componente6 para pasar a la siguiente fila.

6.- Cargamos la lista PLANNING, ordenamos por TRAMO-HORARIO, multipartimos la lista por TRAMO-HORARIO, ejecutamos el componente4, seleccionamos ficha por posición 1, la leemos y guardamos la HORA, cargamos la lista PLANNING por el índice HORA resolviendola, ordenamos por INSTALACION, multipartimos por INSTALACION, ejecutamos el componente5 y luego el componente6.

Así hemos compuesto una fila con el tramo horario y luego la ocupación en ese tramo horario por cada una de las instalaciones de la cabecera de la tabla.

Esta fila se repite por cada tramo horario.

7.- Ejecutamos el componente7.

8.- Añadimos retorno texto la variable local pagina.





Y con esto ya tenemos un informe html que siempre se previsualiza antes de imprimir aunque se lanza desde proceso.


El informe html como página web que es, no tiene longitud, es tan larga como queramos, y los saltos de página los gestiona al imprimir el navegador, aunque podemos forzarlos mediante css.

Si tu cliente tiene una aplicación Velneo, tiene un navegador de aplicaciones y conjuntamente un navegador web para ver e imprimir estos informes.

La desventaja de este tipo de informes: se ejecutan en C/S, porque son web.

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.