Rust es un lenguaje de programación de código abierto desarrollado por Mozilla Research. Fue diseñado para ser seguro, concurrente y eficiente. Algunas características clave de Rust incluyen la seguridad de memoria garantizada, abstracciones de cero costo y un tiempo de ejecución mínimo. Rust se usa en proyectos como el motor de navegador paralelo Servo y el compilador Rustc. Es financiado por organizaciones como Mozilla y Samsung.
Esta charla, de nivel introductorio, pretende dar a conocer el escritorio KDE, en su versión 4.10, explicando las bondades del mismo desde el punto de vista de un usuario.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
Go es un lenguaje de programación diseñado para desarrollar de software de “backend” altamente escalable, de manera sencilla y rápida. En esta presentacion veremos que es Go, como se programa sobre él, y como utilizarlo en Azure.
Esta conferencia fue dictada originalmente durante la 3ra Campus Party en Bogotá (2010). En ella se muestra cómo la JVM presenta al desarrollador con un abanico de lenguajes que van más allá de Java. Se hace una breve introducción a Jython, JRuby, Scala y Clojure, mostrando cómo el uso de estos lenguajes dinámicos puede simplificar la creación de programas, su utilidad como lenguajes de scripting o de “pegamento”, y la sencillez con la que se puede establecer una relación simbiótica con Java y sus librerías.
Automated Testing para aplicaciones VoIP, WebRTCIrontec
Ponencia de Carlos Cruz, Javier Infante y Gorka Gorrotxategi en el VoIP2Day 2017.
El título de la ponencia es: "Automated Testing para aplicaciones VoIP, WebRTC".
Esta charla, de nivel introductorio, pretende dar a conocer el escritorio KDE, en su versión 4.10, explicando las bondades del mismo desde el punto de vista de un usuario.
Go es un lenguaje de programación de código abierto lanzado por Google en 2009, creado con la motivación de manejar el nivel de programación que tiene Google en cuanto a número de líneas de código y la cantidad de ingenieros que trabajan en el código. Además, para facilitar la interconexión de programas dentro de sistemas distribuidos de miles de máquinas.
En este meetup revisamos este lenguaje, sus principales características, qué empresas lo usan, cómo dar los primeros pasos y una aplicación de ejemplo.
Go es un lenguaje de programación diseñado para desarrollar de software de “backend” altamente escalable, de manera sencilla y rápida. En esta presentacion veremos que es Go, como se programa sobre él, y como utilizarlo en Azure.
Esta conferencia fue dictada originalmente durante la 3ra Campus Party en Bogotá (2010). En ella se muestra cómo la JVM presenta al desarrollador con un abanico de lenguajes que van más allá de Java. Se hace una breve introducción a Jython, JRuby, Scala y Clojure, mostrando cómo el uso de estos lenguajes dinámicos puede simplificar la creación de programas, su utilidad como lenguajes de scripting o de “pegamento”, y la sencillez con la que se puede establecer una relación simbiótica con Java y sus librerías.
Automated Testing para aplicaciones VoIP, WebRTCIrontec
Ponencia de Carlos Cruz, Javier Infante y Gorka Gorrotxategi en el VoIP2Day 2017.
El título de la ponencia es: "Automated Testing para aplicaciones VoIP, WebRTC".
Docker, una tecnología en creciente desarrollo y adopción, ha revolucionado con un nuevo paradigma la forma en la que se desarrollan y se despliegan las aplicaciones de software.
Esta tecnología ha facilitado el desarrollo de microservicios, al encapsular ambientes y aplicaciones, junto con la promesa de correr en cualquier lugar y sin importar la plataforma.
En este meetup nos concentraremos en comprender qué es docker y su medio ambiente de ejecución; pasaremos por contenedores, compose y plataformas para alta disponibilidad con docker swarm.
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
En esta charla se pretenden tocar todas las cosas que debemos tener en cuenta para sacar el máximo rendimiento y poder escalar usando Symfony2.
Se toca desde parámetros de configuración de PHP y APC, optimización de Composer, dónde optimizar, quick wins varios, cómo hacer profiling correctamente, BBDD NoSQL vs SQL y por supuesto lecciones aprendidas en mis anteriores trabajos
Alta disponibilidad y balanceo de carga con Linux y nginxPlain Concepts
En esta sesión veremos como aprovisionar entornos Linux en alta disponibilidad y con balanceo de carga en Azure. Veremos como montar un servidor web nginx, desplegar una aplicación al mismo usando integración continua y gestionar las actualizaciones y despliegue de nuevas versiones de la aplicación sin interrupciones de servicio. Además veremos como escalar nuestro despligue en base a la demanda recibida.
Aparentemente, de la nada aparece Rust. Toda persona que lo toca, lo ama, y se convierte en un acólita y férrea defensora, pero ¿porque? ¿Porqué Facebook, AWS, Microsoft y todos los grandes se han metido en la Rust Foundation? En esta charla veremos qué es Rust, que aporta nuevo respecto al resto de lenguajes, y cuales son sus casos de uso más interesantes. También os contaremos porqué hemos elegido Rust como lenguaje de referencia para los desarrollos de software complejos, os enseñaremos cómo lo usamos y qué utilidades nos funcionan mejor. Lo tenemos claro. Este es el camino.
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
El seminario está dirigido a aquellos estudiantes, profesionales, universidades y empresas dedicados a la industria de software que deseen aprender sobre la iniciación de una aplicación Symfony. Se demostrá como descargar e instalar el framework, configuración inicial y conceptos necesarios para el desarrollo de una aplicación web simple.
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting
¿Por qué Python está buenísimo? por Yonatan Romero
Sobre el taller:
En este taller vamos a explorar características avanzadas de Python para conocer qué tanto podemos hacer. Es más que un “”Hola mundo””, no vamos a aprender cual es la diferencia entre un entero o una cadena. Vamos a ir un paso más allá: Iteradores, generadores, decoradores, asincronismo, multihilo, multiproceso, GIL (no los estoy insultando, ya va a ver) y algunas cositas más.
Sobre Yonatan:
Es programador Python desde hace 4 años y trabaja en Onapsis hace 1 año y medio. Además es docente en la Universidad Nacional de La Matanza. Fue administrador de redes y programador java.
Requerimientos:
Tener instalado Python 3. Conocimientos en programación.
Una breve historia de Flash y HTML5 sus ventajas y desventajas, una guía practica para entrar de lleno a cualquiera de estas tecnologías y saber cuando usar cual en nuestros contenidos interactivos.
Plática que dí en la Facultad de Ciencias, UNAM en 2009, en el marco del 70 aniversario de la facultad. Habla acerca del open build service, un servicio de SUSE para crear paquetes para SUSE y otras distribuciones.
An Evening with Agile lean design_thinkingArkhotech
"Nuestros equipos de tecnología están aprendiendo ágil. Nuestros equipos de productos están aprendiendo lean y nuestros equipos de diseño están aprendiendo design Thinking. ¿Cuál es la correcta?"
Daremos un enfoque pragmático para así entender la mejor forma de adoptar una estrategia clara e integral para nuestros productos digitales.
En la primera sesión de Microservicios vimos el origen de esta arquitectura, conceptos básicos, y discutimos sobre sus beneficios y diferencias con arquitecturas tradicionales y otras con algunos rasgos similares. Finalmente revisamos un pequeño ejemplo de funcionamiento con Eureka.
Ahora, en esta segunda sesión se analizará un proyecto de ejemplo utilizando diferentes devops que nos permitirán no sólo la implementación sino además ejemplos reales de escalimiento. Será una sesión donde nos pondremos el overol y nos ensuciaremos las manos. Es tiempo de programar!
Docker, una tecnología en creciente desarrollo y adopción, ha revolucionado con un nuevo paradigma la forma en la que se desarrollan y se despliegan las aplicaciones de software.
Esta tecnología ha facilitado el desarrollo de microservicios, al encapsular ambientes y aplicaciones, junto con la promesa de correr en cualquier lugar y sin importar la plataforma.
En este meetup nos concentraremos en comprender qué es docker y su medio ambiente de ejecución; pasaremos por contenedores, compose y plataformas para alta disponibilidad con docker swarm.
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
En esta charla se pretenden tocar todas las cosas que debemos tener en cuenta para sacar el máximo rendimiento y poder escalar usando Symfony2.
Se toca desde parámetros de configuración de PHP y APC, optimización de Composer, dónde optimizar, quick wins varios, cómo hacer profiling correctamente, BBDD NoSQL vs SQL y por supuesto lecciones aprendidas en mis anteriores trabajos
Alta disponibilidad y balanceo de carga con Linux y nginxPlain Concepts
En esta sesión veremos como aprovisionar entornos Linux en alta disponibilidad y con balanceo de carga en Azure. Veremos como montar un servidor web nginx, desplegar una aplicación al mismo usando integración continua y gestionar las actualizaciones y despliegue de nuevas versiones de la aplicación sin interrupciones de servicio. Además veremos como escalar nuestro despligue en base a la demanda recibida.
Aparentemente, de la nada aparece Rust. Toda persona que lo toca, lo ama, y se convierte en un acólita y férrea defensora, pero ¿porque? ¿Porqué Facebook, AWS, Microsoft y todos los grandes se han metido en la Rust Foundation? En esta charla veremos qué es Rust, que aporta nuevo respecto al resto de lenguajes, y cuales son sus casos de uso más interesantes. También os contaremos porqué hemos elegido Rust como lenguaje de referencia para los desarrollos de software complejos, os enseñaremos cómo lo usamos y qué utilidades nos funcionan mejor. Lo tenemos claro. Este es el camino.
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
El seminario está dirigido a aquellos estudiantes, profesionales, universidades y empresas dedicados a la industria de software que deseen aprender sobre la iniciación de una aplicación Symfony. Se demostrá como descargar e instalar el framework, configuración inicial y conceptos necesarios para el desarrollo de una aplicación web simple.
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting
¿Por qué Python está buenísimo? por Yonatan Romero
Sobre el taller:
En este taller vamos a explorar características avanzadas de Python para conocer qué tanto podemos hacer. Es más que un “”Hola mundo””, no vamos a aprender cual es la diferencia entre un entero o una cadena. Vamos a ir un paso más allá: Iteradores, generadores, decoradores, asincronismo, multihilo, multiproceso, GIL (no los estoy insultando, ya va a ver) y algunas cositas más.
Sobre Yonatan:
Es programador Python desde hace 4 años y trabaja en Onapsis hace 1 año y medio. Además es docente en la Universidad Nacional de La Matanza. Fue administrador de redes y programador java.
Requerimientos:
Tener instalado Python 3. Conocimientos en programación.
Una breve historia de Flash y HTML5 sus ventajas y desventajas, una guía practica para entrar de lleno a cualquiera de estas tecnologías y saber cuando usar cual en nuestros contenidos interactivos.
Plática que dí en la Facultad de Ciencias, UNAM en 2009, en el marco del 70 aniversario de la facultad. Habla acerca del open build service, un servicio de SUSE para crear paquetes para SUSE y otras distribuciones.
An Evening with Agile lean design_thinkingArkhotech
"Nuestros equipos de tecnología están aprendiendo ágil. Nuestros equipos de productos están aprendiendo lean y nuestros equipos de diseño están aprendiendo design Thinking. ¿Cuál es la correcta?"
Daremos un enfoque pragmático para así entender la mejor forma de adoptar una estrategia clara e integral para nuestros productos digitales.
En la primera sesión de Microservicios vimos el origen de esta arquitectura, conceptos básicos, y discutimos sobre sus beneficios y diferencias con arquitecturas tradicionales y otras con algunos rasgos similares. Finalmente revisamos un pequeño ejemplo de funcionamiento con Eureka.
Ahora, en esta segunda sesión se analizará un proyecto de ejemplo utilizando diferentes devops que nos permitirán no sólo la implementación sino además ejemplos reales de escalimiento. Será una sesión donde nos pondremos el overol y nos ensuciaremos las manos. Es tiempo de programar!
An evening with "Rework" - Reinventando nuestra forma de trabajarArkhotech
En esta sesión revisamos algunas reflexiones sobre la lectura del libro "Rework" de 37signals, compañía creadora del framework Ruby on Rails y del software de gestión de proyectos Basecamp.
La motivación es reinventar la forma de trabajar por lo que en algunos contextos se consideraría una anti-forma de trabajo;
Su contraportada resume en gran parte su línea editorial:
- ASAP is poison
- UNDERDO the competition
- Meetings are TOXIC
- Fire the WORKAHOLICS
- Emulate DRUG Dealers
- Pick a FIGHT
- Planning is GUESSING
- Inspiration is PERISHABLE
An evening with... Microservices - Session 1Arkhotech
Si bien la tecnología de microservicios tiene ya un par de años, su uso más formal con implementaciones importantes en ambientes productivos es bastante reciente. En este meetup se hará un introducción mundo de los microservicios comenzando por los aspectos más teóricos, pasando por la descripción de arquitectura y buenas prácticas, para finalizar con un ejemplo práctico de implementación y un primer acercamiento al escalamiento.
Scrum es un framework que permite entregar el máximo valor, mediante iteraciones cortas y de gran colaboración. Scrum permite adaptar los equipos a las condiciones complejas de la construcción de productos y del entorno.
En este meetup revisamos lo que SCRUM consiste como marco de trabajo, sumado a nuestra experiencia en el desarrollo de proyectos de software y el por qué consideramos es tan importante hoy en día en el mercado
Liquibase es un librería Open Source basada en Java, que independiente del motor de base de datos, permite hacer un seguimiento centralizado a los constantes cambios que sufren los modelos de datos (sobre todo en la etapa de desarrollo) y facilitan la vida cuando tenemos múltiples ambientes de trabajo (Producción, pre-producción, desarrollo, QA, ...).
En este meetup revisamos desde la teoría a la práctica, desarrollando algunos ejemplos con diferentes niveles de complejidad.
Además revisamos cómo un equipo de desarrollo se puede ver beneficiado con el uso de esta herramienta y cómo es posible integrar su uso a procesos de integración continua.
DevOps es un conjunto de prácticas que automatizan los procesos entre el desarrollo de software y los equipos de infraestructura, de manera que el software pueda ser construido, probado y puesto en producción más rápidamente y con la misma confiabilidad.
El concepto de DevOps esta fundamentado en la construcción de una cultura de colaboración entre equipos que históricamente son silos. Los beneficios aparentes incluyen confianza mutua, más rápidos ciclos de puesta en producción, habilidad para resolución de incidentes más rápidamente y mejor adaptación a los cambios.
En esta sesión revisamos conceptos clave de DevOps, el estado del arte y algunas de las tecnologías involucradas.
An evening with ... Ionic Framework Meetup Arkhotech
Ionic es un framework de desarrollo híbrido móvil de amplio uso en la industria. Entre sus principales características se destacan el desempeño, integración con AngularJS, similitud de interfaces finales con las nativas y el soporte a integración de hardware vía Apache Cordova.
En este meetup usamos un proyecto real Ionic creado para uno de nuestros clientes, para analizar todo el proceso de construcción (de más de 3 meses), conociendo las principales características de la implementación y todos las experiencias que enfrentamos en este reto de equipo. Revisaremos todo lo que hicimos: la estructura de equipo, tecnologías, método de trabajo, obstáculos, etc. compartiendo con los asistentes el caso de éxito de una experiencia real.
El objetivo de la gestión de procesos de negocio (BPM, Business Process Management por sus siglas en inglés), es mejorar su desempeño (eficiencia y eficacia) y optimizacion dentro de una organización. Para esto, los procesos deben ser diseñados, modelados, organizados, documentados y modularizados de forma continua, permitiendo determinar puntos de fallo y acelerando la automatización para la reducción de los riesgos.
Para el logro exitoso de este enfoque en una organización, es necesario llevar a cabo un gran cambio, migrando desde una operación funcional a una operación gestionada por procesos. Esta nueva operación, debe contar con el soporte de un conjunto de herramientas para cumplir con el ciclo de vida de BPM, éstas son comunmente llamadas Business Process Management Software (BPMS).
En este meetup, analizamos las funcionalidades Jboss BPM Suite de Redhat, y mostramos con un demo simple, como se comporta en la realidad, desde la definición de un proceso hasta la interacción con el usuario final.
An evening with... Continuous Integration and Bamboo intro MeetupArkhotech
Si bien en la actualidad existen variadas técnicas y metodologías que permiten agilizar el desarrollo de aplicaciones, aún hay procesos dentro del ciclo de desarrollo que significan no sólo una enorme inversión de tiempo (que crece exponencialmente según el tamaño del proyecto) sino que tienden a ir en desmedro de la calidad producto, a pesar de la buena intención de los equipos de desarrollo de avanzar lo más rápido posible.
El proceso de integración continua pretende precisamente atacar esta problemática mediante la automatización de las tareas de despliegue y pruebas, lo que permitirá no sólo disminuir los retrasos (entiéndase también H/H) resultantes entre despliegue y despliegue sino que permitirá también realizar de forma inmediata y "sin esfuerzo" las pruebas necesarias para mantener la calidad de nuestro software.
En este meetup pretendemos dar una visión global del concepto de Integración Contínua CI y el uso de algunas herramientas que nos ayudarán a comenzar en este mundo.
Los marcos de trabajo ágiles como Scrum y Kanban, son de uso ampliamente conocido en la industria del desarrollo. Para gran parte de nosotros, no es desconocido el tradicional ciclo incremental y de retroalimentación continua de Scrum y la forma en que el trabajo es completado, por un equipo con objetivos comunes en un Sprint.
No obstante, menos conocido es el hecho del conocimiento y uso de métricas ágiles, en apoyo a la retroalimentación objetiva. Las métricas de agile permiten a los equipos construir hábitos de mejoramiento continuo, ayudan a visualizar el trabajo y la efectividad, y facilitan la identificación de debilidades, mediante el monitoreo de la experimentación.
Las métricas no deben ser usadas en reemplazo de la comunicación directa y continua: son más bien usadas para iniciar una conversación. Las mediciones objetivas ayudan a los equipos a tomar decisiones correctivas, para alinearse mejor a los objetivos y crear un ecosistema de crecimiento, más adecuado para el proyecto y equipo. Las métricas son de especial importancia en equipos y organizaciones, que inician una transición a métodos ágiles, pues proporcionan información objetiva y concreta, respecto de las iniciativas.
En esta presentación, conoceremos acerca de las métricas ágiles como Velocity, Feature Progression, Backlog Health, etc., estableciendo su propósito, forma de medición, aspecto de proyecto que retroalimentan y la forma en que apoyan a la creación de un equipo verdaderamente ágil.
Big Data es un concepto que hace referencia a un gran conjunto datos complejos, de formato heterogéneos y que donde las aplicaciones y mecanismos tradicionales de procesamiento no resultan ser los más adecuados para procesarlos. Los desafíos dentro del Big Data incluyen el análisis, la captura, la transformación de datos, búsqueda, intercambio, almacenamiento, transferencia, visualización y privacidad de la información.
Inmerso en este nuevo ecosistema de datos de gran tamaño y sin formato, se encuentra Apache Hadoop, un framework de Software desarrollado en un principio por Yahoo, y que ha sido y está siendo el standard de la industria para el procesamiento masivo de datos dentro de un cluster de computadores.
En el presente meetup realizamos una breve descripción de la arquitectura de este framwork y cómo Hadoop puede integrarse con otras diferentes soluciones empresariales. A su vez revisamos como grandes empresas tecnológicas han visto y apostado por Apache Hadoop como una herramienta para construcción de soluciones y procesamiento de datos en entornos de Big Data.
Polymer fue anunciado por Google y nació con el propósito de permitir trabajar a los desarrolladores con web components así como con las low-level APIs (HTML imports, shadow DOM, HTML templates y custom elements) antes de que estas funcionalidades estuvieran soportadas por los navegadores.
La idea era facilitar el trabajo con web components dentro de un sólido entorno de desarrollo. En este meetup revisamos estos estándares, en donde Polymer simplifica y acelera la creación de cualquier elemento, desde un botón a una aplicación completa en desktop y en móvil.
La personalización en internet permite crear experiencias consistentes, únicas y relevantes para los usuarios. Esta estrategia, desempeña un papel fundamental en contextos de negocio como e-commerce (por ejemplo en retails, telecomunicaciones, etc.), en el cual las experiencias personalizadas, tienen mayor probabilidad de aumentar la conversión. Oracle Endeca Guided Search, un motor de indexación y búsqueda word-class, proporciona características asociadas a la personalización y la facilidad de búsqueda de contenido por múltiples factores y características. Oracle Endeca Experience Manager, permite definir reglas de negocio para personalización del comportamiento de un sitio. Ambas herramientas partes de la suite de Oracle Customer Experience, representan un rol crítico en el logro de iniciativas de negocio en internet.
En este meetup, dimos un vistazo a las principales características de estos dos productos, compartiendo información técnica y analizando oportunidades de negocio. Finalmente, revisamos un demo funcional de las dos suites, analizando en la práctica las características más relevantes de estos productos.
As more of the world goes online, including the physical world, the more opportunity there is for enterprises (and consumers) to use data in new ways. The “Third Platform” of the digital age, a platform built upon a foundation of cloud computing, mobility, social networking, and big data.
The need to analyze and handle data in new an improved ways, the NoSQL databases are now here. Characterized by not using the relational model, running well on clusters and using schema-less technologies, they are built for the 21st century.
In this presentation we explore basic concepts for different kinds of NoSQL Databases (Wide column, Document, Graph and Key-Value store) and we explore MongoDB, a leading Document base NoSQL implementation.
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
En esta charla, nos sumergiremos en los desafíos emergentes que la inteligencia artificial (IA) y los Large Language Models (LLMs) traen al mundo de la calidad del software y el testing. Exploraremos cómo la integración, uso o diseño de modelos de IA plantean nuevos retos, incluyendo la calidad de datos y detección de sesgos, sumando la complejidad de probar algo no determinístico. Revisaremos algunas propuestas que se están llevando adelante para ajustar nuestras tareas de testing al desarrollo de este tipo de sistemas, incluyendo enfoques de pruebas automatizadas y observabilidad.
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
2. ARKHO Innova
Meetup series
Gracias por su asistencia!!!
• Un espacio para compartir experiencias y conocimiento
• Un espacio para hacer relaciones entre personas y
equipos con intereses afines
• Un espacio para pasarla bien
4. Historia
• 2006: Graydon Hoare empieza escribir Rust como side-project
• 2009: Mozilla se involucra en el proyecto
• 2010: Mozilla lo anuncia
• 2011: Rust se auto-compila con éxito
• 2015: Primera versión estable
• 2017: Rust 1.20
16. Algunas características
• Type Inference
• Immutability by default
• Private by default
• Strings UTF8 by default
• Short key words
• Snake case
• Generics
• Traits
• Macros
• Annotations
• Matching Patterns
19. No hay NULL
•Option<T>
•Result<R, E>
I call it my billion-dollar mistake. At that time, I was designing the first comprehensive type
system for references in an object-oriented language. My goal was to ensure that all use of
references should be absolutely safe, with checking performed automatically by the compiler.
But I couldn't resist the temptation to put in a null reference, simply because it was so easy to
implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have
probably caused a billion dollars of pain and damage in the last forty years.
Tony Hoare, the inventor of null
Pero,
Existen:
23. Ownership & Borrowing
• Como Rust maneja la memoria
• Es lo que hace Rust difícil al principio
• Es lo que lo hace rápido y seguro (incluyendo thread safe)
• Requiere entender como funciona la memoria en un programa (Stack / Heap)
• Ownership
• Cada valor en Rust tiene una variable llamado su dueño (owner)
• Solo puede tener un dueño al mismo tiempo
• Cuando el dueño sale del scope, su valor esta suprimida
• Borrowing
• Cuando se pasa por referencia un valor, se llama prestar (borrow)
• Una nueva familia de errores de compilación
• Fallar al compilar > Fallar al ejecutar
28. ¿Con ganas de más?
• Source code Demo
• rest-in-rust - Rest API in Rust with Iron
https://github.com/arkhotech/rest-in-rust
• tokio-echo - Tokio Echo Server in Rust
https://github.com/arkhotech/tokio-echo
• Contribute to micropoc development by creating an account on GitHub.
https://github.com/arkhotech/micropoc/tree/master/OrderService