Nueva región en París de Velneo Cloud

Siguiendo con nuestra política de mejora continua, hemos abierto una región en París para tanto Velneo vServers de desarrollo como de producción.

Esta nueva región dará una mayor agilidad a las conexiones de las aplicaciones por el simple hecho que las conexiones desde España (sobre todo la península ibérica) o Andorra se verán mejoradas por la disminución de la latencia en las comunicaciones TCP. Según nuestras pruebas el rendimiento de las aplicaciones puede mejorar hasta un 20%.

Además, esta nueva región es la primera que tiene implementado Velneo Cloud 2 en todos sus usuarios. Esto nos permite ajustar y mejorar los recursos destinados a cada usuario de forma más inteligente. Así podemos ofrecerte Velneo Cloud vModApache que incorpora Apache + https, un subdominio exclusivo para ti y disponer de una vrl sin puerto (por ejemplo, vatp://mierp.empresa.velneo.net).

Ya sabes, si vives en Europa y, tanto si tienes un vServer de desarrollo en c6.velneo.com o en c5.velneo.com, solicita a soporte su traslado a París. Y lo mismo si tienes un vServer de producción en c1.velneo.com. ¡¡Bonito París!!

Este artículo Nueva región en París de Velneo Cloud es original de Velneo.

Programas para programar, ¿cuál es el tuyo?

Puede sonar redundante, pero ¿qué es un software de programación o IDE más que un programa para programar?

Hace un par de años publicamos un artículo titulado ¿Cuál es el mejor programa para hacer software para empresas? que continua perfectamente vigente a día de hoy. Este artículo habla de la curva de aprendizaje que supone un nuevo lenguaje de programación, entorno o plataforma, así como de la confianza que se deposita en la empresa que sustenta esa herramienta o conjunto de ellas.

En cuanto a los mejores programas para hacer software para empresas se menciona a:

Y también a otras como NetBeans, Genexus o Windev.

Pero vamos a profundizar un poco más en el asunto.

¿Cual es el mejor lenguaje de programación o programa para programar?

Uno de los principales errores a la hora de contestar esta pregunta, es que intentamos elaborar una respuesta técnica, especificada, acotada y perfectamente medible. Y es un error. Y es que en el mundo de la programación, como en muchas otras áreas, este tipo de respuestas es recomendable no abordarlas sin antes conocer otros matices, como por ejemplo saber qué tipo de software, programa o aplicación se desea hacer. Porque no es lo mismo, una sencilla aplicación de cálculo, que un videojuego con gráficos en tres dimensiones. Para cada uno existirá un lenguaje mejor preparado que otro.

Creemos que un acercamiento a esta cuestión es preguntarse ¿Qué lenguaje de programación tiene más futuro? y no solo preguntarnos cual sería un hipotético número uno.

Repasando el artículo anterior y procurando dar una respuesta concreta a una pregunta muy global, os recomendamos los siguientes lenguajes de programación como los mejores, dada su edad, versatilidad, documentación y comunidad nos quedaríamos con:

  • Velneo: sí, es el lenguaje de nuestra propia plataforma, pero ¿cuántos lenguajes de programación completamente en español conoces? 🙂
  • JAVA, C++ y C#: Los clásicos. Múltiples lenguajes. Potencia infinita. Curva de aprendizaje muy grande.
  • JavaScript: Siempre ha estado ahí pero ahora vuelve con más fuerza que nunca. Con JS cualquier lenguaje y plataforma puede ir mucho más allá.
  • Python
  • Perl
  • PHP: La llave inglesa del lenguaje de programación web.

¿Cuáles son los lenguajes de programación más utilizados en la actualidad?

Os dejamos con la tabla del ranking de TIOBE actualizada a Marzo de 2018:

Lenguaje de programación % de uso sobre el total % de cambio respecto al año anterior
Java 14.941% -1.44%
C 12.760% +5.02%
C++ 6.452% +1.27%
Python 5.869% +1.95%
C# 5.067% +0.66%
Visual Basic .NET 4.085% +0.91%
PHP 4.010% +1.00%
JavaScript 3.916% +1.25%
Ruby 2.744% +0.49%
SQL 2.686% +2.69%

Estos diez lenguajes de programación representan a más de la mitad (+50%) de los lenguajes de programación utilizados en todo el mundo. Con cada uno de estos lenguajes es posible realizar IDEs (programas para programar gracias a la conexión de múltiples herramientas y servicios en un mismo lugar).

¿Cuáles es el mejor lenguaje para aprender a programar programas?

Ya hemos mencionado algunos de los lenguajes de programación más completos, populares y utilizados que existen hoy en día. Con estos lenguajes podremos programar nuestros propios softwares, así como llegar a elaborar nuestras propias plataformas, entornos, aplicaciones o programas.

Sin embargo, también hemos mencionado el concepto de la curva de aprendizaje. A mayor complejidad y versatilidad de un lenguaje, su curva de aprendizaje se vuelve cada vez más difícil. Por lo tanto, su tuviéramos que aprender un nuevo lenguaje de programación, ¿cual sería el mejor para empezar?

Aquí existen multitud de opiniones, aunque la más respetada dentro de la comunidad es que no existe “el mejor lenguaje de programación” pues como comentábamos antes, dependerá de qué queremos programar: un codec, un aplicación o un programa para crear otros programas.

Una vez hecha esta consideración, hay quien propone Python como mejor lenguaje para comenzar debido a que es de los más intuitivos a nivel de lógica que existen actualmente. Sin duda debemos de hablar de JAVA, el lenguaje más popular del mundo, que suele causar una sentimiento muy definido: lo amas o lo odias. No obstante resultaría poco útil no recomendar a alguien aprender el lenguaje de programación más popular que existe hoy día, pues muchos de las buenas prácticas de programación existentes hoy día surgieron precisamente gracias a JAVA. Ruby no es tan popular, pero quienes lo practican lo defienden a capa y espada asegurando que hoy día es el lenguaje más intuitivo y rápido para el desarrollo que puede existir. El C++ es tan popular y socorrido que no podríamos dejar de recomendarlo al igual que JAVA. Y el JavaSCript es a la programación, lo que la música a la vida: no es un elemento imprescindible para la supervivencia, pero sí algo muy importante y casi fundamental. JavaScript funciona y se entiende en prácticamente en cualquier entorno (backend, forntend, bases de datos…) lo que permite personalizar hasta los últimos detalles de cualquier programa creado para programar.

Nuestra recomendación especial: Velneo. Velneo no es tan popular ni tan versatil como los lenguajes mencionados anterioremente, no obstante sí que cuenta con una gran ventaja, que ninguno de ellos tiene: Velneo es un lenguaje completamente en español, tanto las instrucciones, como la documentación, los ejemplos, cursos y webinars son completamente en castellano. Podrás aprender a programar en español, así como desarrollar programas para programar, enfocados al desarrollo de aplicaciones para usuarios finales.

Como nos gusta remarcar continuamente, Velneo es una plataforma completa orientada al desarrollo de aplicaciones de gestión empresarial, un gran mundo que se nutre continuamente de diferentes software y programas enfocados al desarrollo de sus propias aplicaciones.

Este artículo Programas para programar, ¿cuál es el tuyo? es original de Velneo.

QtRecorder en Velneo

Me he tomado un descanso en los últimos días, los anteriores artículos fueron realmente intensos y necesitaba un relax. El trabajo que supone hacer todo el proceso para añadir un nuevo plugin QML es intenso, y lo cierto es que las dos últimas semanas no hemos parado.

Por eso he elegido esta vez, un plugin light. Por lo menos esa era la teoría.

He partido de QML Recorder (https://github.com/sverzegnassi/qml-recorder).

Este plugin QML, esencialmente nos permite grabar audio desde QML en distintos formatos y fuentes.

 image

Como ha priori parecía muy simple, compilé el plugin e importé los ejemplos a Velneo. El resultado… no funcionaba.

Revisando código, encontré un par de cosas que podían ser las culpables (tratamiento de las rutas y otro detalle menor). Corregidas, compiladas y a funcionar.

Parecía que ya estaba yo contento… hasta que me dio por leer. Terminé leyendo https://github.com/sverzegnassi/qml-recorder/issues y me día cuenta de que era una versión anticuada (no mucho la verdad). Navegando… encontré unas fuentes más actualizadas. Tal vez era más correcto partir de ellas y olvidarnos de las antiguas https://bazaar.launchpad.net/~verzegnassi-stefano/+junk/recorder-test/files.

Al analizar el código fuente, voy y me encuentro dos problemas .

Primer problema

El código fuente está dividido en dos plugins QML.

image

Vuelta a empezar… no por favor. No quería hacer nada complicado, tengo que leer mucho más sobre de Angular 5 y TypeScript, tengo que revisar el diseño de Arquitectura de otro mega-proyecto, tengo que ofertar un montaje de un CAS, tengo que evitar los rebotes del 4066.

No tengo tiempo para estas cosas…. pufff… dos plugins en vez de uno… pufff…

Pero no siempre, lo pude evitar. No quiero que mis compis Velneadores tengan que andar con dos librerías para algo tan sencillo como grabar un audio (conceptualmente están mejor separadas, pero para facilitar el uso, considero que mejor juntas).

El resumen… que he creado un plugin QML que contiene los dos y que hace el trabajo correctamente.

Segundo problema

El ejemplo está desarrollado para Ubuntu…. esto no me lo esperaba.

image

A revisar el ejemplo y retocar las cosas que no son compatibles. Y todo esto para un simple botón que graba audio.

image

Moralejas

“No es oro todo lo que reluce”, “No hay mal que por bien no venga”, “Lo barato sale caro”, “El que corre pronto para”… aplicaros el que más os guste. A mi me da, que aplican todos y alguno más en este caso.

QML es dado a la fragmentación por culpa de los fabricantes (como siempre):

  • BB10
  • Ubuntu
  • V-Play
  • Jolla
  • Nemo
  • Qt5

Muchas formas de hacer lo mismo, un sinsentido para un framework tan genial como Qt.

Descargas

Bueno, es hora de publicarlo. Funcionalmente es una librería simple, pero que resuelve una cuestión interesante. Os dejamos disponible todo lo necesario para que podáis disfrutar de ella en Velneo 7.22.1.

Descargar código fuente del plugin QML de QRecorder para v7.22.1Descargar código fuente

Recuerda que esta librería tendrás que compilarla 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 el contenido dentro de la carpeta Velneo (donde está ubicado el ejecutable del vClient.exe). Asegúrate de que el plugin queda dentro de la carpeta qml del directorio de instalación de Velneo.

Descargar Plugin QML para Velneo v7.22.1Requiere estar registrado

También os damos acceso al VIN de todos los ejemplos funcinando en Velneo V7

Descargar VIN con los ejemplos de QtRecorder para Velneo v7.22.1Requiere estar registrado

La verdad es que no se cual es el uso que la vais a dar, ya me contareis. Recuerda respetar la licencia GNU del mismo.

Aún hay más

Si crees que ya has superado todos los problemas es que aún te queda alguno que superar.

Pues eso, que voy a publicar en WordPress y zasca. Ha dicho que hoy no, tal vez mañana.

image

Un abrazo… y espero que tengáis un camino más sencillo con las pruebas de este plugin.

¡Por fin se termino 2017!

Pues si, parecía que no se iba a terminar nunca pero..

¡Por fin se terminó 2017!

La verdad es que si me preguntas como me ha ido el año, te contestaría con otra pregunta ¿a nivel personal, o a nivel profesional?

Llevaba tiempo queriendo escribir este post pero he preferido dejar pasar algo de tiempo para coger mayor perspectiva de todo lo vivido el año pasado.

¡Por fin se termino 2017!

En este post te contaba como me había ido 2016 y los planes que tenía para 2017…

Pero la vida es caprichosa y a veces tu quieres ir por un camino, y ella te lleva por otro.

Objetivos que tenía para 2017

Tenía 3 objetivos principales para el modelo de negocio que tengo con Ayudavelneo:

Centrarme en los desarrolladores que comienzan en Velneo.

Realizar webinar y seminarios de iniciación.

Obtener ingresos recurrentes.

Como puedes ver, sólo conseguí uno de los tres objetivos principales que me propuse para el año 2017.

Después de todos los problemas de salud que aparecieron a principios de año tuve que pivotar el modelo y buscar nuevos objetivos para el último trimestre de 2017 como te conté aquí.

Obtener ingresos recorrentes a través del blog o del software sigue siendo mi asignatura pendiente. Espero avanzar en este apartado durante 2018.

2017 a nivel personal

¿El vaso está medio lleno o medio vacío?

Pues eso es lo que me ha pasado a nivel personal.

Lo que a mediados del año 2017 era el vaso medio vacío (con todos los problemas de salud), mirándolo desde la distancia en estos primeros meses de 2018, se ha convertido en vaso medio lleno.

He retomado muchos hábitos que había olvidado:

  • Desayunos mas saludables.
  • Respetar las horas de sueño (estoy en proceso).
  • Desconectar de la tecnología (o intentarlo) los fines de semana.
  • He vuelto a la lectura ¡de libros en papel!.
  • He vuelto a entrenar (de hecho me estoy preparando el maratón de Madrid del día 22 de abril).
  • Dedicar tiempo de calidad para los míos.

Como consecuencia de todo ello, he perdido 8 kilos desde marzo de 2017.

Al final por muchas metas que nos planteemos a nivel profesional, si la salud no te respeta… y tu no te respetas a ti mismo, difícilmente vas a poder lograrlos.

Lo malo de todo esto es que la vida nos tenga que dar algún sustillo para que nos demos cuenta de ello.

2017 a nivel profesional

Sin lugar a dudas el mejor año desde que estoy con el proyecto ayudavelneo.

Tanto el “Servicio de desarrollo online” como el “Bono de 10 horas de desarrollo” han sido un completo éxito.

Ahora mismo en el “mundo Velneo” hay una realidad: las empresas siguen necesitando desarrolladores en Velneo con experiencia (sólo hay que ver las últimas ofertas de trabajo que han aparecido en el foro).

El “Servicio de desarrollo online” era perfecto para ellas.

Este servicio sólo tiene un problema: el pago es posterior al servicio.

Si se solapan proyectos, puedes tener bastante dinero pendiente de cobro.

Eso supone un riesgo… que he asumido y en algún caso no me ha salido bien.

De hecho sigo intentando resolverlo.

En cuanto al “Bono de 10 horas de desarrollo” es perfecto para empresas que tienen alguna necesidad puntual o programadores que se están iniciando en la plataforma y necesitan un empujón inicial.

Este servicio tiene una ventaja: el pago es anterior a prestar el servicio.

Aquí me ha ocurrido todo lo contrario, he tenido que devolver el importe de algún bono.

Al final es un servicio, no un producto por lo que si ya tienes las horas comprometidas, es mejor devolver el importe que no poder atender a un cliente.

Volvemos a los ingresos recurrentes…

Como consecuencia de estos servicios, he recibido ofertas para pasar a formar parte de alguna empresa (tanto de desarrollo como cliente final) como asalariado.

De momento las he rechazado o me han rechazado al saber mis pretensiones económicas.

Si tengo que abandonar mis sueños por cumplir los sueños de otros, tiene que merecer mucho la pena en todos los aspecto… y uno de ellos es el monetario.

¿Y en 2018 qué?

Pues de momento he aceptado 3 proyectos a largo plazo que me van a tener entretenido durante todo este 2018.

De ahí que esté rechazando algunas ofertas que me habéis hecho llegar a través de la página de contacto para los servicios antes mencionados.

Los webinar tendrán que esperar.

Seguiré escribiendo de manera regular y mi prioridad serán los desarrolladores que se están iniciando en la plataforma.

Tengo pensado cambiar el lead magnet que recibís cuando os suscribís al blog: un curso de 9 horas es un “ladrillo”… hay que hacer algo mas “consumible”.

Invertir en formación será otra prioridad para este año:

  • GTD
  • Oratoria
  • Metodologías Agiles
  • Marketing online

Y a nivel personal me gustaría sacarme el título de entrenador de futbol para formar a chavales (la formación me sigue encantando).

Veremos que se cumple… pero eso ya será un capítulo aparte.

Y a ti, ¿cómo te ha ido 2017? 

No seas tímido y déjame un comentario mas abajo.

La entrada ¡Por fin se termino 2017! se publicó primero en AyudaVelneo.

QZXing en Velneo

Esta vez nos enfocamos en una buena librería de uso empresarial. Sin duda aportará gran valor en la comunidad Velneo.

QZXing es una librería intermediaria entre ZXing y Qt. ZXing, abreviatura de (“Zebra Crossing”), es una librería de procesamiento de imágenes que permite leer y generar códigos de barras 1D y 2D. Es especialmente buena en el proceso de decodificación, no tanto en la codificación. ZXing dispone de soporte para c++, Java y Android https://github.com/zxing/zxing.

Su licencia es Apache 2.0. https://github.com/zxing/zxing/blob/master/LICENSE

image

Significa que es permisiva, pero tiene que mantener las marcas de uso. También recordaros que QR code está licenciado por Denso Wave, inc.

Por otro lado, QZXing es la librería intermediara entre Qt y ZXing, convirtiéndose en la librería más importante en codificación/decodificación de códigos de barras en Qt https://github.com/ftylitak/qzxing. Su licencia también es Apache 2.0 https://github.com/ftylitak/qzxing/blob/master/LICENSE.

QZXing, en teoría, dispone de soporte para QML (https://github.com/ftylitak/qzxing), pero lo cierto es que hemos tenido que desarrollar un plugin para que funcione correctamente en Velneo. El código fuente del plugin lo podrás encontrar al final del artículo, dentro del fichero comprimido del código fuente, en la carpeta QZXing-master\examples\QMLZXing. De momento solo la hemos probado sobre Win32, por lo que desconocemos como se comportará sobre otras plataformas.

image

QZXing soporta decodificación de códigos de barra de los siguientes tipos:

  • UPC-A
  • UPC-E
  • EAN-8
  • EAN-13
  • ITF
  • Code 39
  • Code 93
  • Code 128 (GS1)
  • Codabar
  • QR Code
  • Data Matrix
  • Aztec (beta)
  • PDF 417

También soporta codificación de tipo:

  • QR Code

 

Véase el siguiente ejemplo de como usar el decodificador desde QML:

import QZXing 2.3

function decode(preview) {
	imageToDecode.source = preview
	decoder.decodeImageQML(imageToDecode);
}

Image {
	id:imageToDecode
}

QZXing{
	id: decoder
	enabledDecoders: QZXing.DecoderFormat_QR_CODE
	onDecodingStarted: console.log("Decoding of image started...")
	onTagFound: console.log("Barcode data: " + tag)
	onDecodingFinished: console.log("Decoding finished " + (succeeded==true ? "successfully" : "unsuccessfully"))
}

Para la codificación de un código Qr usamos un proveedor de imágenes que se registra al iniciar le plugin. Véase el siguiente ejemplo de como usar el codificador de códigos Qr desde QML:

import QZXing 2.3

TextField {
	id: inputField
	text: "Hello world!"
}

Image{
	source: "image://QZXing/encode/" + inputField.text;
	cache: false;
}

 

Como podéis apreciar es relativamente sencillo de usar. Pero no os engañéis, es realmente poderoso.

 

Ejemplos de uso de QZXing en Velneo

En la zona de descargas, podrás encontrar un fichero VIN con cuatro los ejemplos funcionales. Trabajo ha costado conseguir que todos ellos funcionen correctamente, algunos de ellos los hemos tenido que revisar y corregir de forma profunda ya que no eran funcionales en primera instancia.

image

Lector de códigos desde imágenes con soporte Drag N Drop. Permite leer las imágenes mediante Drag N Drop dentro de velneo y obtener el Tag que se encuentre en ellas. Soporta todos los Decorders que veis en la captura.

image

Lector en vivo de etiquetas Qr. Es una implementación que permite leer códigos Qr en vivo. Acerca uno a tu webcam y verás como funciona.

image

Codificación de códigos Qr. Como podéis apreciar, es relativamente sencillo, el problema es que solo soporta códigos Qr.

image

Lector de códigos bajo demanda. Poco que decir… acercas el código a leer, pulsas en Decode y obtendrás un cuadro de dialogo con el código leído.

image

Descargas

Como podéis apreciar, funcionalmente es una gran librería. Os dejamos disponible todo lo necesario para que podáis disfrutar de ella en Velneo 7.22.1.

Descargar código fuente del plugin QML de QZXing para v7.22.1Descargar código fuente

 

Recuerda que esta librería tendrás que compilarla 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 el contenido dentro de la carpeta Velneo (donde está ubicado el ejecutable del vClient.exe). Asegúrate de que el plugin queda dentro de la carpeta qml del directorio de instalación de Velneo.

Descargar Plugin QML para Velneo v7.22.1Requiere estar registrado

 

También os damos acceso al VIN de todos los ejemplos funcinando en Velneo V7

Descargar VIN con los ejemplos de QZXing para Velneo v7.22.1Requiere estar registrado

 

Con un poquito de trabajo podrás integrarla en tus desarrollos para conseguir grandes mejoras en tus aplicaciones Velneo. Pero, ante todo, no se te olvide respetar la licencia Apache 2.0.

 

 

 

 

14 pasos para depurar tu software

pasos depuración software

La capacidad de encontrar y resolver errores de forma rápida y eficaz en aplicaciones nuevas o heredadas es como programador de software una de las habilidades más valiosas que puedes llegar a desarrollar. Dado que esta habilidad permite el rápido desarrollo y mantenimiento de sistemas de ingeniería informática de alta calidad, esta destreza resulta fundamental para muchas empresas tecnológicas, y es una de las habilidades más preciadas y buscadas en cualquier profesional que se dedica al desarrollo de aplicaciones de software.

No obstante, esta habilidad rara vez se evalúa en las entrevistas y en las pruebas que se hacen a los candidatos que optan a un puesto de trabajo como programador.

Nuestro equipo de desarrollo ha depurado y resuelto muchos problemas difíciles en muchos tipos de aplicaciones y sistemas, desde los consultores y los miembros del equipo de soporte que ayudan a nuestros clientes a depurar sus aplicaciones hasta nuestro equipo de desarrollo encargado del desarrollo de la plataforma completa de programación de aplicaciones empresariales Velneo y que se enfrentan al duro trabajo de depuración de errores para garantizar que todo funcione bien.

El procedimiento óptimo para encontrar y corregir errores es esencialmente el mismo para todos los casos. Sorprendentemente, muchos desarrolladores de software no tienen una noción clara y práctica del proceso. En este post vamos a repasar 14 pasos para depurar tu software. Esperamos que te sirva de ayuda.

Paso 1: asegúrate bien de saber lo que sí está funcionando

Cuando algo no funciona como se esperaba, es fácil dar por sentado que nada está funcionando bien. Tómate un tiempo para ver qué cosas sí están funcionando bien en torno al ámbito del problema. Esto te ayudará a delimitar el problema y crear una imagen clara en tu mente de su alcance.

Paso 2: localiza con precisión lo que no está funcionando

En el proceso indicado en el paso anterior para determinar lo que sí está funcionando, se identificará un conjunto de operaciones que no funcionan. Dedica tiempo a la elaboración de esta lista. Ten claro exactamente en qué cosas concretas el sistema no funciona como se esperaba.

A pesar de que puede parecer que estos primeros pasos no tienen sentido porque el problema es “obvio”, a menudo pasar a resolver el problema sin hacer un buen análisis de situación previo puede llevar a perder tiempo y esfuerzo, y, además, a dar una solución parcial o no óptima.

Paso 3: Simplifica el problema

El error de una aplicación de software que se descubre o sale a relucir en una situación compleja puede ser difícil de reproducir, especialmente cuando hay efectos no deterministas o estadísticos. Cualquier intento de simplificar el caso de prueba a la par que se conserva la reproducción del error siempre es un tiempo bien invertido.

Por ejemplo, si el error se produce al procesar un conjunto de datos muy grande, es posible que quieras intentar reproducir el problema con datasets cada vez más pequeños. Por supuesto, este ejemplo no sería posible si el problema está relacionado con conjuntos de datos grandes. En ese caso, crear un conjunto de datos simple aunque grande podría tener más sentido.

Delimitando gradualmente la situación o el contexto en la que surge el problema, no sólo aumentas tu claridad de miras acerca de lo que hace y no funciona, sino que, de manera natural, empiezas a construir tus propias hipótesis sobre lo que podría estar causando el problema.

Los casos de prueba simples son útiles para comunicar con precisión el error a terceros, para probar rápidamente si los cambios afectan al error, y también pueden convertirse en parte de tus pruebas de anti-regresión (consulta el paso 7). Puesto que los casos de prueba simples generalmente se pueden ejecutar rápidamente, también apoyan la prueba de la hipótesis (véase el paso 5).

Paso 4: establece hipótesis

Quizás llegues a este punto después de minutos, horas, días o incluso semanas de trabajo. No importa cómo llegues hasta aquí, o cuánto tiempo te tomó, ahora tendrás datos, y habrás aprendido algo acerca de la forma en que el problema se manifiesta. Este conocimiento te permite formar hipótesis acerca de lo que podría estar causando el error. Estas son teorías acerca de qué proceso dentro (o incluso fuera) del sistema podría estar conduciendo al comportamiento problemático observado en tu aplicación de software.

Paso 5: prueba tus hipótesis usando el ‘divide y vencerás’

Toma cada una de tus hipótesis y pruébalas de una en una, indaga en tu sistema y encuentra una sub-unidad donde creas que algo puede estar yendo mal. A continuación, ejecuta tu pequeño caso de prueba y observa el comportamiento interno de software hasta antes de esa sub-unidad y después de la misma. Si encuentras un problema antes de la sub-unidad, entonces tu hipótesis probablemente sea incorrecta, y al menos ya sabes lo que tienes que hacer: investigar más atrás hacia la entrada del sistema. Si, por el contrario, la entrada a esa parte del sistema parece correcta, pero la salida parece incorrecta, entonces tienes evidencias de que tu hipótesis no va por mal camino y puedes ir delimitando el mismo, acercándote al origen del mismo.

En este punto, si no estás completamente seguro de dónde está el error, entonces aplica vuelve al paso 1 de este artículo y aplícalo solo a esa  sub-unidad que ya has delimitado como posible origen del error.

Hay programadores que aplican este punto 5 de divide y vencerás de una manera más ingenua, sin establecer hipótesis previas. Dividen el programa en dos mitades, buscan en qué mitad del sistema ocurre el error, y luego ponen el foco en la parte que no funciona. Aunque parece una buena idea, este enfoque a la hora de depurar errores en software suele ser más lento y engorroso.

En verdad, analizando cada sub-unidad -en base a la fijación de una serie de hipótesis antes de hacer nada- se ahorra mucho tiempo y esfuerzo aunque pueda parecer lo contrario. Cualquier grieta que pueda aparecer en base a hacer conjeturas lógicas te obliga a repensar y mejorar tu sistema, a encontrar errores y a prevenir bugs futuros.

Divide tu software en sub-unidades de funcionalidad para analizar los errores y siempre vencerás. Pones el foco en el input de la sub-unidad y en su salida, y te permite delimitar el ámbito del problema con mucha más precisión. Si tienes un hipótesis razonada sobre los puntos críticos donde puede romper el software, vas a la entrada de esa sub-unidad y si funciona bien, vas a la salida. Si todo funciona según lo esperado vas a la siguiente sub-unidad que según tus hipótesis puede ser errática y haces la prueba, en orden, para ir arrinconando el ámbito del bug. Esto permite hacer un zoom muy rápido en el bug.

Solo pasa al siguiente paso una vez que tengas claro cuál es el error.

Paso 6: piensa en otra clase de esta versión del bug identificado

A veces los errores son causados por errores tipográficos simples, o fallos que solo ocurren una vez, y este tipo de errores sólo se pueden identificar en aislamiento. Sin embargo, es mucho más común que los bugs que identifiques sean representativos de un tipo de problemas mucho más grandes.

Después de dedicarle el tiempo y el esfuerzo para llegar a este paso, por lo general tendrás una percepción increíblemente clara de las partes pertinentes del sistema y del problema identificado. Serás un experto de clase mundial en este tipo de bug que acabas de localizar. Por esta razón, justo es ese el momento de aprovechar todo ese conocimiento adquirido. En un mes, ya no tendrás la misma claridad de percepción con respecto a este problema específico.

Así que dedícale tiempo en ese momento para aprovechar plenamente tu inversión de esfuerzo. Piensa y documenta la clase general de error, y piensa si el sistema probablemente manifestará otras expresiones de los problemas subyacentes, independientemente de que esas expresiones concretas se hayan manifestado ya en ejecución para los usuarios o no. Es lo que se denomina la depuración de errores preventiva. Te anticipas a otros posibles problemas del sistema basadas en la misma lógica de programación que generó el error.

No es muy buena idea eliminar un tumor sin saber si ese tumor se ha reproducido en el resto del organismo, independientemente de si el paciente lo haya identificado o no.

Paso 7: genera pruebas de regresión

Incluso si no diseñas sistemas de software utilizando el desarrollo guiado en pruebas, te recomiendo que sí utilices la corrección de errores del desarrollo guiado en pruebas.

Asegúrate de escribir las pruebas de nivel de unidad y/o de nivel de sistema que ejercen la mayor cantidad posible de la clase del error. Asegúrate de que las pruebas que esperas que fallen, de hecho fallen. La razón principal por la que existe el error en primer lugar es porque no se hicieron pruebas para identificarlo. Esto significa que hubo un agujero ,una laguna, en el conjunto de pruebas. Muchos desarrolladores opinan que si algo no se prueba, es imposible que funcione  bien y seguro que va a romper. Los buenos programadores asumen por defecto que una aplicación siempre rompe o romperá en algún momento en el futuro. Y lo cierto es que la mayoría de los bugs los encuentran los clientes…

Ya que sabes que el software falla debido a un bug concreto que ya has identificado, es una oportunidad perfecta para desarrollar pruebas, y de asegurarse de que en verdad fallan. Estas oportunidades no surgen a menudo, así que sácales todo el provecho que puedas.

Cuando hacemos pruebas de regresión, estamos comprobando que el código que hemos modificado se comporta como queremos, y que el cambio no ha causado otros problemas en otros sitios del código, que funcionaban correctamente la última vez que los probamos.

Paso 8: arregla los errores

Si has sido diligente hasta este paso, solucionar ahora los errores será extremadamente fácil; es solo una mera formalidad.

Este tipo de corrección de errores se puede realizar con mucha calma y confianza. La solución está ya encauzada en un proceso de ingeniería de software de alta calidad, un proceso que nos indica y prueba la solución al bug. En contraste, muchos desarrolladores operan en el extremo opuesto, cambiando el código casi al azar con la esperanza de que así se solucionará el problema general. Ese tipo de enfoque es más probable que introduzca nuevos errores que que corrija los existentes.

Al corregir los errores, es posible que observes otros problemas. En ese caso, también retrocede al paso 6 y aplícalos a esos errores nuevos observados.

Paso 9: asegúrate de que las pruebas ahora funcionan

Todas las nuevas pruebas ahora deberían ir bien. Si algo no funciona entonces vuelve atrás en el proceso y busca de nuevo otra solución al error.

Paso 10: verifica el caso de prueba simple

A esta altura del proceso, debería ser posible ejecutar los casos de prueba simples que desarrollaste en el paso 3 arriba, y todo debería ir como la seda. Si algo no funciona entonces vuelve atrás en el proceso y busca de nuevo otra solución al error.

Paso 11: comprueba el error original

Ahora ya deberías ser capaz de realizar las acciones que originalmente dieron paso al error, y ya debería funcionar sin problemas. Si identificas un problema nuevo o persiste el mismo, vuelve atrás a un paso anterior y encauza el problema.

Paso 12: documenta la solución al error

¿Cómo has arreglado el bug? Apúntalo.

Acabas de realizar un conjunto de maniobras de programación de muy alta calidad. ¡Así se forjan las leyendas! Es posible que seas la única persona consciente de tus acciones heroicas. Anótalas para que otros puedan aprender de ti: documenta el código, documenta el plan de prueba, documenta el conjunto de pruebas, escribe en el foro de la herramienta o haz una entrada en un blog para que conste para la eternidad y para que esté disponible para otros. Tu documentación también educará y asesorará a otros. Darás un buen ejemplo de cómo usar los recursos de manera efectiva y eficiente, y también de cómo ejecutar tareas de programación desafiantes.

Paso 13: anota otras posibles clases de errores

Durante el tiempo que has estado enfocando tu atención en resolver este problema en particular, puedes haber notado otras clases potenciales de errores, y posiblemente otras clases manifiestas de errores. Redacta un informe de errores para problemas que se manifiestan en un comportamiento disfuncional de la aplicación, o sí estás seguro de que están al acecho sin ser detectados aún.

Para otras posibles clases de errores que pueden no estar presentes pero que tampoco se pueden probar actualmente, toma las medidas necesarias para dirigir el esfuerzo de prueba hacia ellos. Por ejemplo, puedes hacer  un documento de ideas para un posible plan de prueba.

Paso 14: libera la solución del bug

Libera tu solución, ya sea interna o externamente, y asegúrate de que todos sepan lo que hiciste. Resume el problema y la solución de manera resumida e incluye enlaces a la documentación que hayas creado.

depuración de errores en software

Proceso de depuración de errores en software por Duncan Riach

Nota: este post es una adaptación de este artículo.

Este artículo 14 pasos para depurar tu software es original de Velneo.

Peopleware y Equipos Ágiles – Nuevo libro de Javier Garzás

“La verdadera clave de la agilidad, y la más profunda de entender, son los equipos y las personas.
Sprints, DevOps, MVP, etc., hay multitud de prácticas ágiles que muchos ansían implantar, o usar apropiadamente, pero ninguna transformación ágil tendrá éxito si no se enfoca en los equipos, en las personas.”

Así explica Javier Garzás el origen de este nuevo libro, en el que expone prácticas que considera clave para lograr equipos ágiles.

Javier es Ágil Coach, experto en gestión de proyectos y equipos, y sin duda se trata de una referencia en investigación y formación en Agilidad . Hemos colaborado con él durante los últimos años en la reorganización de equipos y en la implantación de técnicas y metodologías para “hacer mejor software (en tiempo, con productividad, con calidad, y felicidad)”. Seguro que alguno recordará su llamativa ponencia sobre Calidad de Software que disfrutamos en el evento Life is soft de 2015.

Desde Velneo estamos muy agradecidos a Javier por todas las aportaciones y cambios que ha impulsado en nuestros equipos, y hemos considerado importante patrocinar la iniciativa de crear este libro. Personalmente ya lo he leído y me ha gustado especialmente por el foco que pone en las personas como pieza fundamental en el camino hacia la agilidad.

Más información sobre el libro y como adquirirlo.

 

Este artículo Peopleware y Equipos Ágiles – Nuevo libro de Javier Garzás es original de Velneo.

Desarrollar plugins QML para Velneo

En el anterior artículo, instalamos todo lo necesario para empezar a desarrollar complementos QML para Velneo sobre Windows x32 y x64.

Hoy toca probar el entorno y desarrollar un primer complemento.

 

Hello World QML

Antes de aventurarnos con Qt5 es recomendable probar nuestro entorno.

Para ello desarrollaremos un hola mundo con QML, de esta forma garantizaremos que todo está en su sitio.

Dentro del QtCreator pulsamos en File > New Project

Seleccionamos Qt Quick Application – Empty

image

Establecemos el nombre del proyecto y la ubicación.

Recomiendo una ruta corta para la ubicación de los proyectos (en mi caso uso C:\Qt\Proyectos\). Establécela como la por defecto.

image

Definimos la herramienta para generar las compilaciones (qmake por compatibilidad).

image

Establecemos la versión de Qt (no todos los tipos de plantillas permiten 5.6.X).

image

Seleccionamos el Kit Desktop Qt 5.6.2 MSVC2016 32bit o 64bit (según corresponda)image

Y pulsamos en Finish

image

Debug

Para ejecutar en modo Debug sin depuración pulsamos en el botón Play (no lanza el depurador, solo ejecuta)

image

Si ya somos capaces de ejecutar nuestra App es que tenemos el compilador en su sitio.image

Para ejecutar en modo Debug con depuración pulsamos en el botón Play con cucaracha (lanza el depurador y ejecuta). Un depurador de los de verdad, aunque lo cierto es que los he visto mejores (también peores).

image

Si lanza el depurador correctamente, ya lo tenemos todo, nos podemos aventurar en algo más complejo.

 

Release

Para compilar la versión final (la que vamos a desplegar en Velneo) cambiamos el modo a Release.

image

Para compilar, depurar o ejecutar disponemos del menú Build.

image

Desarrollando nuestro primer plugin QML

Lo básico ya lo tenemos claro, entorno, compilador y depurador. Ahora toca empezar con la parte dura del asunto, desarrollar un plugin c++/qml. Pero antes de empezar toca aprender un poco, toca leer al respecto http://doc.qt.io/qt-5/qtqml-modules-cppplugins.html

Un plugin QML es una librería que contiene una clase que hereda de QQmlExtensionPlugin. QtCreator dispone de una plantilla para crear extensiones (Qt Quick 2 Extension Plugin), por lo que no nos tenemos que enredar demasiado, deja que QtCreator te ayude.

image

Le damos nombre a nuestro Plugin. Este nombre se usará como nombre del archivo de nuestra librería y como nombre de plugin.

image

Creamos una clase que contendrá el elemento QML que usaremos desde Velneo. También tenemos que definir la URI de los componentes. Esta URI se usará como ruta de los ficheros y como nombre del módulo.

image

Finalizamos el asistente y obtenemos el código de nuestro plugin en base a la plantilla. Observa que la clase de nuestro plugin hereda de QQmlExtensionPlugin. Fíjate en la función registerTypes(). Esta función se encarga de registrar los tipos disponibles en nuestro plugin. Date cuenta de que usa la URI que hemos fijado en el asistente.

image

En la implementación de la función registerTypes() puedes apreciar como se llama a qmlRegisterType que es la encargada de registrar el tipo de elemento dentro de la ejecución del plugin. En nuestro caso MyHelloWorldItem.

image

La clase MyHelloWorldItem, es la que contendrá el código de la implementación de nuestro primer componente. Evidentemente, implementaremos algo muy simple, para entender como encajan todas las piezas.

La clase MyHelloWorldItem hereda de QQuickItem (elemento más básico de QtQuick).

image

Como veis en la propia documentación del código, QtQuickItem no pinta nada. Si quieres que pinte algo, pues toca implementarlo (puede que lo que quieras es hacer algo en C++ en segundo plano, por ejemplo montar un complemento para guardar ficheros en el disco).

Como os podéis imaginar. podemos implementar desde esta clase base o desde una especializada (que herede de ella). Por por poner un ejemplo, si queremos pintar algo en pantalla, podemos partir desde la clase QQuickPaintedItem

image

Para el ejemplo, vamos a pintar un rectángulo cuadrado de un cierto color. Algo sencillo que todos podamos entender.

La clase QQuickPaintedItem dispone de un método paint() que permite pintar elementos. Si queremos pintar un rectángulo, drawRect() nos valdrá.

image

 

Como veis, fijamos el color mediante la función setPen, y lo leemos desde una variable privada llamada m_color.

Si queremos que esta variable pueda ser establecida desde Velneo, tenemos que definir una variable publica llamada color e implementar los métodos Get y Set

image

Y establecer el comportamiento en el fichero.h de cabeceras de la clase. El fichero de cabeceras quedará tal que así:

image

A observar… la definición de la señal de control del cambio de color, la variable pública y el método setter. Por último el como establecemos una Q_PROPERTY que se pueda invocar desde QML para que sea capaz de leer i escribir en el color.

Ya tenemos nuestro ejemplo. Ahora toca compilar en modo Release.

image

Y ya tenemos nuestra DLL. La copiamos a la ruta de Velneo… pero no va sola (la acompaña del fichero qmldir con la definición del plugin y del módulo).

Es importante darse cuenta de que la uri establecida condiciona la carpeta donde tenemos que ubicarla. No podemos dejarla tirada en cualquier sitio. Si la uri es “com.tipesoft.qmlcomponents”, tendremos que crear una estructura de carpetas tal que “com/tipesoft/qmlcomponents” donde dejar nuestra dll y nuestro fichero qmldir

image

El fichero qmldir lo podemos copiar desde C:\Qt\Proyectos\HelloWorldPlugin (lo creó en base a la plantilla).

imageAhora ya podemos implementar en Velneo lo necesario para cargar nuestro plugin.

image

Fíjate en el import (en base a la uri) y en el nombre del elemento QML (MyHelloWorldItem)

Si no establecemos ningún color… resulta en negro.

imageSi lo fijamos a “red”

image

Bueno… parece que ya lo tenemos. Sencillo no es, cierto. Pero estructuralmente son todos iguales.

Os dejamos todo el código necesario descargable desde el siguiente enlace.

Descargar ejemplos Plugin QML para Velneo v7.22.1Requiere estar registrado

Ahora os toca a vosotros

Por nuestro lado, seguiremos aportando nuevos artículos de librerías “open source” que aporten gran valor a Velneo V7. Si os fijáis en las capturas, tal vez apreséis cual es la siguiente de la lista.

Compilar plugins QML para Velneo

La tarea de compilar plugins QML para Velneo, es fundamentalmente, un proceso .

 

Preparación del entorno

El primer paso, y tal vez el más pesado, es la preparación del entorno para compilar las librerías de forma adecuada (para hacerlo compatible con nuestra versión de Velneo).

Para saber que versión estamos usando de las librerías Qt, podemos abrir el cuadro “acerca de” de cualquiera de los productos Velneo. En este cuadro se nos informa de la versión de Velneo, Sistema operativo, arquitectura y versión de Qt.

image

En la versión v7.22.1 se usa la versión de 5.6.2 de Qt.

Por otro lado necesitamos saber que compilador usa Velneo para esa versión. Como no lo sabemos, tenemos que suponérnoslo. En mi caso he supuesto que compilan con Visual Studio 2013. Con estos primeros dos datos, ya podemos empezar.

Resumiendo (en el escenario windows):

  • Plataforma: Windows
  • Arquitecturas: x32 y x64
  • Compilador: Visual Studio 2013
  • Versión de Qt: 5.6.2

 

Instalar el compilador

Identificada la versión de Qt y el entorno requerido procedemos a instalar el compilador compatible con nuestro entorno.

Por cuestiones de mi trabajo, habitualmente en mis máquinas, están disponibles todos los editores y compiladores de Microsoft. Si en tu caso no dispones de ellos, solo tienes que descargarlos e instalarlos.

Tenéis dos opciones para ello:

  • Instalar Visual Studio 2013 Community – Update 5 (opción recomendada)Podemos instalar una versión gratuita de Visual Studio, que Microsoft nos facilita para empresas de pequeño tamaño, desde https://www.visualstudio.com/es/vs/older-downloads/. En el proceso de instalación se requieren unos 10Gb de espacio para los componentes habituales.

image

 

Cualquiera de los dos procedimientos de instalación nos instala el comando cl.exe (compilador de nuestro código C++)

image

Instalar las herramientas de depuración

Lo segundo es instalar las herramientas de depuración. Curiosamente, estas herramientas no vienen incluidas en Visual Studio Community ni en las build tools.

Tenéis tres opciones para instalarlas:

 

Instalar Qt 5.6.2

Ahora nos toca el tercer paso. Instalar Qt en su versión “open source”. Descargamos desde https://www.qt.io/download pulsando en “Go to open source”

image

 

Aceptamos la licencia L(GPL) que nos obliga a que nuestro código sea abierto y por último descargamos el instalador. http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe

Abrimos el instalador… siguiente, siguiente… paciencia… le decimos la ruta de instalación… hasta que nos pida los componentes a instalar:

image

Marcamos Qt 5.6 (equivale a la rama 5.6.2) para msvc2013 en                                                                                                           x32 y si lo deseas en x64

También puedes marcar aquellos plugins QML que deseas incluir en tu instalación (además de los por defecto que ya incluye el instalador de la versión elegida). Los marcados como TP son en fase beta. Los marcados como Deprecated desaparecerán en Qt 6.x

Si para más adelante… deseas compilar y depurar sobre Android necesitas marcar un par de cositas más. El compilador MiniGW y el soporte CDB para el depurador.

image

Marcado todo lo necesario… procedemos con la instalación.

Arrancamos QtCreator

Cuando tengamos instalado Qt, procedemos a arrancar QtCreator.

Para comprobar que todo ha ido bien, tenemos que entrar en Tools > Options.

Dentro de la sección Build & Run veremos los Kits que están configurados… en vuestro caso Desktop Qt 5.6.2 MSVC2013 32bit y 64bit. Si aparecen en rojo o no aparecen… malo, no ha detectado los compiladores. Si aparece en amarillo… malo, puede que no haya detectado las herramientas de depuración. Si todo está perfecto, ya tienes el entorno preparado para compilar bajo Windows

image

Para el siguiente artículo, si creéis que es necesario, os cuento como desarrollar un plugin QML para Velneo (comentar en este artículo si consideráis para que así me anime a ello).

 

 

Software de programación

¿Qué es un software?

Una computadora u ordenador se compone de dos partes: la parte física denominada hardware y la parte lógica denominada software. El software se encarga de enviar señales que ejecutará el hardware, lo que permitirá que el ordenador sea operativo. Por ejemplo, el software encargado del sonido de nuestra computadora, enviará una señal para que el altavoz interno emita un pitido, si la señal llega a destino y es posible su ejecución, el altavoz interno emitirá el pitido.

Entorno de Desarrollo Integrado (IDE)

¿Qué tipos de software podemos distinguir?

Podemos clasificar los diferentes tipos de software en tres categorías diferentes:

  • Software de sistema: Permite gestionar y administrar los recursos relativos a la memoria, discos, puertos, dispositivos de comunicaciones, periféricos (impresoras, pantallas, teclados). Estos proporcionan al usuario interfaces de alto nivel, controladores, servidores, herramientas y utilidades para el mantenimiento del sistema.

 

  • Software de programación: Se trata de un conjunto de herramientas y utilidades que permiten a los programadores desarrollar programas informáticos utilizando diferentes lenguajes de programación o bases de datos. Incluye de manera general: editores de texto, compiladores, intérpretes, enlazadores y depuradores. También Entornos de Desarrollo Integrados (IDE): que agrupan en un mismo entorno, habitualmente visual (GUI), todas las herramientas necesarias, anteriormente mencionadas, para cubrir el ciclo completo de desarrollo de un programa. Es en esta categoría en la que nos vamos a centrar en este artículo.

 

  • Software de aplicación: Es el que permite a los usuarios realizar tareas específicas, en muchos casos a través de un interfaz visual de alto nivel (GUI). En otras palabras, son los programas que se crean con los softwares de programación, para realizar numerosas tareas tanto laborales, como administrativas, de gestión o con el objetivo simplemente de ocio, como videojuegos. En esta categoría podríamos englobar a todo el software de gestión empresarial, de telecomunicaciones, todas las aplicaciones ofimáticas y de control, programas específicos de cualquier área, así como bases de datos o videojuegos.

Software de programación: Entornos de Desarrollo Integrados (IDE)

Como anotábamos en la clasificación anterior, dentro de los llamados software de programación, encontramos diferentes programas o aplicaciones, diseñadas para cumplir una tarea específica dentro del ciclo de desarrollo, como por ejemplo los compiladores, que habitualmente su tarea no es otra que traducir el lenguaje de programación empleado a un lenguaje máquina que pueda interpretar el hardware.

Pero a nosotros nos interesa centrarnos en los Entornos de Desarrollo Integrados o IDE. Se trata de plataformas o conjuntos de programas encaminados a cubrir el ciclo completo de desarrollo de un software facilitando todas las aplicaciones, herramientas y utilidades necesarias para ello, normalmente en torno a una misma interfaz de usuario (o muy similar) maximizando así la productividad que un desarrollador puede alcanzar, pues podrá crear, modificar, compilar, implementar y depurar software desde un único lugar.

Habitualmente los IDE disponen de un editor de código fuente, herramientas de construcción automáticas (como asistentes y plantillas) y un depurador. La mayoría también incluyen un sistema de auto-completado inteligente del lenguaje de programación. Algunos pueden incluir también también compiladores y/o intérpretes. Y hoy en día la mayoría de IDE modernos son gráficos (visuales) incorporando interfaces (GUI) de alto nivel.

Los Entornos de Desarrollo Integrados pueden estar enfocados a un único lenguaje de programación, haciendo así que las características de este sean lo más fieles posibles al paradigma de programación de dicho lenguaje. No obstante, muchos IDE soportan múltiples lenguajes de programación, como es el caso de los más famosos: Eclipse, NetBeans, Oracle JDeveloper o Microsoft Visual Studio. Otros como Xcode o Delphi están cerrados a lenguaje concretos o ajustes de tipos de lenguje.

¿Cual es el mejor Entorno de Desarrollo Integrado (IDE) en español?

Aunque el objetivo final de un IDE es actuar como software de programación proporcionando todas las herramientas necesarias para cubrir el ciclo de desarrollo de un software, ya hemos visto que pueden existir diferencias sustanciales entre unos entornos y otros. Es por ello que muchos entornos de desarrollo tienden a especializarse en áreas más concretas y específicas, mientras que otros han optado por mantenerse como una opción viable para cualquier tipo de desarrollo.

Esto generado ventajas e inconvenientes. Si tu entorno está pensado para sustentar cualquier tipo de desarrollo, para cualquier sector y mediante cualquier tecnología, dicho entorno tendrá que permitir compatibilidad con un montón de librerías diferentes, controladores, sistemas, etc. Lo que a priori provocará que se trata de un sistema mucho más complejo, tanto para su aprendizaje y uso, como para su manejo de manera experta. Poniendo un ejemplo, la dificultad de hacer volar un avión de pasajeros comercial debe ser mucho mayor que la de hacer volar una avioneta biplaza aunque ambos sirvan para el mismo propósito: volar.

Software de programación

Y es que muchas veces no necesitamos un avión comercial de pasajeros, si nuestro único interés es volar (no transportar a otras personas ni sus equipajes). Es por ello que en las últimas décadas muchos entornos de desarrollo integrados (IDE) se han especializado para diferentes áreas y sectores, permitiendo así aligerar los grandes entornos y ofreciendo a los desarrolladores un entorno mucho más ágil, rápido y sencillo de aprender y utilizar que los anteriores.

Dentro de las diferentes sectores donde estos entornos se han especializado encontramos la informática de gestión empresarial, los videojuegos, el sector sanitario, las inmobiliarias y constructoras, matemáticas, etc. Cada día existen más IDE especializados para servirnos como software de programación.

Velneo: Plataforma Completa de Desarrollo de Aplicaciones de Gestión

Este tema de los IDE nos interesa tanto porque nosotros mismos desarrollamos y comercializamos Velneo: Una Plataforma Completa de Desarrollo de Aplicaciones de Gestión. Que no es más que otra manera de decir Entorno de Desarrollo Integrado (IDE) o Software de programación, pero con nuestras propias palabras. Además se trata de una plataforma especializado en aplicaciones de gestión y todo ello totalmente en español: desde la plataforma, pasando por la documentación y los ejemplos, así como en el propio lenguaje de programación. TODO en español.

Ese es nuestro foco, proveer a la comunidad de programadores y desarrolladores hispanohablantes un Plataforma Completa en español para el Desarrollo de Aplicaciones de Gestión, con la que podrán crear, modificar, compilar, implementar y depurar software de gestión empresarial desde un mismo software y todo ello en completo español.

Para terminar, nos gustaría volver a compartir con vosotros algunos de los artículos relacionados con el desarrollo de aplicaciones de gestión en español que hemos ido publicando con diferentes consejos e informaciones al respecto: Cómo crear programas, Hacer programas de software en español, Crear programas en español, Hacer programas para negocios, ¿Qué programas se desarrollan para empresas?, Aprender a programar software de gestión, Cómo hacer software de gestión y Programa para crear un software.

Este artículo Software de programación es original de Velneo.