slide1

Alt1040. Noticias acerca de Internet, diseño, música, cine, opiniones, weblogs y medios

Es uno de los weblogs de tecnología más seguidos de la blogosfera hispana.

slide2

Bitelia. Blog de software, internet y servicios web

Software y aplicaciones para mejorar tu vida, guías de uso, trucos, listas, noticias y todo sobre tecnología.

slide3

Xataka. Publicación de noticias sobre gadgets y tecnología.

Últimas tecnologías en electrónica de consumo y novedades tecnológicas en móviles, tablets, informática, etc.

slide4

Wwwhatsnew. Aplicaciones, marketing y noticias en la web.

Servicios que os pueden ser útiles para dibujar, gestionar tareas, hacer amigos, encontrar restaurantes...

slide5

Fayerwayer. Discusiones y opiniones de lo ultimo en tecnología y gadgets

Con secciones dedicadas a Internet, Software o Redes Sociales es un referente a nivel de tecnología en español.

Mostrando entradas con la etiqueta software. Mostrar todas las entradas
Mostrando entradas con la etiqueta software. Mostrar todas las entradas

15 de junio de 2021

Sistemas embebidos: ejemplos de uso en el género humano

Chip Computer CPU Hardware Icon
Los sistemas embebidos, como siempre decimos en Tribalyte Technologies, por mucho que no nos demos cuenta, son parte de nuestras vidas. De hecho, sin ellos, hoy no tendríamos muchas de las comodidades que la tecnología nos ha brindado a lo largo de los últimos sesenta años.

¿Qué es un sistema embebido?


Para quien todavía no conozca el mundo del “embebido”, de forma muy resumida, podríamos decir que un sistema embebido, también conocido como "empotrado" o "incrustado", es un tipo de sistema electrónico que, contando con un microcontrolador o microprocesador - su "cerebro" - suele encontrarse dentro de dispositivos y productos que, a través de un software (comúnmente desarrollado en C/C++ y Linux) pueden llevar a cabo funciones específicas. Un ejemplo clásico de sistema embebido es el dispositivo de una lavadora moderna. Para hacer nuestra colada es preciso seleccionar nuestro programa de lavado, es decir, pulsar unos botones que, a su vez, contando con un software, permitirán que el “sistema” arranque y que las funcionalidades elegidas se lleven a cabo perfectamente. Esto, muy en resumen y grosso modo, es lo que normalmente ocurre en todo tipo de dispositivo que contenga un sistema embebido.

Security Smartphone

¿Qué impacto han tenido los sistemas embebidos en el género humano?


Tal y como decíamos antes, los seres humanos y los sistemas empotrados llevan más de 60 años de “relación” y los últimos avances en I+D nos han dejado claro que esta alianza simbiótica de máquina/hombre va a reforzarse aún más. Y no solo en nuestro planeta, sino también en todo el espacio.
Sí, exacto, en el espacio. De hecho, no es nada casual que el primer sistema embebido realizado en la historia fuera un sistema de guía desarrollado por el MIT (Massachusetts Institute of Technology) para la NASA y que desempeñó un papel fundamental en las misiones del Apolo hacia la luna. Hoy en día, la astronáutica sigue siendo uno de los sectores que más invierte en la investigación y evolución de los sistemas embebidos. Un caso muy conocido sería, por ejemplo, el de SpaceX, la empresa estadounidense fundada por Elon Musk y que, contando con una increíble inversión en el desarrollo de software embebido, todo apunta a que va a lanzar el primer Sistema de Transporte Interplanetario (STI) para transportar al ser humano a Marte.

Pero, dejando a un lado estos casos extremos, lo que sí cabe destacar es que, a partir de los años 70, el uso de los sistemas embebidos empezó a ganar terreno en todo tipo de industria y sector (desafortunadamente, también para la realización de armamento bélico y armas tecnológicas), hasta colarse en nuestro día a día: medios de transporte, aparatos electrodomésticos, seguridad, automoción industrial, sector automovilístico, ferroviario... incluso dentro del cuerpo humano.

Sistemas embebidos y usos en el cuerpo humano


La ciencia ficción nos ha acostumbrado a pensar en el “hombre biónico” como algo amenazante, siniestro y malvado. De hecho, al escuchar "hombre biónico" u "hombre-máquina", ¿a quién no se le ocurre enseguida alguna escena de "Terminator" disparando contra todo ser vivo? También es cierto que, en el imaginario colectivo, hay ejemplos "más positivos" y pacíficos como pueden ser "RoboCop" o "El hombre Bicentenario". Pero, aparte de la ciencia ficción y de todas las referencias culturales o lugares comunes que podamos tener en nuestra sociedad, y, sobre todo, sin enfocarnos solo en el sector propio de la robótica, los progresos que la tecnología ha realizado en la aplicación de los sistemas embebidos para mejorar y potenciar la condición humana es algo evidente y, más bien, tangible.

A este respecto, hay una serie muy interesante en Netflix que habla sobre los mecanismos que mueven "nuestra máquina", nuestro organismo y que recomiendo a todo aquel que quiera profundizar en ello: Dentro del cuerpo humano.

Sistemas embebidos en la ingeniería biomédica


En el primer capítulo de esta misma serie (espero no destripar demasiado), se cuenta la historia de Jason Little, un hombre americano que perdió su brazo izquierdo tras un grave accidente y que, gracias a un increíble estudio conducido por la Profesora Ranu Jung (del departamento de Ingeniería Biomédica de la Florida International University), a través de una prótesis tecnológica, ha podido recuperar no solo las funciones mecánicas de su miembro fantasma, sino hasta las sensaciones táctiles y neuronales. Es decir, en este caso concreto, no se habla solo de una prótesis estéticamente impecable que cumple con operaciones básicas, sino de un sistema tecnológico extremadamente avanzado que supera las "barreras" del cuerpo humano y que, gracias a una serie de estimuladores de neuronas insertados directamente en el cuerpo de Jason, le permite poner en comunicación directa su cerebro con su brazo biónico.

Pero ¿qué tiene que ver todo esto con los sistemas embebidos? Pues, un pequeño detalle: el sistema en cuestión cuenta, entre otros elementos, con un Raspberry Pi 3 que es un Single-Board Computer, es decir, un ordenador completo en una sola placa (chip) y que, junto con Arduino, representa uno de los entornos de desarrollo más importantes para software y sistemas embebidos.



Otro ejemplo de integración de sistemas embebidos directamente en el cuerpo humano, sería el uso de un desfibrilador cardioversor implantable (ICD) para detectar y regular los latidos irregulares del corazón. Se trata de un dispositivo médico subcutáneo, un microprocesador que, gracias a la emisión de pequeños impulsos eléctricos, puede intervenir en el caso de que detecte alguna taquicardia ventricular peligrosa. En el campo de la electromedicina existen ya muchísimos ejemplos de equipos sanitarios que controlan, cuidan y potencian nuestra salud aprovechando la infinidad de posibilidades que los sistemas embebidos pueden proporcionarle al género humano.

Es decir, el objetivo principal de la tecnología, desde el amanecer de nuestra especie, siempre ha sido el de mejorar nuestra vida y optimizar nuestras labores. De los primeros utensilios rudimentarios del periodo neolítico, pasando por la máquina de vapor de James Watt y llegando hasta la era de la Industria 4.0.

De la industria 4.0 a la Computación Cognitiva


De hecho, cuando se habla de Industria 4.0, o sea, de la transformación digital de los procesos industriales y de producción para prácticamente cualquier tipo de sector, es imposible prescindir del papel fundamental que los sistemas embebidos han desempeñado y que, según lo previsto, se implantarán aún más a medida que nos acercamos a la quinta revolución industrial. Con el término "Industria 5.0" nos referimos a la interconexión entre hombres y máquinas gracias al uso de las tecnologías más avanzadas como la Inteligencia Artificial, el IoT (Internet of Things) y, sobre todo, el potencial inmenso de la computación cognitiva.

La computación cognitiva, también conocida como "cómputo cognitivo", en pocas palabras, consiste en el reto de reproducir e imitar el funcionamiento del cerebro humano dentro de sistemas informáticos automatizados que hacen uso de una serie interminable de datos. Y no es casualidad que hoy en día solamos referirnos a los datos como "el oro del siglo XXI". Además, dentro de este marco, desde luego, caben todos aquellos aspectos que ya se usan, por ejemplo, en el marketing digital (machine learning, deep learning, Big Data, chatbots, etc.) pero que, ahora, tienen como objetivo final no la mejora o la automatización del trabajo humano sino su completa sustitución por medio de las máquinas.

Todo tipo de maquinaria - mejor dicho la gran mayoría - ya de por sí cuenta con sistemas embebidos que, gracias al desarrollo de software específicos, permiten la automatización de los procesos industriales. La industria automovilística, aeroespacial, ferroviaria, naval, alimenticia, agrícola y un largo etcétera, hoy en día probablemente no existirían sin el uso de sistemas embebidos, PLCs, RTOS, etc.

Pero la pregunta, ahora, es distinta: ya que las máquinas dotadas de computación cognitiva prácticamente no pueden cometer errores, ¿deberíamos encomendar todo tipo de decisión u operación directamente a ellas? Si, pongamos un ejemplo, en el campo médico, un día (y en el mercado ya existe algo por el estilo) pudiéramos contar con la diagnosis hecha enteramente por uno de estos sistemas o, es más, para una cirugía, en lugar de un cirujano, en el quirófano nos encontráramos solo frente a una máquina programada para operarnos sin jamás cometer algún fallo, ¿tú qué harías?

Desarrollo de software para sistemas embebidos


Sobre este tema ya se han abiertos muchos debates y, pese a que ciencia y ética, por su naturaleza, es muy improbable que compartan la misma opinión, el entusiasmo hacia el progreso tecnológico es imposible de mantener a raya a estas alturas. Y, por mucho que la tecnología avance y que se desaten debates de bioética o bioingeniería, el papel fundamental de los sistemas embebidos en nuestra sociedad solo puede que aumente y perdure.

En Tribalyte Technologies, como expertos en el desarrollo de software embebido para diferentes sectores, nos gusta pensar en la tecnología como una herramienta preciosa para crear una sociedad equilibrada y basada en la razón. Una sociedad que hace uso del progreso para conseguir la máxima sostenibilidad, eficacia y confort. Todo lo demás, ya nos lo dirá el futuro de nuestra sociedad.



* Artículo de Alessandro Barbera Formica *



Alessandro Barbera


CMO | Ejecutivo de cuentas



BIO

Soy experto en marketing y comunicación multilingüe (It-Es-En).
La formación en startup y luego la experiencia en empresas internacionales, me han permitido desarrollar un perfil T-shaped en el mundo digital y competencias multidisciplinares en el marketing estratégico y publicitario.



10 de mayo de 2021

¿Por qué deberías estudiar un grado en Ingeniería Informática?

Ingeniería del Software
Muchas industrias se han visto gravemente afectadas por la pandemia de COVID-19, lo que ha provocado importantes caídas en las nuevas contrataciones y despidos, pero por el contrario, el empleo en tecnología de la información y consultoría está aumentando durante los últimos años.


Los profesionales de tecnología de la información (TI) son responsables de ayudar a las organizaciones a mantener su infraestructura digital y brindar asistencia a los consumidores de tecnología en la resolución de problemas. Los empleados de TI ayudan a otros a mantenerse al día con los avances tecnológicos y los procedimientos de seguridad.

El aprendizaje digital en línea es una tendencia importante durante esta pandemia y ha supuesto un crecimiento en empleo y oportunidades que seguirán en auge en el largo plazo.
El aprendizaje en línea ofrece una gran oportunidad para los estudiantes que deseen aprender una materia y no tengan la opción de asistir a clases en horarios regulares o quieran compatibilizarlo con su trabajo.

El grado de informática online es uno de los grados con más salidas laborales y, a la pregunta de si ¿es posible cursar una ingeniería online?, la realidad constata que es una de las que ofertan las universidades online por su proyección y futuro inmediato.

Entre las universidades que lo ofertan, destaca la Universidad Isabel I que imparte grados y másteres oficiales y títulos propios de posgrado, todos ellos con plena validez en el Espacio Europeo de Educación Superior, orientados a la integración del alumno en el mercado laboral.


Computer Engineering


Se proyecta que el empleo en ocupaciones de informática y tecnología de la información crezca un 11 por ciento entre 2019 y 2029, mucho más rápido que el promedio de todas las ocupaciones.

La demanda de estos perfiles tendrá un mayor énfasis en la computación en la nube, la recopilación y almacenamiento de grandes volúmenes de datos (Big Data) y la seguridad de la información.

Entre los 15 trabajos más buscados en el mundo, según el informe 'Empleos en aumento' de LinkedIn, se encuentran los siguientes perfiles:

  • Ingeniero especializado: se necesitan profesionales expertos para diseñar y desarrollar sitios web y aplicaciones. Esto incluye desarrolladores web, ingenieros full-stack y desarrolladores de videojuegos.

  • Diseñador UX: se centra principalmente en diseñar el proceso que facilita una buena experiencia de usuario en la creación de un sitio web o aplicación. Una vez creado el producto, son responsables de las pruebas y el mantenimiento constante del diseño.

  • Especialista en ciencia de datos: un científico de datos ayuda a una organización a resolver problemas mediante el análisis de datos. Establecen métodos de prueba para revisar infraestructuras y realizan test de aprendizaje automático para analizar los resultados de los usuarios y ofrecer varias soluciones.

  • Especialista en inteligencia artificial: trabajan en estimulación cognitiva y programan computadoras para realizar tareas como lo haría un humano. Es un nicho de mercado que requiere profesionales capacitados y experimentados para crear esta funcionalidad similar a la humana.

La cuarta revolución industrial ya ha transformado el negocio que conocemos integrando lo físico con lo digital.

El futuro del trabajo se caracteriza por un mayor nivel de automatización y un alto grado de internacionalización.

Para ser más competentes que sus rivales, las empresas deben poder adaptarse rápidamente mientras que los empleados deben capacitarse de un conjunto de habilidades para satisfacer su demanda.

La pandemia ha obligado a las compañías a vivir en una nueva realidad que implica la incorporación de procesos de automatización e IA, reciclaje y aprendizaje permanente, y opciones de trabajo remoto para mantenerse al día en la tecnología.








1 de abril de 2021

Machine Learning: la importancia de la automatización de decisiones

Machine Learning Logo
¿Cuál dirías que es el valor de los sistemas de inteligencia artificial? Hemos llegado al punto en el que muy probablemente en cada uno de nuestros días tenemos contacto con algún sistema basado en aprendizaje de máquina, o Machine Learning. Si tienes interés en aprender más sobre qué es el aprendizaje de máquina, y en descubrir cómo puedes generar valor con este tipo de sistemas, te recomiendo que sigas leyendo este artículo.


Machine Learning


¿Qué es el aprendizaje de máquina y cómo saber cuándo usarlo?


Cuando estamos en el trabajo, en nuestra empresa o en otro ámbito, nos enfrentamos a diferentes problemas. Algunos de estos problemas pueden ser: Cómo mejorar el producto, Cómo ganar más clientes o Cómo aprovechar mejor los recursos. Es más, probablemente tú seas la persona responsable de resolverlos. ¿Podrías resolverlo con Inteligencia Artificial?, y si es el caso ¿cómo podrías hacerlo?

Si quieres resolver un problema y te preguntas cómo hacerlo con inteligencia artificial, sigue leyendo. El objetivo es que seas capaz de:

  • Comprender los conceptos básicos para proponer una solución con Machine Learning.
  • Decidir cuándo usar y cuándo no, métodos de Machine Learning.

¿Qué es el Machine Learning?


Iniciemos definiendo al Machine Learning. Sin ser tan rigurosos, podemos decir que una máquina tiene inteligencia artificial si puede interpretar datos, aprender de ellos y usar ese conocimiento para adaptarse y alcanzar objetivos específicos.

Presta atención a las palabras resaltadas del párrafo anterior: Interpretar, aprender y conocimiento. Estas palabras son la clave para entender qué es el Aprendizaje de Máquina y el valor que puede generar. Todo esto, claro está, orbitando alrededor de los datos... los maravillosos datos. Analicemos esto con un ejemplo.

  • Los datos como fuente principal del aprendizaje dependen del problema y pueden ser estructurados como tablas de valores, o no estructurados como imágenes, texto, voz, entre otros.
  • Lo que se puede interpretar y aprender de los datos es variado, como el reconocimiento de rostros en una imagen o la velocidad a la que debe ir un coche autónomo.
  • El uso del conocimiento está centrado en la solución del problema. Un sistema de aprendizaje automático puede aprender a identificar rostros, y a su vez, este conocimiento puede ser usado, por ejemplo, para dar acceso a un inmueble o para autorizar una compra. La ventaja del aprendizaje automático es que da a las computadoras la capacidad de aprender a resolver un problema sin tener que ser programadas explícitamente para ello. ¿Cómo podemos usar el aprendizaje de máquina para resolver un problema y generar valor?

Cómo generar valor con Machine Learning


A nuestro alrededor, encontramos diferentes usos del aprendizaje de máquina. Por ejemplo Netflix, Amazon o Spotify, usan sistemas de recomendación para sugerir productos o contenido. También podemos encontrar inteligencia artificial en aplicaciones tan distintas como los coches autónomos desarrollados por Google o en sistemas de diagnóstico médico.

Piensa en tu trabajo o en tus actividades diarias, ¿qué aplicación crees que pueda tener el aprendizaje de máquina? ¿estás seguro de que esa aplicación se pueda resolver usando métodos de aprendizaje automático? Veámos cómo puedes responder a estas preguntas. Volvemos a nuestros ejemplos, piensa ¿qué tienen en común?

  • Los sistemas de recomendación deben decidir qué producto ofrecer después de conocer información de tu historial de búsquedas.
  • Un coche autónomo debe decidir, entre otras cosas, qué velocidad es segura después de conocer información sobre las características del terreno.
  • Un sistema de diagnóstico médico debe decidir si un paciente tiene cáncer de piel después de conocer, por ejemplo, las características de una marca o un lunar en la piel.

Bien. La razón por la que el aprendizaje de máquina es útil y genera valor, es que funciona para automatizar la toma de decisiones usando como entrada datos relacionados con el problema.

Nuestros ejemplos anteriores podrían ser resueltos por humanos, pero si la información o las tareas adquiren un volumen muy grande, estas acciones se vuelven imposibles. Así como ciertas tareas manuales pueden ser automatizadas con brazos robóticos, con el aprendizaje de máquina reemplazamos tareas mentales de análisis de datos con sistemas de aprendizaje automático. Ahora, del ejemplo que pensaste, ¿qué decisión se puede automatizar? ¿qué datos se pueden usar?

Hasta aquí, hemos hablado de dos elementos necesarios para un sistema de aprendizaje de máquina: ¿Qué debe aprender a decidir mi sistema? y ¿cuáles son los datos que necesito para esto?
Un tercer elemento es un modelo de análisis de datos o método de aprendizaje de máquina. Este método es el que toma como entrada los datos, y los procesa para entregar como salida la decisión automática. ¿Qué pasos se necesitan seguir para resolver un problema con aprendizaje de máquina?

Machine Learning VS Programación "clásica" (Explícita)


Este tipo de ejemplos los encuentras en mi blog Blog - Machine Learning Blog

Como ya lo hemos comentado, la inteligencia artificial genera valor al automatizar decisiones.

Así como un brazo robótico automatiza las tareas manuales, el Machine Learning (subcampo de la Inteligencia Artificial) automatiza tareas "mentales". Un ejemplo clásico es el filtrado de correos basura o spam. Una persona podría identificar qué correos son spam y cuáles no, pero debido a la ingente cantidad de correos recibidos esta tarea se vuelve imposible de realizar. Es aquí donde entra la inteligencia artificial, que aprende, a partir de ejemplos, a identificar automáticamente correos basura.

Pensemos en el siguiente problema: convertir de Celsius a Fahrenheit, donde la fórmula aproximada es:

  f = celsius\times 1.8+32

Ahora veamos la solución:

  • a) Usando programación estructurada (normal)
  • b) Usando Machine Learning
a) En programación "normal" debes dar las instrucciones de forma explícita. La solución en Python sería

def celsius2fahrenheit(celsius:float) -> float:
	fahrenheit = celsius*1.8 + 32
	return fahrenheit
f = celsius2fahrenheit(23)
print(f)

El output aquí es 73.4

b) En Machine Learning no es necesario indicar explícitamente el algoritmo. Solo le pasas ejemplos y la técnica de Machine Learning encuentra solo "el algoritmo" para la solución.

Primero iniciamos con los ejemplos:

import numpy as np
celsius_q = np.array([[-40], [-10], [0], [8], [15], [22], [38]], dtype=float)
fahrenheit_a = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)
X = celsius_q
y = fahrenheit_a

Luego

from sklearn.svm import SVR
#TÉCNICA DE MACHINE LEARNING
svr_lin = SVR(kernel='linear', C=100, gamma='auto')
#ESTE MÉTODO "ENTRENA" AL MODELO PARA QUE APRENDA
svr_lin.fit(X, y) 
# PREDECIMOS YA QUE "APRENDIÓ"
svr_lin.predict([[23]])

El output aquí es 73.185

Como ves, nos acercamos bastante. Esta es una buena solución, pero podemos mejorarla.

En el ejemplo anterior vimos cómo el aprendizaje de máquina aprende con ejemplos sin necesidad de indicar explícitamente qué pasos se deben seguir para resolver un problema. Entonces, después de leer este artículo cómo responderías la pregunta del inicio... ¿cuál dirías que es el valor de los sistemas de inteligencia artificial?


* Artículo de Alan López *



Alan López


PhD - Machine Learning and Computer Vision



BIO

Doctor en ciencias, especialista en inteligencia artificial y visión por computadora. Ha implementado algoritmos bio-inspirados aplicados en visión robótica, mantenimiento y finanzas. Continuamente explora herramientas de inteligencia artificial aplicadas en el aprendizaje adaptativo para personalizar las experiencias de aprendizaje en línea.

Creador de la plataforma de aprendizaje Machine Learning en Español.com

LinkedIn: machine-learning-alan-lopez



8 de febrero de 2021

Blockchain para empresas | Entre falsos mitos y consejos de experto

Blockchain Icon
¿La tecnología Blockchain es para cualquier tipo de empresa? ¿Cuáles son las recomendaciones para los emprendedores que quieren saber más sobre la "cadena de bloques"?. Ya que son muchos los falsos mitos y la confusión alrededor del tema, hemos entrevistado directamente a un experto de Blockchain, Rafael Barriuso, CTO y Cofundador de Tribalyte Technologies para que nos ayude a profundizar más en ello.


Security Smartphone


Rafael, si tuvieras que definir Blockchain en pocas palabras, ¿cuáles serían?


El término “blockchain” o “cadena de bloques”, así sería en español, en el imaginario colectivo siempre viene de la mano cuando se habla de bitcoin, criptomonedas y fintech pero Blockchain significa mucho más que eso y, sobre todo, hoy en día puede usarse prácticamente en casi cualquier sector.

Muy en resumen, se trata de una tecnología que permite que diferentes actores, potencialmente desconocidos, interactúen sin necesidad de un mediador individual que asegure la confianza ni seguridad, sino a través de lo que se llama contratos inteligentes o smart contracts. Ello gracias a que la tecnología asegura la confianza entre las partes (nadie puede "hacer trampas") almacenando toda la información de manera descentralizada, compartida y enlazada en forma de “bloques” de datos seguros y trazables.

Pero, entonces, ¿DLT o Blockchain son dos tecnologías totalmente distintas?


Se trata de un malentendido muy común. Las tecnologías DLT (“Distributed Ledger Technology”) o “Tecnología de Libro Mayor Distribuido” son sistemas fundamentados en lo que se asemeja a una base de datos que registra información de manera descentralizada, ya que los datos se replican en distintas ubicaciones y pueden ser distribuidos tanto de forma privada como pública.

Por otro lado, la tecnología Blockchain es en sí un tipo de DLT pero proporciona características extra que le dotan de más seguridad e inmutabilidad. Una diferencia fundamental es la manera en que se implementa esa base de datos de la que hablamos.

Aunque en general los sistemas DLT se consideran redes descentralizadas, ya que su funcionamiento no depende de un administrador que apruebe la transmisión de la información, sí requiere de una figura que establezca las reglas en las que se basará su funcionamiento y estructura de la red. En cambio, Blockchain no necesita ninguna entidad concreta que defina las reglas, sino que todos los integrantes de la red tienen el mismo grado de conocimiento de la red. En términos de seguridad, todo esto hace que resulte imposible en la práctica que alguien introduzca información falsa a la cadena.

Aparte de bancos, criptomonedas y fintech, ¿qué más sectores pueden usar Blockchain?


Muchos más. Es verdad que la cadena de bloques ha ganado mucha popularidad e importancia a raíz de su uso en el mundo de las transacciones a través del uso de criptomonedas como el Bitcoin. Pero, gracias a sus enormes ventajas, hoy en día cada vez más sectores integran y experimentan la cadena de bloques: logística, abogacía, medicina, educación, energía, alimentación, cadenas de suministros y farmacéuticas, entre otras.

Un caso práctico muy actual serían estas últimas, las farmacéuticas. El reparto de las vacunas contra la COVID-19, como ya podemos ver, es, y seguirá siendo, una operación muy delicada y, sobre todo, muy vulnerable si no se adoptan medidas de seguridad y transparencia. La tecnología Blockchain puede asegurar, y ya lo está haciendo, que todo el recorrido y los cauces para repartir las vacunas se cumplan con total seguridad y que se eviten estafas y crímenes.

¿Alguna marca o empresa conocida que ya usa la la cadena de bloques?


Por ejemplo Mercadona, una marca que en España todo el mundo conoce y que, retomando el tema anterior, nos ayuda a actualizar y “modernizar” un poco la idea de Blockchain, que es muy común en el imaginario colectivo como algo muy lejano del mundo “corriente”, por así decirlo. Todo lo contrario. Una cadena de supermercados o de hoteles, una farmacéutica, una empresa financiera, una PYME española, la administración pública... todas estas entidades pueden implementar protocolos Blockchain en sus operaciones.

Otro asunto muy actual y relacionado con Blockchain es la Identidad Digital, ¿verdad?


Correcto. También aquí hay mucha confusión y mitos que es importante aclarar. El concepto de la Identidad Digital - el término exacto sería “Identidad Digital Soberana” del inglés, Self-sovereign Identity - hace referencia a la idea de poder tener todos los datos que forman parte de la identidad de cada individuo controlados y manejados por él mismo. Cada persona podrá decidir quién y qué saben los demás de ella. Para hacer esto, se están desarrollando múltiples soluciones, generalmente con tecnologías blockchain, en varias partes del mundo. Casi todas ellas se basan en propuestas en las que los datos personales están encriptados en smartphones y desde estos, gracias a una aplicación, el usuario puede controlar el acceso a sus datos y las transacciones que se realizan con ellos.

Como parte de Alastria, la primera asociación nacional que promociona el uso de Blockchain, nosotros mismos, en Tribalyte Technologies, contribuimos activamente en el desarrollo de Alastria ID. Se trata de un estándar de Identidad Digital Soberana sustentado en la cadena de bloques que utiliza Smart Contracts para permitir el trazado de transacciones de datos off-chain de manera segura y anónima para los agentes externos a la transacción.

Es importante que la Identidad Digital no se asocie a una idea de inteligencia artificial omnipotente que va a gobernarnos a todos. Todo lo contrario. Es un sistema muy útil que se está desarrollando justamente para proteger nuestros datos de la centralización.

Otro punto muy importante del que igual no se habla mucho es el uso de Blockchain para el desarrollo de aplicaciones


Es cierto. Retomando lo que decíamos sobre el imaginario colectivo, Blockchain suele asociarse a una idea abstracta de una tecnología futurista. Sin embargo, todo tipo de aplicación (web, móvil y escritorio) puede ser descentralizada y, por consiguiente, funcionar sobre la cadena de bloques. A este tipo de app se le llama DApp (“Decentralized Application”), o sea, aplicación descentralizada.
En una DApp cada usuario ejecuta sus operaciones (transacciones) a través de los nodos de la red, quedando el resultado reflejado en la cadena. De esta forma todas las operaciones que se realicen en la misma pasarán por los Smart Contracts que utiliza la DApp. Un caso práctico para los lectores que trabajen en el mundo del software, por ejemplo, podría ser BrightByte, una DApp que ayuda a los equipos de desarrollo a mejorar sus procesos y la calidad del producto, incentivando la práctica de revisión cruzada de código fuente.

Has nombrado "smart contract". ¿Qué es exactamente?


El smart contract o contrato inteligente en español, es la herramienta principal de la tecnología Blockchain y su mayor utilidad. Se trata del acuerdo inmutable almacenado y ejecutado en la cadena de bloques. Este contrato se “firma” entre distintos participantes pero, y eso es lo más importante, la red asegura el consenso en la ejecución del contrato y cada participante puede acceder a los datos almacenados en el contrato. Asimismo puede haber participantes que sólo conozcan unos “bloques” de la cadena de información y otros que accederán a todos los datos. Todo aquel que utilice el contrato respetará inevitablemente las normas que implementa y las operaciones que puede realizar cada uno de ellos y qué parte de información conocerán en detalle.

Muy en resumen, cuando hablamos de Blockchain nos referimos justamente a este tipo de almacenamiento de información por bloques, porciones. Además, ya sólo el intento de modificar la información de un bloque afectaría por consiguiente al resto de la cadena. Por eso esta estructura tan segura convierte a la cadena de bloques en una solución fiable que impide la alteración de sus datos.

Entonces, Blockchain ya no es para unos pocos elegidos ¿correcto?


Eso es. Exacto, y este es un poco el mensaje principal que me gustaría compartir con tus lectores. Prácticamente todo tipo de sector puede y, me atrevo a decir, debería, por lo menos, consultar con un experto para averiguar si y cómo el uso de tecnologías Blockchain podría mejorar los procesos de su negocio, así como la seguridad y la transparencia de los mismos. Hoy en día se escucha hablar mucho de agilización de la gestión empresarial. Este es sin duda un factor fundamental para la transformación digital de las empresas, y herramientas como los CRMs pueden cubrir, desde luego, muchas de estas necesidades. Pero, hay que tener en cuenta que a medida que avanzamos con la digitalización de las empresas, a la vez aumentan los riesgos de generar fallos de seguridad para estas últimas. Hablando de la digitalización, por ejemplo en el sector de la industria es muy actual el concepto de Industria 4.0, el cual se encuentra alineado con la filosofía de Tribalyte en el sentido de cubrir las necesidades específicas de cada negocio con tecnología digital. Cada empresa es un mundo aparte y adoptar soluciones tecnológicas a medida es cada día más importante y necesario.

También es verdad que, con respecto al pasado, hoy la mayoría de los emprendedores suele informarse mucho más sobre temas como seguridad digital y soluciones tecnológicas. Con lo cual, las expectativas a medio plazo son muy positivas y sin duda cada vez más empresas se concienciarán sobre el tema.

En conclusión, si tuvieras que resumir en pocas palabras por qué las empresas deberían adoptar tecnologías Blockchain, ¿cuáles serían?


Yo diría: seguridad, transparencia, descentralización, trazabilidad, versatilidad y, por último, pero no menos importante, confianza. En tiempos de pandemia y crisis económica mundial, Blockchain va a ser uno de los vehículos de la recuperación económica y de la adaptación de las empresas a la nueva normalidad, así que, es el mejor momento para documentarse, informarse y, por supuesto, consultar con un experto en el tema.



* Artículo de Rafael Barriuso *



Rafael Barriuso


CTO y Cofundador de Tribalyte Technologies



BIO

Como CTO y Cofundador de Tribalyte, mi misión es orientar nuestra área de Ingeniería de Software, Tribalyte Technologies, y contribuir al desarrollo de los proyectos utilizando las tecnologías más adecuadas para cada caso con el fin de producir resultados de la más alta calidad.

Gracias a mi experiencia en I + D + i, colaboro activamente en proporcionar a nuestra agencia de patentes, Tribalyte Ideas, consultoría y asesoramiento informático a medida.

Soy un ingeniero de telecomunicaciones con más de 18 años de experiencia internacional en la industria del software. Tengo una amplia experiencia como ingeniero de software y consultor, incluidas aplicaciones empresariales, el ecosistema móvil, aplicaciones web, blockchain y software embebido.

LinkedIn: rbarriuso



25 de enero de 2021

Tipos de alojamiento web: ¿Cómo elegir?

WebHosting Icon
A pesar de que el usuario medio comprenda de Internet su aparentemente “mágico” desarrollo, éste requiere de una infraestructura física que permita alojar cuanto contiene. Y a fin de ofrecer a cada cliente un amplio abanico de recursos con los que abastecer su sitio web, el mercado ofrece un extenso repertorio de servidores en función de cada necesidad.

La infraestructura de Internet


Aunque el usuario común pueda pensar que Internet es una suerte de engranajes que “mágicamente” nos interconectan a través de una nube, la realidad es que su arquitectura precisa también de distintas infraestructuras que permitan su flujo y, más importante aún, su almacenamiento.

El alojamiento web, en inglés hosting y como su nombre indica, es el servicio que provee a dichos usuarios de los datos y las imágenes, vídeos y documentos cuyo acceso se solicite a través de la red. Concretamente, un espacio físico, los servidores o web host, cuya función consiste en almacenar todo cuanto concierna a un sitio web.

Uno de los servidores más conocidos es el VPS (Virtual Private Server o Servidor Virtual Privado), aunque existen todo tipo de tipologías que van desde el alojamiento gratuito hasta el alojamiento en la nube o cloud hosting.

Evidentemente, el servidor más idóneo para nuestro sitio web dependerá de nuestras necesidades y están sujetos a ciertas condiciones. Tomando un ejemplo, mientras que el alojamiento gratuito, de recursos algo limitados, añade publicidad en las páginas web para subsistir, los nuevos free hosting o alojamiento por donación se mantienen gracias a la comunidad que los administra permitiendo así las mismas funciones que una de pago y gratuitamente.


Web Hosting

Criterios a tener en cuenta


Dejando de lado algunas de las diferencias entre los servicios gratuitos y de pago, lo principal es dedicar la atención hacia qué nos aporta un servidor u otro.

Los criterios de elección pueden ser muchos y muy variados, tanto por cuanto se refiere a la previsión de tráfico que admite como a la ubicación del Centro de Proceso de Datos (CPD).

Asimismo, también debemos tener en cuenta bajo qué firma preferimos que opere nuestro servidor dada su especialización. Algo muy a tener en cuenta, ya que de ello depende cuán fluida y segura será nuestra página web y, por lo tanto, consistiendo en una buena inversión en seguridad y fiabilidad.

Por ejemplo, si somos una pequeña o mediana empresa, es más rentable contratar un servicio de alojamiento compartido o hosting flexible, que reduce costes alojando clientes distintos en un mismo servidor, con marcas especializadas como Webempresa. A diferencia de, en otro caso, los mencionados servidores virtuales privados, dado que son más recomendables para empresas de programación web o diseño más recelosas de su información.

Y, en un caso más rebuscado, el alojamiento revendedor o reseller sería buena opción para aquellos usuarios que se dedican a vender un servicio de hospedaje a terceros.

De la prevención contra desastres al sistema operativo


Otro de los criterios que obligatoriamente debemos tener en cuenta en el momento de contratar un servidor es la seguridad del CPD.

Por una parte, es preciso cerciorarse de que dicho centro disponga de un sistema de seguridad que tanto prevenga contra los ataques como pueda recuperar datos en caso de sustracción o pérdida.

Del mismo modo, y aunque pueda no parecer importante, debemos corroborar que el lugar donde se almacena nuestra información está también bien protegido contra catástrofes naturales. Ya que un desastre de esa índole podría destruir los servidores donde se alojan nuestros datos.

En otra instancia, incluso el sistema operativo marca la diferencia entre distintos alojamientos. Encontrando desde combinaciones como Linux, Apache, MySQL y PHP bajo el acrónimo de LAMP, o sistemas de software libre y código abierto como ubuntu.com, una distribución de Linux.

En relación a la calidad de sus servicios, es preciso conocer la disponibilidad del hosting, aunque sea imposible de asegurar al 100%.

Utilizando como fórmula de evaluación su media de caídas por semana, mes y año, y entre un mínimo de 90% y 99.99% de disponibilidad. Lo que supone o bien un tiempo de caída semanal de 16’8 horas o de 1’01 minutos.

Filtrando opciones hacia el mejor servidor


Siguiendo con otras tipologías de alojamientos web, podemos encontrar en el mercado opciones como el servidor dedicado administrado, en el caso de que precisemos de un servidor dedicado, pero también de mantenimiento y soporte técnico.

Un punto similar al de los alojamientos administrados y no administrados, pudiendo escoger si necesitamos o no de más recursos además de los básicos. En ambos casos, y como se ha ido comentando, todo depende de las prestaciones que requiera nuestro sitio web.

Así como, dado el caso, también podríamos solicitar alojamiento específico de imágenes o vídeos o únicamente para uso de correo corporativo.

Finalmente, uno de los alojamientos posiblemente más popularizados a lo largo del último tiempo es el cloud hosting o alojamiento en la nube.

Una metáfora de las nuevas tecnologías de Internet que permite trascender el espacio físico y aumentar la flexibilidad y las posibilidades mediante muchos servidores. Lo que proporciona la capacidad de conectarse a cualquier servidor disponible tan sólo con tener conexión y acceso a Internet.

Se trata de identificar las necesidades de nuestra página web y hallar la mejor solución para su hosting. Eso sí, siempre analizando qué ofrece cada servidor y evaluando si de verdad es lo que necesita nuestro proyecto o nuestra empresa.

Por ello, nada mejor que contratar servidores seguros de firmas fiables, que respondan rápido a nuestras solicitudes de ayuda y que gocen de impecables opiniones. Porque, al fin y al cabo, la importancia de nuestro contenido radica también en la fortaleza del servidor que lo contiene.






20 de enero de 2021

DevSecOps - como integrar la seguridad en procesos DevOps

DevSecOps Icon
Las aplicaciones de software son complejas y pueden ser vulnerables a una amplia variedad de problemas de seguridad. La cultura empresarial frecuentemente sitúa la seguridad en la fase final del ciclo de vida del desarrollo de software. DevSecOps se centra en desplazar la seguridad hacia la izquierda, es decir, en lugar de adoptar un sistema de respuesta a incidentes, todos son responsables de la seguridad desde el principio, incluso en las etapas de planificación.

DevSecOps fusiona la seguridad, el desarrollo y las operaciones para que actúen de forma conjunta y lograr un objetivo común al realizar mejoras en los procesos, herramientas y colaboraciones en equipo.


DevSecOps


¿Qué es SDLC?


El ciclo de vida del desarrollo de software, conocido por las siglas en ingles SDLC o Systems Development Life Cycle, es un proceso de construcción o mantenimiento de sistemas de software y representa las diferentes fases que, por lo general, incluyen desde el análisis preliminar hasta las pruebas y evaluación posteriores al desarrollo del software.

Este proceso incorpora los modelos y metodologías que los equipos de desarrollo utilizan para desarrollar software, metodologías que constituyen el marco para planificar y controlar todo el proceso de desarrollo.

Metodologías SDLC


Actualmente, hay dos metodologías SDLC que son utilizadas por la mayoría de los desarrolladores de software, la metodología tradicional y metodología ágil.

En el ciclo de vida de desarrollo tradicional, los desarrolladores y sus equipos suelen fijar reuniones con otros equipos involucrados en el proceso SDLC con el objetivo de detallar los requisitos funcionales y de diseño previos al comienzo de la implementación.

A la fase de diseño le sigue la fase de codificación. La fase de pruebas tiene lugar cuando se completa todo el proceso de codificación y solo se presenta el producto final a las partes interesadas después de que en estas pruebas no se detecte ningún problema.

Una de las desventajas de esta metodología tradicional es que los equipos construyen el sistema de manera "única". En el supuesto de que surja un problema durante la fase de pruebas, lo peor de este escenario es que todo el módulo/desarrollo tiene que revertirse para rectificar ese problema.

Otro inconveniente del SDLC tradicional es que, en la mayoría de los casos, las partes interesadas no conocen a priori lo que realmente quieren implementar en el sistema, por lo tanto, el modelo de requisitos diseñado en las fases anteriores puede no cumplir con las características reales que deben implementarse.

Las solicitudes de cambio de los usuarios o partes implicadas pueden establecerse después de que el producto final sea presentado y lanzado al mercado y este cambio puede causar varios problemas de compatibilidad e integridad del software.

Con todos estos inconvenientes, surge la necesidad de establecer un proceso iterativo donde los cambios puedan realizarse de forma más ágil.

Es en este punto dónde se crea la metodología ágil para los procesos de desarrollo de software donde el cliente está presente en todas las fases de desarrollo.

Esta metodología facilita la interacción entre todas las partes implicadas ya que se pone el foco en las personas y no en los procesos, permitiendo dimensionar los proyectos de forma más eficiente minimizando los riesgos.

Cultura DevOps


Sin embargo, la metodología Agile no resuelve el problema de comunicación entre los diferentes elementos que conforman el proceso de desarrollo de un sistema software: el equipo de desarrollo y el equipo de operaciones.

El término DevOps se conforma combinando las palabras "desarrollo" y "operaciones" y supone un cambio cultural que cierra la brecha entre los equipos de desarrollo y operación.

DevOps no es simplemente un proceso o un enfoque diferente para el desarrollo, es un cambio de cultura que implica un cambio de mentalidad, una mejor colaboración y una integración más estrecha.

Modelo DevSecOps


Este modelo integra la seguridad en el proceso DevOps ayudando a prevenir y abordar los riesgos de seguridad a medida que aparecen en el ciclo de desarrollo.

Este tipo de seguridad incorporada a DevOps tiene como objetivo incluir una cultura y prácticas de seguridad en todo el flujo de trabajo de DevOps dando como resultado un lanzamiento de producto más rápido y seguro.

La incorporación de medidas de seguridad en las primeras fases del desarrollo de software supone un ahorro en costes generales para cualquier organización y la seguridad debe adoptar un enfoque de responsabilidad compartida entre todos los miembros de los equipos IT: seguridad, desarrollo y operaciones.

En esencia, DevSecOps ha cambiado la naturaleza misma de cómo se debe implementar la seguridad de las aplicaciones y hace referencia a la seguridad integrada y no su perímetro de seguridad.


Laboratorio





Trabajo Fin de Máster (nota 8.77)









23 de diciembre de 2020

AppSheet - aprende a crear aplicaciones sin escribir código

AppSheet - Google Cloud
Con AppSheet de Google Cloud, cualquiera puede crear aplicaciones personalizadas sin tener que escribir ni una sola línea de código. Desde una organización que busca la transformación digital o un pequeño equipo que necesita soluciones creativas para organizar eventos durante la pandemia, no hay límites para lo que se puede crear.


Estas aplicaciones web y móviles se crean a partir de fuentes de datos, como Google Sheets (hojas de cálculo de Google), Excel, Cloud SQL, Salesforce y otros conectores similares. La actividad de los usuarios se sincroniza con las fuentes de datos conectadas.

La plataforma AppSheet está integrada en el servicio de colaboración Google Workspace, el nuevo espacio de trabajo que sustituye a G Suite y conecta Gmail, Calendar, Drive, Docs, Sheets, Slides, Meet y Chat.


AppSheet


1. Cree una aplicación móvil con geolocalización y Google Maps en cinco minutos


Al incorporar Google Maps en su aplicación AppSheet, puede crear una aplicación de geolocalización simple en solo unos minutos, o dedicar un poco más de tiempo a sugerir lo que le gustaría que hicieran sus usuarios en función de las actualizaciones de tareas o garantizar que las entregas se realicen a tiempo.

Create a mobile app with Geolocation and Google Maps in 5 minutes


2. Seis aplicaciones de automatización que puede crear hoy mismo


Cada template de app a la que se hace referencia en esta sección le permite eliminar procesos manuales y liberar recursos valiosos. Ya sea la app Sequential Tasks o cualquiera de las otras, intente copiar y añadir uno o dos de estos procesos al portfolio para personalizarlo o crear el suyo propio. ¿Qué es lo mejor? la funcionalidad del workflow está integrada para que la pruebe y la revise antes de llevar a cabo la customización de su aplicación.

Six automation apps you can build today in AppSheets


3. Gestionar las ventas: tres plantillas Excel gratuítas de seguimiento de ventas


Los profesionales de ventas a menudo tienen dificultades para encontrar la aplicación adecuada para cubrir sus necesidades comerciales. Algunos representantes necesitan acceder a sus datos en tiempo real, otros requieren que sus aplicaciones se ejecuten en un escritorio y los hay que precisan una combinación de todo esto buscando una solución tan ágil como su equipo de trabajo. Con estas tres plantillas, encontrará elementos fundamentales que le ayudarán a realizar un seguimiento de los clientes potenciales, crear informes y añadir datos de campo sin importar el entorno de trabajo o el tamaño de la empresa.

  • Sales Leads Tracking Template
  • Sales Report Template
  • Sales Call Log Template

How to Manage Sales in Excel: Three Free Sales Tracker Excel Templates


4. Cree una aplicación de gestión de inventario desde Google Sheets con AppSheet


La gestión de inventario es una de las formas más populares en las que los creadores de aplicaciones no solo utilizan AppSheet, sino que también comienzan a utilizar la plataforma. Ya sea que esté administrando el inventario de una tienda online o desee actualizar el proceso de inventario de su hogar, los pasos proporcionados en este tutorial ofrecen un recorrido paso a paso de conceptos críticos para ayudarle a mejorar sus habilidades en el desarrollo sin código.

Create an inventory management app from Google Sheets with AppSheet


5. Cómo crear una aplicación de experiencia del cliente con Google Docs


Puede transformar sus Google Docs en una aplicación AppSheet interactiva en solo unos minutos.
En este ejemplo, verá cómo nuestra popular plantilla de aplicación para "encuestas de campo" permite crear una excelente experiencia de servicio al cliente.

How to Build a Customer Experience Mobile App with Google Docs


6. Cómo los empleados de AppSheet usan AppSheet


Siempre es divertido saber cómo las personas que construyen algo lo usan detrás de escena. El siguiente vídeo muestra ejemplos y descripciones generales de qué es lo que ayuda al equipo de AppSheet a mantenerse organizado y administrar mejor su tiempo.







7 de octubre de 2020

¿Qué es Docker? breve introducción y conceptos básicos

Logo Docker
Docker ha sido una propuesta diseñada y desarrollada inicialmente por Salomón Hykes en la empresa "dotCloud" con el propósito de automatizar los procesos de integración continua (CI) y entrega continua (CD). A raíz de su potencia y facilidad de uso, fue liberado como proyecto de código abierto en el año 2013.


Desde su liberación en 2013, el proyecto ha ido creciendo y se ha consolidado como uno de los más importantes en GitHub con el mayor número de estrellas y de forks.

Empresas como Microsoft, IBM, RedHat, HP, entre otras, no tardaron en ver la potencia y valor de Docker y por ello, participan activamente en su desarrollo y crean soluciones propias partiendo de Docker.

DevOps


¿qué es Docker?


Es un proyecto open source utilizado principalmente para el despliegue de aplicaciones en espacios virtualizados. Estos espacios son también conocidos como contenedores.

Es una tecnología muy extendida en la industria del desarrollo de software, siendo una práctica muy frecuente en los equipos de desarrollo. Estos usan Docker para poder desplegar fácil y rápidamente las aplicaciones que crean.

¿qué es un contendor?


Es un espacio virtual (hay diferencias importantes con las máquinas virtuales) en dónde instalamos todo el software necesario para que podamos ejecutar las aplicaciones que vamos desarrollando.

Podemos tener un contenedor con una configuración muy específica. Por ejemplo, podríamos crear un contenedor que incluya Apache, PHP y MySQL con versiones muy concretas y lo podemos desplegar facilmente en otros sistemas en los que necesitemos que se encuentre en ejecución esta aplicación (estas plataformas sólo necesitan correr un servicio de Docker).

El objetivo de los contenedores es incluir todo lo necesario para que una aplicación se pueda ejecutar en cualquier plataforma sin tener que cambiar nada.

¿qué es una imagen?


Un contenedor sólo es posible crearlo a partir de una imagen.
Una imagen, a grandes rasgos, es una plantilla que nos permite crear contenedores. Incluye el diseño y la configuración necesaria para poder crear contenedores concretos.

De forma general, una imagen define el software que vamos a instalar en el contenedor y que versiones tienen que tener. Es decir, las imágenes siguen un modelo y sintaxis estándar.

A modo de ejemplo, podríamos hacer un símil en el mundo del desarrollo diciendo que "una imagen sería una clase y un contenedor el objeto propiamente dicho".

Estos dos elementos son imprescindibles para poder utilizar Docker.

Caraceterísticas importantes de Docker


  • las imágenes y los contenedores se gestionan de una forma centralizada por medio de un servicio que se encuentra en ejecución en el sistema operativo. Este servicio es conocido como "dockerd".

    En sistemas basados en linux (en las distribuciones más recientes) este servicio se encuentra gestionado, como muchos otros, por systemd.

    Lo que normalmente hacemos es utilizar el cliente de Docker (comando docker) para poder conectarnos con este servicio y poder gestionar imágenes y contenedores.

    Este comando se encarga de conectarse al servicio de docker y realizar todas las operaciones de administración sobre este servicio como son la gestión de imágenes y contenedores, configuraciones de red, etc.

  • existen multitud de imágenes que tienen configuraciones estándar.

    Es bastante habitual encontrarnos con equipos de desarrollo que van a necesitar el mismo stack tecnológico (Apache, PHP, MySQL por ejemplo). Para ello existe un repositorio centralizado conocido como Docker Hub (https://hub.docker.com/) en donde se encuentran cientos de imágenes registradas que podemos descargar y posteriormente utilizar para crear nuestros contenedores partiendo de esas imágenes.

  • los contenedores admiten múltiples configuraciones, incluyendo la asignación de contenedores a distintos segmentos de red. Esto nos permite, entre otras cosas, crear contenedores que se van a ver entre ellos partiendo de un contexto de red común.

  • en docker también podemos crear clusters de contenedores, crear volúmenes y otras muchas funcionalidades que facilitan la actividad de un DevOps.

Diferencias Contenedores vs Máquinas Virtuales


Las máquinas virtuales han sido la forma estándar y tradicional de desplegar múltiples aplicaciones con diferentes infraestructuras en una misma máquina o sistema.

Las máquinas virtuales se basan en un Hypervisor que es un software que permite la instalación de otros sistemas operativos (invitados) sobre el sistema anfitrión.

Las máquinas virtuales tienen una desventaja importante, cada sistema invitado es completamente independiente del sistema anfitrión, tiene su propia gestión de recursos, procesos, tareas, etc. Esto dificulta la gestión de las aplicaciones que instalamos en estos sistemas invitados.

En cambio docker, lo que propone es no instalar un sistema operativo invitado sino aprovechar las características que ya se encuentran disponibles en el sistema anfitrión. Esto es posible gracias al uso de un motor de Docker (Docker Engine).

Docker Engine es un servicio como cualquier otro que se encuentra en el sistema operativo anfitrión pero tiene la ventaja de que se pueden desplegar sobre este servicio diferentes contenedores y cada uno de estos contenedores va a ser completamente independiente de los otros, compartiendo la misma base (librerías, aplicaciones, etc) del sistema operativo.

Es mucho más liviano trabajar con imágenes y contenedores que trabajar con un sistema operativo completo, que es lo que hacemos con las máquinas virtuales con un hypervisor como por ejemplo VirtualBox o VMWare.




1 de agosto de 2020

Todo lo que debes saber sobre Data Science

Data Science icon
Se la conoce como la Ciencia de los Datos, y es una de las máximas responsables del trabajo con grandes volúmenes de información dentro y fuera de internet y los entornos digitales. El Data Science es un elemento que forma parte del día a día de las personas, de los negocios, de los países, del mundo entero. Una pieza inamovible del puzle que la tecnología ha traído en su constante evolución.


Entenderlo, acercarse a él y, sobre todo, analizar su futuro.
Son tres cuestiones muy importantes para entender cómo funcionan la mayoría de grandes estructuras online e incluso las grandes empresas, como también para todos aquellos interesados en asumir un rol de data scientist.
Es una ciencia con un enorme potencial y con un futuro prácticamente infinito.

Data Science


Un vistazo en profundidad al Data Science


Aunque vamos a zambullirnos de lleno en esta ciencia, en sus características, su futuro y un largo etcétera, siempre es aconsejable contar con material adicional.
En ese sentido, te aconsejamos acompañar esta lectura con la información complementaria que puedes encontrar en este enlace sobre Data Science.
La combinación de ambos es más que suficiente para que tengas unas clarísimas nociones sobre este fenómeno y sobre lo que supone a una escala global.

Para el que todavía no lo sepa, el Data Science es una ciencia centrada en el estudio de los datos.

Su objetivo es ser capaz de abordar grandes volúmenes de datos, moldearlos y escudriñarlos para poder extraer la información que se necesite.
Es un conglomerado de matemáticas, estadísticas e informática que tiene como fin la interpretación de los datos a los que se enfrenta. No es más que eso, pero detrás tiene una gran cantidad de variables y factores a tener en cuenta.

Al final, su uso está destinado a facilitar la toma de decisiones.
Con la información extraída, el científico de datos elabora los informes correspondientes que pueden servir a la organización que solicita sus servicios a perfilar mejor sus futuras acciones.
Precisamente por eso se ha convertido en un pilar importantísimo para las compañías modernas, sobre todo por cómo internet ofrece ese canal que permite conseguir ingentes cantidades de datos a analizar.

Características clave del Data Science


Las características clave del Data Science son obvias. Para empezar, estamos ante una ciencia con un potente factor mutable.
Esta íntimamente ligada a la tecnología, y esta es una que nunca deja de avanzar; por lo tanto, la ciencia de datos tampoco deja de evolucionar.

Cada nuevo dispositivo, cada nuevo tipo de conexión, todo lo que implique la interacción del usuario con un entorno digital se traduce en datos a los que este campo mira con atención y mucho detenimiento.

Su alto componente matemático hace que los científicos de datos sean personas con un perfil analítico, con una clara inclinación a la estadística, de hecho, esta es absolutamente fundamental. Sin ella, la ciencia de datos ni siquiera podría existir. Es su pilar base, y uno absolutamente necesario para que funcione y, sobre todo, para que cumpla con su cometido.

¿Qué futuro le espera?


Viendo su relevancia actual y cómo la información cada vez se traslada más a los medios digitales, el Data Science tiene un futuro más que claro. Va a seguir siendo algo imprescindible para poder sacar conclusiones de los trillones de datos que se mueven en el sector digital. De hecho, su relevancia ya deja claro uno de los primeros obstáculos que se le plantean de cara a los próximos años, sobre todo para los data scientists.

Cada vez hay más dispositivos con conexión a internet, sobre todo con el boom del IoT (Internet of Things).
Cualquier dispositivo con conexión es sinónimo de más datos a obtener, y eso ya deja claro lo que puede pasar.

En primer lugar, los volúmenes van a ser cada vez más grandes, y eso exigirá mayores cantidades de almacenamiento, como también herramientas más eficientes.
La Inteligencia Artificial y su adaptación a este contexto va a ser un factor crucial para no perder rendimiento.

Otro de los grandes obstáculos de este sector, aunque más bien está ligado a las empresas, es que estas actualmente solo usan 1/3, en el mejor de los casos, de los datos que tienen para realizar la toma de decisiones.

El perfil del data scientist es muy relevante, pero no se está aprovechando adecuadamente, y eso va a requerir una readaptación a la fuerza en muy poco tiempo para poder sacar el verdadero partido a lo que ofrece esta ciencia basada en la información.

El futuro del Data Science está íntimamente ligado al de internet y las nuevas tecnologías.
Siempre requerirá cambios, una mentalidad preparada para asumir nuevos conceptos y aceptar nuevos desafíos.
En una década será muy diferente a como es actualmente, aunque también trabajará con volúmenes muchísismo más grandes.




4 de julio de 2020

Beneficios del uso de la metodología 'Agile'

SEO icon

El desarrollo ágil de software se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto.


Así el trabajo es realizado mediante la colaboración de equipos auto-organizados y multifuncionales, inmersos en un proceso compartido de toma de decisiones a corto plazo.

El objetivo de cada iteración es incrementar el valor por medio de "software que funciona" (sin errores).

Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación.

Otro objetivo es recibir el feedback temprano para la toma de decisiones y la gestión de riesgos.

Más información en el artículo Qué son las metodologías ágiles

Marcos de trabajo Agile


Cada uno de los modelos que se encuentran inscritos en la organización Agile Alliance (www.agilealliance.org) para promocionar y difundir su conocimiento, expone formas concretas de aplicación de principios ágiles en el desarrollo de software:


1- Kanban


Se trata de un método de cambio basado en la visualización que sirve como catalizador a la hora de introducir la filosofía Lean en una organización.

Se basa en la visualización de los procesos de TI, como mecanismo para exponer su flujo, sus problemas y estimular la colaboración en la mejora continua de los procesos.

Kanban

1.1- Prácticas


  • Visualización del flujo del trabajo. A través de tableros.
  • Limitación del WIP (Work in Progress, Trabajo en curso).
  • Gestiona el flujo. Realiza un seguimiento del tiempo que llevan las tareas.
  • Definición de políticas explicitas que todo el mundo pueda ver y seguir. Simples y concretas, que permitan al equipo tomar decisiones rápidas e independientes.
  • Crea mecanismos que permitan obtener feedback en todos los niveles. Dailys.
  • Mejora colaborativamente usando modelos. Retrospectivas, análisis causa raíz.

2- Scrum


Se trata de un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto.

Basado en el desarrollo incremental de los requisitos del proyecto en bloques temporales cortos y fijos.

Se da prioridad a lo que tiene más valor para el cliente.

Centrado en equipos pequeños (de 3 a 9 personas cada uno).

Kanban


Implicaciones de adoptar una metodología Agile

Antes

  • No se entrega el producto esperado.
  • Conflictos entre equipos funcionales y desarrollo.
  • Documentación difícil de mantener.
  • Estimaciones no realistas en horas y fecha de entrega.
  • Usuarios insatisfechos.
  • Falta de visibilidad global.
  • Un único equipo de desarrollo de 15 personas y un único equipo funcional.

Después

  • Entrega del producto de forma incremental y se toman decisiones en función del feedback.
  • Equipos más alineados e implicados.
  • Documentación necesaria, más comunicación face to face.
  • Estimaciones basadas en la predictibilidad y priorizando el valor.
  • Usuarios más satisfechos.
  • Mayor transparencia y visibilidad.
  • Tres equipos: dos trabajando en Scrum y uno en Kanban. Desarrollo y equipo funcional, trabajando de forma conjunta.

Riesgos y lecciones aprendidas

Riesgos

  • Caer en hacer entregas continúas pero no en entregar valor.
  • Cada Sprint se gestiona como desarrollo en cascada.
  • Cliente, usuarios, stakeholders no se implican en el proceso.
  • Los equipos no son estables.
  • No trabajar el mindset.

Lecciones aprendidas

  • Simplicidad.
  • Flexibilidad ante un entorno de negocio muy cambiante.
  • Enfocar el esfuerzo en lo importante, ¿qué es lo que realmente aporta valor?.
  • Eliminar todo aquello que no aporte valor a los procesos.
  • Calidad y excelencia.
  • Mejora continúa.
  • Fuera silos.