GTag

Mostrando las entradas con la etiqueta Ingenieria de Software. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Ingenieria de Software. Mostrar todas las entradas

[THE TRINITY SERIES: PART 2] The Trinity's Shadow: A Risk Assessment of the 2026 "Nightmare Scenario"

 In Part 1 of our series, The 2026 'Tech Trinity', we explored the incredible opportunities at the intersection of AI, Cryptography, and Cybersecurity. This "Trinity" is poised to create smarter, more resilient, and trustworthy systems.

But every new paradigm casts a shadow.

The same convergence that creates this power also creates a new, terrifying class of vulnerabilities. As security and engineering professionals, it's our job to look directly at the risks.

Welcome to the "Nightmare Scenario"—a risk assessment of what happens when the Trinity is turned against us.


The New Attack Surface: Not the System, but the Connection

For years, we've built walls. We secure the Data Science environment, we harden the Blockchain, and we create IT Security perimeters.

The problem is that the "Tech Trinity" isn't three separate systems; it's one integrated entity. The connective tissue between them is the new, undefended, and most valuable attack surface.

Let's explore three narrative scenarios.

The 2026 'Tech Trinity': Why AI, Crypto, and Cybersecurity Are About to Collide (And What It Means for Your Career)

 For the last decade, we’ve treated technology careers as separate paths. You were either a Data Scientist training models, a Security Analyst defending the perimeter, or a Blockchain Developer exploring decentralization.

That era is over.

We are on the verge of a massive convergence. The lines between artificial intelligence, cryptography, and cybersecurity are blurring so fast that by 2026, the most valuable professionals will be the ones who understand all three.

This is the "Tech Trinity," and it’s not just a trend—it’s the new foundation for a "smarter, connected, and sustainable future," just as we aim for at ViMaSys.

Here’s why these three fields are merging and what it means for you.

Textual description of firstImageUrl

DevOps y Agile: Velocidad sin enfocarse en Velocidad

El desarrollo Devops busca hacer una colaboración y la implementación en un proceso mas integrado que signifique una alineación, aseguramiento de Calidad (QA), y operaciones de IT con menos compuertas y un flujo más continuo. Este enfoque además desplaza las responsabilidades del equipo de operaciones al equipo de desarrollo para facilitar los procesos de desarrollo continuo, integración continua, entrega continua, y monitoreo continuo.

Agile es un un enfoque de desarrollo enfocado en ciclos rápidos e incrementales de creación de código y entrega denominados sprints. Cada sprint itera sobre el último, creando un alto nivel de flexibilidad, puesto que los cambios, el alcance y la dirección pueden evaluarse entre cada ciclo. Sin embargo, es posible que la visión original de un proyecto se pierda a través de estos ciclos.


Textual description of firstImageUrl

El fin del TCP en la Web: Adios y Gracias por todo

Resulta que dicen las noticias que el IETF (Internet Engineering Task Force, el grupo de empresas de la industria que colabora para diseñar protocolos de red) está trabajando en desarrollar una nueva versión de HTTP (Hyper Text Transfer Protocol), el protocolo que usan los browsers para comunicarse con los servidores web. Lo que se sabe hasta este momento es que la versión que resultará de este trabajo significará un cambio realmente abrupto en la arquitectura de las comunicaciones en Internet.
HTTP es un protocolo de Capa de Aplicacion enviado sobre TCP
HTTP es un protocolo de Capa de Aplicación enviado sobre TCP

La versión de hoy del protocolo HTTP (actualmente se utilizan las 1.0, 1.1 y 2) está edificada sobre la base del protocolo TCP (Transmission Control Protocol), el cual a su vez hace parte del grupo central de los protocolos IP (Internet Protocol), y permite una confiable, ordenada, y limpia de errores, entrega de datos en una red IP. La confiabilidad radica en que si algún dato se pierde durante la transferencia (debido a una falla de hardware, congestión o timeout), el receptor puede detectar esto y demandar que el emisor reenvíe los datos faltantes; El orden radica en que los datos transmitidos son recibidos en el orden en el que fueron transmitidos; Limpio de errores implica que cualquier corrupción en la transmisión puede ser detectada.
Textual description of firstImageUrl

Metodologia Agile: Los problemas que resuelve

La metodología de proyectos tradicional originalmente surgió a partir de la industria de la construcción, en la que los costos prohibitivos de hacer cambios posteriores significaba que los requerimientos debían ser congelados lo más temprano posible. Se basaba en un proceso de diseño secuencial conocido como el modelo Cascada, dado que el progreso se observa como un flujo permanente hacia abajo (como una cascada) a través de las etapas del proyecto, con cada etapa basada en el trabajo de la anterior.

Textual description of firstImageUrl

Diseño de una API REST

Tan pronto se empieza a trabajar en el desarrollo de una API, el primer problema que aparece en el camino es el del buen diseño. Un diseño robusto es la característica clave para una buena API. Una API mal diseñada puede llevar a un mal uso de esta, o lo que es peor aun, el no uso de ella por parte de los programadores, quienes son al final del día los usuarios a quienes está dirigida. 

Hay dos aspectos que son clave para tener en cuenta al diseñar una API exitosa y son los siguientes:

  • Los principios descritos en la literatura acerca de las API RESTful. Por ejemplo, tenemos Roy Fielding, Leonard Richardson, Martin Fowler, la especificación HTTP.
  • Las actuales prácticas de los Gigantes de la Web. Es decir, qué están haciendo las grandes compañías en esta materia. Cómo están planteando la arquitectura de sus APIs.

Textual description of firstImageUrl

Software para instrumentos de prueba PXI

Pruebas y Mediciones

La compañía National Instruments anunció el lanzamiento de su software InstrumentStudio para instrumentos modulares NI PXI. InstrumentStudio mejora el modelo de uso en vivo e interactivo para instrumentos modulares y hace más intuitiva la depuración de pruebas.
The PXIe-1085 24 GB/s chassis with PXIe-8880 Intel Xeon-based embedded controller and various modular instruments

Ingenieros de las industrias aeroespacial, automotriz y de semiconductores pueden beneficiarse de un workflow mas efectivo para hacer pruebas en el desarrollo de sus sistemas.

InstrumentStudio evoluciona el concepto de paneles frontales mono-instrumento hacia un ambiente multi-instrumento unificado, con el cual los ingenieros pueden capturar pantallazos y también guardar configuraciones  de proyecto para dispositivos específicos que se encuentran a prueba y que pueden ser reconfigurados después o compartidos con colegas.
Textual description of firstImageUrl

Manifiesto Agile para mejorar la probabilidad del Software exitoso

El Manifiesto Agile

El Agile Manifesto fue creado en febrero de 2001 por 17 desarrolladores de software que se reunieron en el complejo Snowbird en Utah. "Estamos descubriendo mejores maneras de desarrollar el software haciéndolo y ayudando a otros a hacerlo; A través de este trabajo, hemos llegado a valorar:
Individuos e interacciones más que procesos y herramientas
Software funcional más que documentación completa
Colaboración del cliente más que la negociación del contrato
Responder al cambio más que seguir un plan

Es decir, mientras que hay valor en los artículos a la derecha, valoramos los artículos a la izquierda aun más. "

De acuerdo con el texto del manifiesto anterior, el acento se pone en los elementos de la izquierda. Ser ágil significa:
  1. Tener un equipo auto organizado con mejores interacciones y mejor comunicación dentro del equipo; 
  2. Enfoque de desarrollo para estar en la creación de un software que funcione que entrega valores de negocio en cada iteración; 
  3. Tener una verdadera colaboración con los clientes para ofrecerles la posibilidad de proporcionar una retroalimentación continua durante el desarrollo; 
  4. Ser flexible y responder lo antes posible a los cambios de alcance.

Textual description of firstImageUrl

Facebook dejará PHP y usará su propio ecosistema de frameworks

La Máquina Virtual Hip Hop (HHVM) de Facebook, que es una máquina virtual de alto rápido desempeño para PHP y Hack, no será adaptada a PHP 7, la versión más reciente de PHP, sino que, en cambio, será orientada a Hack, una variante de PHP.

Pero este cambio no será inmediato, dado que la siguiente entrega de la HHVM que será en 2018 seguirá todavía orientada a PHP 5, ya por última vez. Según el equipo de desarrollo de HHVM, se dedicarán a desacoplarse de PHP cada vez más ara poder sacar lo máximo de Hack sin tener que escudriñar los mas viejos y oscuros rincones de PHP.  PHP 7 (No hubo versión PHP 6), representa un distanciamiento importante de PHP 5, cambiando múltiples comportamientos, algunos de los cuales no son compatibles hacia atrás.

Textual description of firstImageUrl

El Python se vuelve Anaconda en su version 5.0.1.

Esta versión, recompilada, de Python está orientada hacia las matemáticas, la ciencia y el análisis de datos


Anaconda, la distribución y ambiente de trabajo del lenguaje Python para computación científica, ciencia de datos y análisis estadístico se encuentra disponible en su versión 5.0.

Pero esta semana, la versión 5.0.1 fue liberada y contiene algunas correcciones menores y una importante característica que no estaba en la versión 5.0 como es el soporte del lenguaje R. (Articulo: Introducción al lenguaje R )

Anaconda 5


Textual description of firstImageUrl

Insertar datos desde un procedimiento almacenado a una Tabla

Cómo hacer que un procedimiento almacenado que produce una tabla inserte su resultado en una tabla 

Esquema del procedimiento almacenado


Método 1 : Cuando se conoce el esquema que produce el procedimiento  almacenado T-SQL
Para demostrar el primer método, vamos a crear el siguiente procedimiento almacenado:

CREATE PROCEDURE GetNombresBD
AS
SELECT
name, database_id
FROM sys.databases
GO

Ejecutamos el procedimiento:

EXEC GetNombresDB

Ahora bien, si conocemos previamente el esquema del resultado del procedimiento almacenado
Textual description of firstImageUrl

El descuido en T-SQL puede divulgar reglas privadas del negocio

Un alto porcentaje de la lógica del negocio se encuentra codificada en los procedimientos almacenados o Stored Procedures 

Por razones de seguridad, o por alguna otra razón, algunas veces es importante esconder la lógica del procedimiento almacenado. Existe en T-SQL una expresión para mandar a encriptar el texto del procedimiento almacenado que es WITH ENCRYPTION. Una vez que se encripta el procedimiento almacenado, no se puede obtener el texto original del mismo. Este texto debe ser copiado y guardado en un lugar seguro por el programador para su uso posterior. 

No sólo el texto del procedimiento almacenado estará fuera de la posibilidad de visualizar sino también el plan de ejecución quedará fuera del alcance y la pestaña de Plan de Ejecución se mostrará deshabilitada. Veamos.

Por ejemplo, si creamos un procedimiento almacenado encriptado con la cláusula WITH ENCRYPTION y luego lo ejecutamos teniendo la opción MS SQL Sever "Actual Execution Plan" activada, En el panel de resultados no obtendremos la pestaña Execution Plan como lo veremos enseguida en el ejemplo.

El siguiente procedimiento sirve para ilustrar este comportamiento:

/* Crear SP with Encryption */ 
CREATE PROCEDURE #EncriptadoSP
WITH ENCRYPTION 

AS
SELECT TOP  100 country, city, trafficcode 
FROM Office.Address
GO


Textual description of firstImageUrl

Aplicaciones Móviles: Criterios para elegir una base de datos

La sincronización de datos y la funcionalidad offline son claves para aplicaciones móviles exitosas. Siga estos consejos para seleccionar un proveedor.


Hoy los consumidores dependen mucho de sus aplicaciones móviles. Si las aplicaciones no funcionan los usuarios dejan de usarlas. Así de simple.

Aplicaciones Moviles Exitosas
Requerir una conexión a Internet para las aplicaciones móviles es vivir en el pasado. Si una aplicación necesita estar conectada, es muy probable que la experiencia será lenta e impredecible.

Para evitar la necesidad de conexión, proveedores de bases de datos y servicios en la nube han agregado las capacidades de sincronización y trabajo fuera de linea a sus productos móviles. Hay soluciones como la Couchbase Mobile y Microsoft Azure Mobile Services, Amazon Cognito y Google Firebase que ofrecen la tan importante sincronización que permite que las apps funcionen tanto en linea como fuera de linea.
Textual description of firstImageUrl

Introduccion al lenguaje R

R es un lenguaje de programación enfocado al análisis estadístico, la computación y los gráficos estadísticos. Corre en plataformas Linux, Windows y MacOS. El R se distribuye bajo licenciamiento GNU GPL. La versión a la fecha más reciente es la R 3.4.2 liberada el 2017-09-28.

Pantalla de Graficos de Monitoreo
R Está basado en otro lenguaje denominado S desarrollado por Bell Laboratories (antes AT&T, ahora Lucent Technologies) con respecto del cual tiene algunas mejoras, pero puede considerarse como una implementación diferente . Hoy en día R es muy utilizado en la comunidad estadística.

Entre las librerías que R posee para análisis estadístico y que lo hacen tan útil para tal fin se cuentan: modelos lineales y no lineales, pruebas estadísticas clásicas, análisis de series de tiempos, clasificación, clustering, etc. También tiene técnicas gráficas y es altamente extensible.

Textual description of firstImageUrl

Python: Descubierta la razón de su rápido crecimiento

La razón de su rápido crecimiento en el mundo del Software

Python actualmente es uno de los lenguajes con mayor aceptación entre desarrolladores en el mundo. El crecimiento de su popularidad es realmente notable. Aquí haremos un intento de explicar la razón que ha hecho posible que esto sea así. Revisaremos cuáles características de este lenguaje son las que resultan tan atractivas para el desarrollo de aplicaciones. Veamos.

Codigo Python para Móviles
Es un hecho que Python es uno de los lenguajes de más rápido crecimiento y parece ser que esto es propiciado por un sustancial aumento de su uso en ciencia de datos.

Una investigación realizada por Stack Overflow, una comunidad digital de preguntas y respuestas de desarrolladores, es la que permitió descubrir esta correlación. 

Aunque Python es un lenguaje con versatilidad,  Stack Overflow halló que un caso de uso fue sobresaliente entre los demás. Entre las consultas puestas sobre el portal, aquellas relacionadas con ciencia y análisis de datos se destacaban sobre otras relacionadas con desarrollo web o administración de sistemas.

La gente de Stack Overflow ha clasificado a los desarrolladores Python ya sea como científicos de datos,  desarrolladores web o sysadmins/devOps, basándose en las etiquetas de las preguntas que
Textual description of firstImageUrl

Buenas Prácticas de T-SQL

La siguiente es una lista básica de principios que todo programador de T-SQL y, en general, de SQL, debe tener en cuenta para un desarrollo de queries bastante decente.

Diagrama de bases de datos
  1. Pensar en términos de conjuntos, no de filas.
  2. Cada parte de su query es una tabla resultado y puede ser referenciada como tal por partes subsecuentes del query. 
  3. Conocer el orden de procesamiento lógico de los queries: from , join, where, group by, having, select, distinct, order by, offset/fetch
Textual description of firstImageUrl

Novedades de la version C# 8.0

La versión 8.0 del lenguaje C# recoge las sugerencias de la comunidad de desarrollo. Veamos algunas de las más sobresalientes:

Tipos de Referencia Anulable (Nullable Reference Types):

A diferencia de los tipos por referencia, que pueden ser nulos sin problema, los tipos primitivos deben contener algún valor correcto. Una de las características que se incorpora desde C# 2.0 es la de que los tipos primitivos puedan ser asignados a null.

// tipo por referencia, correcto 
String cadena = null; 

// tipo primitivo, incorrecto 

int entero = null; 

// tipo anulable, correcto 
int? entero = null; 

// en el tipo bool, null equivale a false 
bool? booleano = null;

En la versión 8.0, los tipos de referencia no serían más anulables por defecto. En lugar de esto se deberían marcar explícitamente utilizando la misma sintaxis "Tipo?" que se utiliza para tipos de valor anulable.