QtAV Video Player para Velneo

Como os anunciamos en el último artículo, hemos empaquetado y preparado una solución Velneo en base al reproductor QtAV de Qt. La versión empaquetada es la 1.11.0 de QtAV, ya que la 1.12.0 adolece de ciertos problemas de compatibilidad con Qt 5.6.2, que es la versión de Qt que usa la última versión de Velneo 7.22.1.

Este reproductor es un fork adaptado a Velneo, con decenas de correcciones. Se han implementado para poder adaptarse correctamente a Velneo. En este proceso hemos intentando mantener el 100% de la funcionalidad de la versión original.

Como os podréis imaginar, sigue nuestra política de código abierto respetando la licencia de QtAV. En este caso LGPL v2.1 para las librerías y GPL v3 para el reproductor.

QtAV is a multimedia playback library based on Qt and FFmpeg. It can help you to write a player with less effort than ever before.

QtAV is free software licensed under the term of LGPL v2.1. The player example is licensed under GPL v3. If you use QtAV or its constituent libraries, you must adhere to the terms of the license in question.

 

Funcionalidades QtAV Video Player para Velneo

Dispone de un panel de información del medio que se está reproduciendo.

image

Como podéis observar, también dispone de la posibilidad de visualizar el frame de un cierto momento de la reproducción en tiempo real.

Posibilidad de cambiar el Video Codec (si está disponible)

image

Soporte para efectos y ajustes de imagen.

image

Historial de reproducción

image

Soporte de esquemas de audio, audio tracks con soporte interno y externo.

image

Misceláneos

image

Captura de frame en reproducción

image

Cuadro de dialogo Acerca de

image

 

Otras funcionalidades:

  • Soporte para pantalla completa
  • Control de volumen
  • Control de reproducción completo

Teclas aceleradoras:

  • O: Abrir un fichero
  • Espacio: pausa/continua
  • F: Pantalla completa on/off
  • N/B: muestra el siguiente/anterior frame. Continua la reproducción mediante la tecla “Espacio”
  • Q: Sale del reproductor
  • R: rota la pantalla 90
  • T: rota la pantalla –90
  • C: captura de pantalla
  • M: muta el sonido on/off
  • A: cambia el radio del aspecto
  • Arriba / Abajo: sube o baja el volumen + / –
  • +/-: Incrementa/decrementa la velocidad de reproducción
  • Ir hacia delante/detrás
  • Arrastra y suelta un fichero sobre el reproductor para iniciar la reproducción de un nuevo fichero

Un gran reproductor para que lo puedas disfrutar o integrar en vuestros desarrollos de código abierto Velneo:

Descargar Reproductor QtAV para v7.22.1Requiere estar registrado

Recuerda que este reproductor usa las librerías de QtAV por lo que tendrás que compilarlas para la versión adecuada de tu vClient. Para facilitarte el trabajo, hemos empaquetado la versión para Windows x32 en un descargable. Solo tienes que copiar los binarios dentro de la carpeta Velneo (donde está ubicado el ejecutable del vClient.exe):

Descargar QtAV para v7.22.1Requiere estar registrado

Código fuente QML del reproductor portado:

Descargar código fuente de QtAV para VelneoDescarga pública del código fuente

¿Qué se puede programar con Velneo?

Una buena forma de saberlo es yendo a la página de clientes, los casos de éxito de con la herramienta de programación. En esta sección puedes ver como todos los programadores hablan español, tienen clientes que también hablan español y que son latinos y españoles. Además podrás ver de forma detallada qué tipo de empresas son las que programan con Velneo y con qué herramientas trabajaban y de qué plataformas provienen (Visual FoxPro, Visual Basic, .Net, Java…), sus problemas y la forma en que Velneo da salida a sus necesidades.

Otra buena forma de saberlo es sentándote tres minutos a ver este vídeo: ¿Qué puedo desarrollar con Velneo?

Como se puede ver en el vídeo, la plataforma y el código fuente está al 100% en español. Velneo es mucho más de lo que te puedes imaginar...

Este artículo ¿Qué se puede programar con Velneo? es original de Velneo.

QtAV en Velneo

En la comunidad Qt hay decenas de proyectos muy interesantes, entre ellos destaca QtAV. QtAV es una biblioteca de reproducción multimedia basada en Qt y FFmpeg. Esta librería es interesante por muchos motivos, entre otros, la compatibilidad de formatos y plataformas.

QtMultimedia, como pudimos ver en el anterior artículo, sufre de ciertos problemas de rendimiento en equipos de bajas prestaciones. Por este motivo nos vimos en la necesidad de evaluar QtAV, para remplazar y mejorar las características multimedia de Qt en ciertos proyectos.

Características de QtAV

Como características principales de QtAV tenemos:

  • Soporte de decodificación por hardware: DXVA2, VAAPI, VDA/VideoToolbox, CedarX, CUDA(the 1st player support CUDA on linux?)
  • Soporte a OpenGL y ES2 para la mayoría de los formatos, incluyendo videos Hi10P
  • Pre-visualización en tiempo real
  • Captura de video en formato rgb y yuv
  • OSD y filtros personalizables
  • Filtros en libavfilter, por ejemplo… stero3d, blur
  • Reproducción frame a frame
  • Control de velocidad de reproducción
  • Soporte a distintos tipos de flujos: ficheros locales, http, rtsp etc… incluso puedes crear tus propios flujos
  • Canal de Audio, tracks y tracks externos
  • Selección de track de subtitulos. Puedes cambiar dinámicamente entre el motor FFmpeg y libass
  • Puedes cambiar dinámicamente de motor de renderizado, incluso cuando estás reproduciendo
  • Multiples salidas de video para un solo reproductor
  • Video eq(software y OpenGL): brillo, contraste, saturación…
  • Soporte para QML. La mayoría de su API es compatible con el módulo QtMultimedia (facilitando la portabilidad)
  • QtAV soporta Qt4 y Qt5, FFmpeg(>=1.0) y Libav (>=9.0).

Reproductor QtAV básico

image

Reproductor QtAV y soporte para filtros

image

Reproductor QtAV y soporte para Multi-ventana.

image

Descargar y probar los ejemplos

Para que podáis evaluar QtAV sobre Velneo, hemos preparado un ejemplo básico (mejorando el entregado en el anterior artículo referido a QtMultimedia).

Descargar ejemplo de QtAV para v7.22.1Requiere estar registrado

Además del ejemplo, tenéis que compilar las librerías necesarias.

https://github.com/wang-bin/QtAV/wiki/Build-QtAV

Básicamente tenéis que seguir los pasos que os indica en el tutorial de compilación.

Si por el contrario, no queréis sufrir el proceso de compilación, podéis descargarlo desde el siguiente enlace.

Descargar QtAV para v7.22.1Requiere estar registrado

Estas librerías se tienen que ubicar en las carpetas raíz de Velneo y en el directorio qml.

Si os parecen interesantes estos ejemplos… esperar a el port que hemos realizado para Velneo del reproductor de QtAV

image

 

 

 

 

 

Localizar y copiar contenido de celda en rejillas

Es probable que muchos de los usuarios de aplicaciones desarrolladas con Velneo desconozcan un par de funcionalidades básicas que ya vienen por defecto en las rejillas y que en el día a día pueden resultar bastante útiles.

Localizar registro

Si nos posicionamos con el ratón en cualquier celda de la rejilla y tecleamos los primeros caracteres del registro que queremos localizar, el foco se desplazará al primer registro que empiece por esos caracteres.

En el siguiente ejemplo, si nos posicionamos en el primer registro, en la primera columna, y tecleamos “jmg“, el registro seleccionado se desplaza hasta “jmgonzalez“.

Copiar celda

Además, otra utilidad interesante de las rejillas nos permite copiar al portapapeles el contenido de una celda sin necesidad de editar el registro. Simplemente hay que teclear CTRL+C.

Si los usuarios de tus aplicaciones aún no conocen estas posibilidades, seguro que se alegrarán de que se las cuentes, no lo dudes.

Y lo más importante… ¡sin programar!

 

Este artículo Localizar y copiar contenido de celda en rejillas es original de Velneo.

Velneo y los web services

El pasado 8 de febrero realizamos un seminario formativo para betatesters de Velneo centrado en las posibilidades de conexión de Velneo con diferentes servicios web (web services).

Para dicho taller, realizamos una aplicación de ejemplo donde conectábamos a un servicio web del Portal de la Dirección General del Catastro Español  y a un servicio de email márketing denominado E-goi.

Además de la aplicación que fue entregada a los asistentes como código libre y ejemplo, generamos documentación de apoyo para conocer las posibilidades de conexión de Velneo con servicios web que os detallamos a continuación.

¿Qué es un web service?

Un web service es un conjunto de protocolos y estándares para intercambiar datos entre aplicaciones.

Aplicaciones desarrolladas en lenguajes de programación diferentes y que son ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos entre ellas.

De forma más simple, podemos decir que un web service es una función que diferentes servicios o equipos utilizan, que solo se envían parámetros al servidor (lugar donde está alojado el web service) y que éste responderá a dicha petición.

Suelen utilizar para el intercambio de información los protocolos XML, SOAP, WSDL y UDDI. XML es usado para describir los datos, SOAP se ocupa para la transferencia de los datos, WSDL se emplea para describir los servicios disponibles y UDDI se ocupa para conocer cuales son los servicios disponibles.

¿Cuales son sus ventajas?

Son independientes de las aplicaciones. No tienen interfaz GUI. Se comparte la lógica de datos y procesos.
Interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.
Al ser servicios Web, están basados en estándares y protocolos de texto. Esto hace más fácil acceder a su contenido y entender su funcionamiento.
Las especificaciones son gestionadas por una organización abierta (W3C) y se garantiza la interoperabilidad entre aplicaciones.

¿Qué es SOAP?

SOAP (Simple Object Access Protocol) es un protocolo escrito en XML para el intercambio de información entre aplicaciones. Es un formato para enviar mensajes, diseñado especialmente para servir de comunicación en Internet, pudiendo extender los HTTP headers. Es una forma de definir qué información se envía y cómo mediante XML. Es un protocolo para acceder a un Web Service.

Ejemplo:

null

El mensaje SOAP está compuesto por un envelope (sobre), cuya estructura está formada por los siguientes elementos: header (cabecera) y body (cuerpo).

¿Qué es el WSDL?

WSDL (Web Services Description Language) es un lenguaje basado en XML para describir los servicios web y cómo acceder a ellos. Se ocupa de definir los Web Service como colecciones de punto de comunicación (end points) capaces de intercambiar mensajes.

La parte WSDL concreta describe el cómo y dónde del servicio:

  • Cómo tiene que llamar un cliente al servicio
  • Qué protocolo debería usar
  • Dónde está disponible el servicio

En el mundo Java podemos pensar en la parte concreta de un WSDL como en la implementación de la parte abstracta, aunque en términos de servicios Web, solamente describe dónde se encuentra dicha implementación para utilizarse.

La parte concreta de un WSDL contiene dos componentes principales:

  • Información de enlazado (binding) sobre el protocolo a utilizar
  • La dirección en donde localizar el servicio

Detalle de los elementos WSDL :

  • definitions: Es el elemento raíz y permite especificar el espacio de nombres del documento target namespace, el nombre, y otros prefijos utilizados en el documento WSDL. Un ejemplo de definición de prefijo es: xmlns:wsdl=”http://schemas.xmlsoap.org/wsdl/”. Este prefijo especifica que todos los elementos dentro del documento de esquemas con el target namespace”http://schemas.xmlsoap.org/wsdl/” tendrán el prefijo wsdl.
  • types: Se utiliza para definir los tipos de datos que se intercambiarán en el mensaje. Podemos definir dichos tipos directamente dentro de este elemento, o importar la definición de un fichero de esquema (fichero xsd). La definición de tipos puede verse como las definiciones Java de clase, con variables que pueden ser tipos primitivos o referencias a otras clases u objetos. Los tipos primitivos se definen en los espacios de nombres del Schema y normalmente nos referimos a ellos como built-in types. Éstos incluyen tipos simples tales como string, int, double,…
  • message: Define los distintos mensajes que se intercambiaran durante el proceso de invocación del servicio. Se deberán definir los mensajes de entrada y salida para cada operación que ofrezca el servicio. Los mensajes muestran descripciones abstractas de los datos que se van a intercambiar.
  • portType: Contiene una colección de una o más operaciones. Para cada operación indica cuáles son los mensajes de entrada y salida, utilizando para ello los mensajes definidos en el apartado anterior. Los portTypes son, por lo tanto, colecciones abstractas de operaciones soportadas por un servicio
  • binding: Indica el protocolo de red y el formato de los datos para las operaciones de un portType. Los bindings son definiciones concretas de los portTypes. Un portType puede tener múltiples bindings asociados. El formato de datos utilizado para los mensaje de las operaciones del portType puede ser orientado al documento u orientado a RPC. Si es orientado al documento tanto el mensaje de entrada como el de salida contendrán un documento XML. Si es orientado a RPC el mensaje de entrada contendrá el método invocado y sus parámetros, y el de salida el resultado de invocar dicho método, siguiendo una estructura más restrictiva.
  • service: Define el servicio como una colección de elementos port a los que se puede acceder. Un port se define asociando una dirección de red con un binding, de los definidos en el documento. Dicha dirección de red es la dirección (URL) donde el servicio actúa, y por lo tanto, será la dirección a la que las aplicaciones deberán conectarse para acceder al servicio.

¿Qué es REST?

Los servicios Web RESTful (Representational State Transfer Web Services) son adecuados para escenarios de integración básicos ad-hoc. Dichos servicios Web se suelen integrar mejor con HTTP que los servicios basado en SOAP, ya que no requieren mensajes XML o definiciones del servicio en forma de fichero WSDL.
Los servicios Web REST utilizan estándares muy conocidos como HTTP, SML, URI, MIME, y tienen una infraestructura “ligera” que permite que los servicios se construyan utilizando herramientas de forma mínima. Gracias a ello, el desarrollo de servicios RESTful es barato y tiene muy pocas “barreras” para su adopción.

¿Cómo funciona un web service?

El servicio a conectar es el que genera el WSDL describiendo el Web Service y registra el WSDL en el directorio UDDI o Service Registry.
El servicio a conectar o la aplicación del cliente requiere un Web Service y se pone en contacto con el UDDI para localizar el Web Service.
El cliente, basándose en la descripción descrita por el WSDL, envía un request para un servicio particular al Web Service Listener, que se encarga de recibir y enviar los mensajes en formato SOAP.
El Web Service analiza el mensaje SOAP del request e invoca una operación particular en la aplicación para procesar el request. El resultado se escribe de nuevo en SOAP en forma de respuesta y se envía al cliente.
El cliente analiza el mensaje de respuesta SOAP y lo interpreta o genera un error si ha habido alguno.

Ejemplos de web services:

Página con varios ejemplos: http://www.webservicex.net/new/Home/Index
Global Weather: http://www.webservicex.net/globalweather.asmx?wsdl
Currency conversor: http://www.webservicex.com/CurrencyConvertor.asmx?wsdl

Catastro español:

E-Goi (requiere estar dado de alta y disponer de una APIKey)

Herramientas para pruebas de web services

En Velneo, utilizamos la herramienta SoapUI para realizar tests de conexión a los diferentes web services.

Disponen de una versión gratuita que podéis descargar aquí.

Una vez conseguimos conectar y recibir datos, sabemos que la misma operativa y sintaxis nos funcionará en Velneo.

En el canal de youtube de Velneo tenemos disponible para los betatesters el video del seminario de formación de una hora de duración y que en próximas fechas se liberará para el resto de suscriptores.

Aquí os adelantamos un pequeño video que muestra en tiempo de ejecución la conexión de Velneo a los dos ejemplos comentados antes.

Life is soft !

Este artículo Velneo y los web services es original de Velneo.

¿Eres desarrollador? No te pagan por escribir código


No te pagan por escribir código. Ser un desarrollador de software es mucho más que simplemente escribir código. Con la ascenso de las startups, se ha consolidado una cultura de los denominados “soft skills” (habilidades blandas) en la industria del software y que ha venido para quedarse.

En primer lugar, necesitamos definir habilidades duras. Las habilidades duras son, principalmente, las habilidades técnicas de tu puesto de trabajo. Los desarrolladores de software deben saber cómo codificar, y eso es una habilidad difícil.

Por otro lado, las habilidades blandas son atributos relacionados principalmente con el área social. Cada habilidad blanda está relacionada de alguna manera con una de las habilidades duras de tu trabajo.

Estas son las habilidades blandas que debe tener un buen desarrollador de software:

  • Comunicación: la habilidad blanda más importante para un desarrollador. Tienes que saber cómo expresarte y tener buenas habilidades comunicativas para poder hablar con tu equipo y tus compañeros de manera efectiva, sin malentendidos, con asertividad y empatía.
  • Pensamiento crítico: en una revisión de código, esta es la habilidad que se busca. Cuestionarlo todo e ir tras las respuestas,
  • Adaptación: la tecnología cambia cada día. Nuevos frameworks, nuevos productos, nuevos compañeros en el equipo de desarrollo… ¡Todo es nuevo cíclicamente! Tienes que readaptarte estudiando nuevos lenguajes de programación, nuevas bibliotecas y estar siempre preparado para los cambios.

Entonces, ¿no me pagan por escribir código?

La respuesta es clara y meridiana. Definitivamente no. Se te paga para resolver problemas. Crear código es sólo la herramienta que utilizas para resolverlos.

En el mundo de la programación las habilidades blandas se están volviendo cada día más importantes. Como desarrollador de software, es muy importante entender a fondo lo que estás programando, qué software voy a entregar y dónde reside la propuesta de valor del producto en forma de código que estás escribiendo.

En el desarrollo de software, lo normal es que te contraten para resolver un problema empresarial usando tu experiencia. Los problemas empresariales son problemas de producto. La única responsabilidad del producto es aportar valor a los procesos empresariales, al igual que cada hora de tu trabajo.

Ahora bien, ¿cómo identificar los problemas empresariales?

Resolver problemas es fácil…

Resolver problemas es fácil. Encontrar los problemas, los reales, los que hay que atajar, eso es lo difícil. Para ser más precisos, encontrar en qué lugares podemos generar valor es realmente complicado. Y esto puede parecer que no está realmente relacionado con ninguna “habilidad suave” ya que tiene aparentemente nada que ver con otros seres humanos, sino que en principio tiene que ver únicamente con el diseño y el desarrollo de los productos de software que generan valor.

Pero en realidad el diseño y el desarrollo de un producto de software no se puede crear de espaldas a las personas/usuarios/clientes cuyo problema quieres solucionar…¿qué sentido tiene eso? Ninguno.

Muchas veces como desarrolladores nos centramos en el código, en el producto, y no le prestamos suficiente atención a cómo hacer el software que quieren nuestros clientes. Nos encerramos a escribir código, a crear módulos y funcionalidades para todo y para todos. Ese camino te lleva directamente al desastre empresarial con un retorno de la inversión bajísimo.

Lo más importante es entender a la perfección las necesidades de los clientes y filtrar esa información para ofrecerles la funcionalidad que necesitan con el mínimo código. ¿Por qué? Porque si tienes un módulo que cubre el 80% de lo que necesitan tus clientes ganarás en rentabilidad. ¿Si te piden una funcionalidad no estándar? Pues le pasas un buen presupuesto con una tarifa de mantenimiento elevada para disuadirles. Decir que no en forma de presupuesto al fin y al cabo también es decir que no.

¿Cómo centrarme en el cliente?

Además de querer centrarte en los clientes para entender perfectamente sus necesidades y poder ofrecerles la máxima funcionalidad que necesitan (que en la mayoría de los casos no tiene nada que ver con lo que te piden) con el mínimo código, tienes que poder hacerlo.

Si tu objetivo es aportar valor y tener un retorno de la inversión alto, la mejor estrategia es apostar por un segmento de mercado muy concreto, idear un software vertical para dicho segmento, y reutilizar código y módulos que resuelva la problemática de dicho nicho escogido mejor que ningún otro. Eso es solucionar problemas, y así aportas valor a una problemática empresarial sin apenas competencia.

Por ejemplo, puedes hacer programar un CRM más, una de esas agendas mastodónticas a modo de base de datos de clientes, o puedes crear un CRM especializado en una problemática específica que ayude a los equipos comerciales a cumplir sus objetivos de venta. ¿Qué software aporta más valor a una problemática empresarial concreta? La respuesta es evidente.

Apuesta por tecnología que te permita poner el foco en el cliente

Para poder centrarte en el cliente para aportar valor a un problemática empresarial concreta y obtener un alto retorno de la inversión, además de apostar por un vertical y reutilizar código, también necesitas una tecnología que te permita centrarte en cliente.

Aquí la clave reside en apostar por plataformas de desarrollo especializadas en el tipo de software de desarrollo que haces. Si programas vídeojuegos en C# y .NET  serás mucho menos rentable que si utilizas una plataforma específicamente diseñada para ello como Unity.

Si diseñas aplicaciones empresariales y software para la gestión de datos, puedes optar también por arrancar tu proyecto en cualquier tecnología generalista o multi-propósito, He visto productos de software muy buenos hechos en tecnologías que lo mismo sirven para programar web que programar aplicaciones de contabilidad. Otra cosa es el ROI de esos productos. Y no solo a la hora de programarlo, sino a la hora de mantenerlo. Una buena pregunta aquí es plantearse cómo presupuestar tu software.

Entonces, si no me pagan por programar código, ¿por qué me pagan?

Te pagan por solucionar problemas, normalmente de naturaleza empresarial.

Te pagan por refinar destrezas blandas que no están directamente relacionadas con solo escribir código, pero que sí afectan a tus desarrollos y a tu forma de trabajar con tu equipo y con tus clientes.

Te pagan por saber identificar aquellos problemas que sí son importantes para tu cliente aunque él no lo sepa.

Te pagan por desarrollar software que cubra el 80% de la funcionalidad que necesita tu cliente con el mínimo código posible.

Te pagan por saber escribir código y crear módulos reutilizables para una solución vertical que aporte mucho valor al usuario.

Y finalmente, te pagan por saber elegir qué tecnología tienes que utilizar en tus proyectos para obtener el máximo retorno de la inversión posible.

Los malos desarrolladores salen caros. No seas uno de ellos.

Este artículo ¿Eres desarrollador? No te pagan por escribir código es original de Velneo.

QtMultimedia en Velneo

Hemos realizado un fork de algunos de los ejemplos de QtMultimedia (Qt 5.6.2 ) para evaluar el comportamiento dentro Velneo v7.22.1. Las pruebas las hemos realizado en una máquina de bajas prestaciones (https://androidpc.es/blog/2017/08/16/review-beelink-s1/) para evaluarlo en un escenario poco favorable.

image

image

El resultado… bastante tragón en CPU y GPU.

image

Aún siendo así, el comportamiento es relativamente correcto en videos baja resolución (menos de 1280×720).

image

image

Descargar QtMultimedia para V7Requiere estar registrado

Si le pedimos algo un poco más avanzado (video FullHD 1080p 60fps)… se producen salto de frames y pixelado.

image

También hemos probado el comportamiento de QtAV dentro de Velneo con videos FullHD 1080p 60fps… y lo cierto es que mejora de forma considerable (en FullHD ya no se producen errores gráficos).

image

Aunque el consumo de CPU y GPU sigue siendo muy alto.

image

Os anexamos el ejemplo QtMultimedia usado para las pruebas. Estaría bien que nos dieseis vuestro feedbak en los comentarios.

Descargar QtMultimedia para V7Requiere estar registrado

¿Buscas una alternativa a Clarion para el desarrollo de aplicaciones de bases de datos?

alternativa clarion programación

Si tenemos en cuenta los números sin más consideraciones, la mayoría de los desarrolladores que se acercan a Velneo provienen de Visual Basic y .NET, y en menor medida de Java y Visual FoxPro, y no de Clarion. Es simplemente una cuestión de volumen: hay muchos más desarrolladores buscando alternativas a Visual Basic/.NET, FoxPro y a Java para el desarrollo de aplicaciones empresariales que de Clarion por el simple hecho de hay muchos más, es así de simple.

Sin embargo, si tenemos en cuenta aspectos diferentes al volumen como la satisfacción general, la curva de aprendizaje con la que los programadores de Clarion, los tiempos de desarrollo y en general el buen encaje que tiene la filosofía de Velneo como alternativa a Clarion para los desarrolladores de este entorno de desarrollo.

En este artículo explicaremos brevemente por qué Velneo tiene tan buena acogida en la comunidad de Clarion.

¿Qué es Clarion en comparación con Velneo?

Clarion es un lenguaje de programación y un entorno de desarrollo integrado, y está concebida para el desarrollo de software de bases de datos, y por ello muchas empresas de desarrollo que utilizan Clarion se han especializado en el desarrollo de aplicaciones empresariales y de gestión de administraciones públicas. Puede acceder a diferentes tipos de bases de datos. Es para ejecutar sobre el sistema operativo Windows.

Velneo es una plataforma de desarrollo de aplicaciones empresariales, que cuenta con su propio tipo de lenguaje de programación, y que también especializada para programar software empresarial y de bases de datos. Velneo cuenta con su propia base de datos, específicamente diseñada para dar fiabilidad, robustez y seguridad a la base de datos de las aplicaciones, a su rápido desarrollo y su fácil mantenimiento y edición. Velneo es multiplataforma (Linux, Windows, MacOS) y la plataforma está orientada también a la movilidad .

Muchos desarrolladores que se acercan a Velneo piensan que una base de datos cerrada es una limitación hasta que no hacen su primera aplicación y perciben todas las ventajas de una base de datos especializada para la programación y el mantenimiento de aplicaciones para empresas, como el uso de los inspectores para hacer refactorizaciones automáticas.

¿Cuál ha sido la trayectoria de Clarion y de Velneo hasta hoy?

En este sentido tanto Clarion como Velneo son dos entornos de desarrollo con un amplio recorrido y han evolucionado tecnológicamente hasta nuestros días.

Clarion fue probablemente una de las primeras herramientas de programación informática de cuarta generación (4GL), desarrollada por primera vez en la década de 1980. La primera versión era un producto para DOS y salió en Abril de 1986. Hay 11 versiones de Clarion, que ahora está comercializada por la empresa softvelocity.com.

Velneo por su parte es la evolución natural de Velázquez Visual, con muchos avances técnicos y un crecimiento imparable. Si te gustaba Velázquez Visual, Velneo es la evolución tecnológica que necesitas. Cloud y local, movilidad, multiplataforma, y mucho más con toda la potencia y fiabilidad de siempre.

Hereda más de 25 años de conocimiento. Aspira a ser ya la plataforma de desarrollo más longeva en países de habla hispana, de crecimiento sostenible y en pleno proceso de expansión.

Velneo cuenta con una comunidad muy satisfecha, una tecnología madura y en constante desarrollo, con dos versiones anuales, para garantizar la satisfacción de nuestros desarrolladores y sus clientes.

Hoy Velneo vende sus productos y servicios a programadores y empresas de desarrollo en más de 25 países de todo el mundo, y cuenta con una base de más de 15.000 empresas y más de 450.000 usuarios.

¿Cuáles son las principales diferencias entre Clarion y Velneo a la hora de desarrollar aplicaciones empresariales?

El entorno de desarrollo de Clarion (IDE) esta asentado sobre el lenguaje de programación Clarion. El IDE proporciona facilidades para la generación de código a través de un sistema de plantillas que permite a los programadores describir el programa desde un nivel superior más abstracto que las instrucciones de código reales. El generador entonces convierte este nivel más alto en código, que entonces se compila y se enlaza usando un compilador y un vinculador normales. Esta capa de generación a veces se conoce como programación 4GL (lenguaje de cuarta generación). Es lo que se conoce como un generador de código.

Si las plantillas se utilizan para generar código, los programadores pueden inyectar su propio código en el código generado para modificar o extender la funcionalidad que ofrece la capa de la plantilla. Este proceso de incrustación de código se puede hacer mientras se visualiza el código generado circundante. Esta mezcla de código de plantilla y código generado permite actualizar la configuración de la plantilla y regenerar el código, sin perder el código incrustado.

Las plantillas (desde las que se genera el código) se proporcionan en código abierto y los desarrolladores son libres de crear sus propias plantillas. Hay varias plantillas que han sido programadas por muchos desarrolladores distintos, algunos de los cuales se ofrecen como complementos comerciales y algunos de los cuales son gratuitos.

Hay varios productos del Clarion disponibles; Clarion Professional Edition, Clarion Enterprise Edition y Clarion.NET.

Velneo está programado en C++ con librerías QT. Desarrollar una aplicación empresarial puede requerir el uso de múltiples tecnologías lo que complica el desarrollo, implantación y mantenimiento. La plataforma de desarrollo Velneo apoyada en las librerías de Qt permite desarrollar una única vez e implantar el mismo desarrollo de la aplicación en múltiples sistemas operativos (Windows, Linux, macOS, Android e iOS), ejecutándose de forma nativa en todos los sistemas para obtener el mejor rendimiento.

La base de datos integrada, el refactoring de objetos y los inspectores avanzados hacen que el mantenimiento y evolución de tus aplicaciones se agilicen como nunca. Velneo incluye software en código abierto con el que ahorras miles de horas en el desarrollo de cualquier aplicación, acelerando los plazos de entrega y la calidad de los desarrollos. Un punto fuerte de la plataforma es que fue diseñada para obtener el mejor rendimiento en el despliegue de aplicaciones en Cloud. Velneo es multi-idioma y para la comunidad de desarrolladores dispone de todos los recursos y servicios en español.

Velneo destaca por su gran practicidad, robustez e integración y pretende crear una nueva filosofía en el desarrollo eficaz y rentable de aplicaciones empresariales. Así, se dirige a innovadores que creen en una tecnología de calidad, en tendencias y no en modas pasajeras, que saben reconocer productos de valor y no activos basados en marketing.

Velneo se comercializa por distintos Niveles de producto, que van desde el Nivel 1 gratuito de prueba, el Nivel 2 para la evaluación profesional de la plataforma, y los Niveles 3 y 4 para el desarrollo profesional de aplicaciones empresariales.

¿Por qué Velneo tiene tan buena acogida entre la comunidad de Clarion?

Como dice Jesús Arboleya, un buen programa nace del trabajo que realizan los buenos desarrolladores no de que el lenguaje o herramienta utilizada sean buenas, ya que en realidad no existen buenas o malas herramientas sino malas selecciones o usos de herramientas de forma inadecuada.

Un buen programador es capaz de desarrollar buen software con cualquier herramienta. Un mal programador no será capaz de desarrollar buen software con ninguna herramienta.

Una empresa de desarrollo puede en función del proyecto optar por una tecnología u otra. Tanto Clarion como Velneo son como pequeños secretos de la industria que en el momento de dar soluciones rápidas con aplicaciones confiables, son herramientas una herramienta como pocas.

La idea de optar por la practicidad, robustez e integración es una filosofía compartida tanto por Clarion como por Velneo en el desarrollo eficaz y rentable de aplicaciones empresariales.

A Velneo se nos acercan personas que programan en .NET, en PHP o en JAVA, y muchas veces optan por Velneo para algunos proyectos porque les permite crear aplicaciones empresariales en un periodo de tiempo inimaginable con otros lenguajes.

Muchos de los desarrolladores en Clarion que se acercan a Velneo nos cuentan que también en muy poco tiempo pueden generar una aplicación completa y la pueden integrar con otras tecnologías sin muchos problemas, y que en otros lenguajes como PHP tardarían mucho más tiempo, ya por no hablar de hacerlo en Java o en .NET.

En ese sentido, los desarrolladores de Clarion (y de forma muy parecida los de FoxPro) enseguida captan el concepto de desarrollo ágil de aplicaciones empresariales y de bases de datos que proporciona Velneo. Son herramientas que te permiten centrarte más en la problemática de cada cliente, ya que la tecnología la tienes cubierta siempre que la herramienta encaje con el tipo de desarrollo en cuestión: software de gestión de datos, aplicaciones empresariales, sanitarias, ERP, etc…

El futuro de Clarion y Velneo

No quiero en post hablar del futuro de Clarion puesto que es un tema que no nos concierne. La comunidad de desarrolladores de Clarion saben perfectamente como está el asunto a día de hoy.

Sin embargo, Velneo desde su evolución desde Velázquez Visual hasta nuestros días , tiene un recorrido ya de 25 años en el mercado. Evolucionamos Velázquez para convertirnos en la plataforma de desarrollo de habla hispana más longeva del mercado.

Un gran paso en esta evolución ha sido desarrollar de cero la plataforma sobre C++ con librerías Qt, pero basándonos en la filosofía de Velázquez Visual. ¿Por qué? Porque nos da mucha tranquilidad de cara a la evolución tecnológica de una plataforma que aspira a seguir creciendo durante los próximos 25 años como mínimo.

De C++ qué decir. Es un lenguaje universal, estándar, con mucho pasado, presente y futuro que permite desarrollar casi cualquier cosa y que nos asegura poder tener nuestra plataforma actualizada para muchos años. No hay mucho más que decir…

Por otro lado, las librerís Qt nos permiten demostrar al mundo que la tecnología se puede desarrollar de una manera diferente, basada en la investigación e innovación. Que la tecnología en la empresa es un medio y no un fin. De ahí la frase que resume nuestra filosofía: “Life is soft”, porque trabajamos para hacer lo complicado, sencillo y lo costoso, asequible y próximo.

Nos apoyamos en Qt para facilitar la vida a los programadores, con herramientas y plantillas creadas por ingenieros e informáticos que han resuelto sus mismos problemas y dudas. De esta forma pueden centrarse en dar soluciones a sus clientes, olvidándose de la tecnología. Y además, gracias a Qt, con un mismo desarrollo desplegamos en las principales plataformas: Windows, Linux, macOS, Android e iOS.

Con estas garantías tecnológicas el futuro de Velneo está asegurado. Si quieres probar Velneo o quieres más información no dudes en ponerte en contacto.

Este artículo ¿Buscas una alternativa a Clarion para el desarrollo de aplicaciones de bases de datos? es original de Velneo.

Descubre lo fácil que es conectarte a diferentes servicios web desde Velneo

¿Qué es este taller?

El próximo jueves, 8 de febrero de 16:00-17:00 (GMT+1), realizaremos un taller formativo sobre las posibilidades de conectar a diferentes web services desde Velneo.

Este taller, que será el primero de varios que deseamos celebrar durante este año, está orientado a desarrolladores de Velneo con conocimientos avanzados y con necesidades de conexión a este tipo de servicios web.

Las plazas serán limitadas a 100 asistentes, y siguiendo la política sobre los desarrolladores certificados en Velneo, sí eres uno de ellos, ya has tenido la posibilidad de registrarte antes.

Ahora, se abre el plazo de inscripción para los desarrolladores de nivel 4 que deseen asistir.

Sí debido a la restricción del número de plazas no puedes asistir al seminario online, no te preocupes ya que te será enviado el material y video del curso tras finalizar el taller, por lo que te rogamos encarecidamente que si no vas a poder asistir, nos avises para liberar tu plaza.

Al cabo de unas semanas, será liberado para el resto de suscriptores.

¿Qué veremos?

  • ¿Qué es un web service?
  • ¿Cuáles son sus ventajas?
  • ¿Qué es SOAP?
  • ¿Qué es el WSDL?
  • ¿Qué es REST?
  • ¿Cómo funciona un web service?
  • Ejemplos de web services
  • Herramientas para pruebas de web services
  • Dos ejemplos para acceder desde Velneo los servicios web

F.A.Q.S

¿Por qué se registraron primero los desarrolladores certificados?

Este tipo de talleres avanzados, que tratan temáticas de índole no tan general, serán siempre abiertos unos días antes a los desarrolladores certificados. Esto es así porque tal y como anunciamos en las certificaciones de este año, entendemos que la comunidad de desarrolladores certificados necesita de este tipo de formación y la forma de facilitarla es disponer de un registro prioritario.

¿Y sí no soy desarrollador certificado, no podré asistir?

Podrás asistir igualmente, pero las primeras plazas siempre serán prioritarias para los desarrolladores certificados. Es una política que no es nueva, ya en los registros de Life is Soft siempre se abría antes la posibilidad a niveles 4 y después al resto de niveles.

¿Qué requisitos son necesarios para aprovecharlo?

Es necesario disponer de conocimientos avanzados de Velneo así como nociones de XML y algo de Javascript.

¿Haréis más talleres formativos y el registro será siempre así?

Haremos más talleres formativos básicos (uso de CSS en Velneo, Informes avanzados en Velneo, …) y en estos no habrá prioridad para los desarrolladores certificados.
Sólo existirá prioridad de registro en talleres avanzados similares a éste.

 

Regístrate ahora: plazas limitadas

Este artículo Descubre lo fácil que es conectarte a diferentes servicios web desde Velneo es original de Velneo.

Cómo usar las CSS de Velneo vERP en tus aplicaciones

La interfaz es la piel de nuestras aplicaciones

Los desarrolladores sabemos que la base de datos es fundamental así como los procesos que aplican las reglas de negocio, sin embargo, para el usuario final la interfaz es el punto de conexión con la aplicación, es lo que toca y lo que siente. Por este motivo la interfaz tiene un papel fundamental en la satisfacción del usuario final. Además, a cada cliente le satisface ver su imagen corporativa aplicada en el software que utilizan, y las CSS permiten que el se cumpla ese deseo.

CSS permite cambiar de piel de forma sencilla

Al igual que ocurre en el desarrollo de soluciones web donde se pueden aplicar CSS para configurar el aspecto de las páginas, en las aplicaciones que desarrollamos con Velneo disponemos también de la posibilidad de aplicar CSS para ajustar el aspecto visual de nuestras aplicaciones de forma rápida, sencilla. Además, con el uso de CSS tenemos la capacidad de cambiar el aspecto de nuestras aplicaciones sin tener que cambiar nuestro código.

Las CSS de Velneo vERP

En el componente de la plataforma Velneo vERP se incluyen unas CSS con un estilo claro y sencillo que algunos pueden llegar a catalogar como minimalista. Estas CSS están disponibles para los suscriptores de Velneo a través de este enlace a la base de datos de conocimiento del centro de soporte. Estas CSS son completas ya que incluyen configuración de la mayoría de objetos y controles más usados. Además, están documentadas con un un índice por orden alfabético de todos los selectores correspondientes a los objetos y controles de Velneo para que los puedas localizar rápidamente.

Velneo vERP CSS indice

Intégralas en tus aplicaciones

Una vez descargado el fichero con la CSS es muy fácil de integrar en tus aplicaciones.

Puedes usar esta CSS de forma local a un objeto, es decir, que tu aplicación tendrá un estilo visual diferente solo para determinados objetos. En este ejemplo vamos a aplicarlo a un formulario. Éste es el aspecto del formulario antes de aplicar las CSS.

Velneo vERP CSS formulario antes

Para hacerlo, en el manejador de evento que se ejecuta en el evento Pre-inicialización, añadimos el código que ves en la siguiente captura.

Velneo vERP CSS pre-inicialización formulario

Es importante aplicar las CSS en el evento Pre-inicialización para evitar el efecto de repintado que se produciría si lo aplicamos en el evento Post-inicializado ya que esa señal se dispara una vez que los controles ya han sido creados y están pintados.

Como las CSS se aplican en cascada, al hacerlo en un formulario de forma específica, esta CSS solo se aplicará en ese formulario y en todos los que se abren desde este formulario.

Tras aplicar la CSS en el formulario, éste es su nuevo aspecto.

Velneo vERP CSS formulario después

Si deseamos aplicar una CSS a toda la aplicación, utilizaremos el mismo código pero en el evento Pre-inicialización del marco AUTOEXEC, de esta forma y gracias a su aplicación en cascada, todos los objetos de interfaz de nuestra aplicación aplicados en la CSS se verán afectados. Así quedaría toda la aplicación con las CSS de Velneo vERP aplicada.

Velneo vERP CSS aplicada al AUTOEXEC

Un aspecto destacado de las CSS es que se pueden aplicar estilos a controles específicos basándonos en su identificador. En estas CSS vemos como el botón aceptar tiene un estilo específico de llamada a la acción, para conseguirlo se utiliza el código que se muestra en la siguiente captura.

Velneo vERP CSS botón aceptar

Finalmente debemos destacar que en la CSS se aplican iconos en determinados controles, como podemos ver en los controles de edición de maestro de la siguiente imagen.

Para conseguirlo debemos incluir los objetos dibujo estático en nuestro proyecto de aplicación o datos. No es necesario meterlos como ficheros adjuntos, aunque también se podría. Gracias al uso del siguiente script, podemos guardar estos objetos dibujo declarados en nuestros proyectos a la carpeta de cacheclient del usuario. En el código que veíamos que se ejecutaba en el evento Pre-inicialización observaremos que en su parte inicial se ejecuta el proceso llamado GUA_ICO_CSS, se trata de un proceso JavaScript que contiene el siguiente código encargado de guardar los objetos dibujo en disco.

// Guardar iconos en disco para usarlos en las CSS
importClass("VFile");
importClass("VImage");

// Preparar variables de trabajo
var fichero = new VFile();
var icono   = new VImage();
var iconos  = ["ABA", "ABA_BLA", "ARR", "ARR_BLA", "CRR", "DER", "DER_BLA", "IZQ", "IZQ_BLA"];
var alias   = "velneo_verp_2_app/";
var senda   = theApp.clientCachePath();

// Verificamos si el icono ya existe en el directorio del cacherun, en caso contrario se crea
for (var numIcono = 0; numIcono < iconos.length; numIcono++) {
	var fichero = new VFile(senda + iconos[numIcono]);
	if (fichero.exists() === false) {
		icono.loadResource(alias + iconos[numIcono]);
		icono.save(senda + iconos[numIcono] + ".png", "PNG");
	}
}

En la variable iconos del JavaScript se declara el array de los identificadores de los objetos dibujo con las imágenes a guardar en el directorio desde el que lo atrapará las CSS.

Velneo vERP CSS pre-inicialización formulario

Una vez que hemos guardado los dibujos en disco, guardamos la CSS de Velneo vERP en una variable local llamada CSS, y finalmente la aplicamos con el comando de instrucción Interfaz: Establecer hoja de estilo CSS una sustitución de caracteres para que las imágenes declaradas apunten a la senda del directorio de caché del usuario, con la fórmula replaceString(CSS, "SENDA_ICONOS_", sysCacheClientPath), ya que en la CSS las imágenes se nombran con el prefijo SENDA_ICONOS_ como podemos ver en la siguiente captura.

Velneo vERP CSS image

Espero que este pequeño tutorial te sea de ayuda para ponerle una bonita piel a tus aplicaciones.

Este artículo Cómo usar las CSS de Velneo vERP en tus aplicaciones es original de Velneo.