Hablaremos del modelo de pertenencia que Rust ofrece y por qué es una de las aportaciones más importantes que un lenguaje ha ofrecido recientemente. Rust promete un nivel de desempeño similar o mejor a C o C++, pero con las abstracciones de alto nivel a las que uno esta acostumbrado en lenguajes como Java o Ruby.
esión presentada por Norberto Ortigoza en SG Next 2017
Apresentação do Algoritmo Minimax e Corte Alfa-Beta, apresentado na Disciplina de Inteligência Artificial, no Programa de Pós-Graduação em Computação da Universidade Federal do Amazonas.
Apresentação do Algoritmo Minimax e Corte Alfa-Beta, apresentado na Disciplina de Inteligência Artificial, no Programa de Pós-Graduação em Computação da Universidade Federal do Amazonas.
Presentacion acerca de los temas de administración de memoria, administración de la memoria sin intercambio o paginación, Mono programación sin intercambio o paginación, Multiprogramación y uso de la memoria, Multiprogramación con particiones fijas, etc.
La familia x86 utiliza la arquitectura de Von Newman.
En este diseño se buscaba la comunicación entre todos los bloques que lo integran, de esta manera se pueden enviar y recibir datos tanto de la memoria como de los dispositivos de I/O
Microcontroladores(Definición, Características, Arquitecturas, Elementos del Microcontrolador, Memoria-Interrupciones, Resumen, Summary, Recomendaciones, Conclusiones, Apreciación del equipo, Glosario de términos, Bibliografía)
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.
Presentacion acerca de los temas de administración de memoria, administración de la memoria sin intercambio o paginación, Mono programación sin intercambio o paginación, Multiprogramación y uso de la memoria, Multiprogramación con particiones fijas, etc.
La familia x86 utiliza la arquitectura de Von Newman.
En este diseño se buscaba la comunicación entre todos los bloques que lo integran, de esta manera se pueden enviar y recibir datos tanto de la memoria como de los dispositivos de I/O
Microcontroladores(Definición, Características, Arquitecturas, Elementos del Microcontrolador, Memoria-Interrupciones, Resumen, Summary, Recomendaciones, Conclusiones, Apreciación del equipo, Glosario de términos, Bibliografía)
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.
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
Llevas unos meses dándole vueltas a subir ese parche que has hecho de jquery para corregir ese bug que te tenía loco. O crear ese proyecto en github para subir esa super tarea gulp que tanto os ha ayudado en el proyecto. Sí, te gustaría hacerlo pero no tienes ni idea de por dónde empezar: travis, pull-request, hooks, CI, gerrit, rebases, squashing, semantic versioning... ¿qué es todo eso y para qué sirve?. En esta charla hablaremos de qué herramientas aporta git y github para facilitar esta tarea, cómo podemos organizar nuestros repositorios y flujos de trabajo y os daremos las pautas para que podáis empezar a sacarle el máximo partido a los repositorios de código distribuido.
Estas diapositivas corresponden a la charla que se dio en madrid el 26/10/2015 en un meetup conjunto entre los grupos de HTML5 Spain y Spanish git Meetup.
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]RootedCON
Taller introductorio a la explotación de software GNU/Linux. Se explicarán diversos tipos de vulnerabilidades (corrupciones de memoria, fugas de información, condiciones de carrera, etc...) siguiendo metodologías actuales del desarrollo de exploits donde se sortearán las protecciones del sistema operativo.
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.
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
La utilización de estructuras de datos adecuadas para cada problema hace que se simplifiquen en gran medida los tiempos de respuestas y la cantidad de cómputo realizada.
Por Nelson González
Onboarding new members into an engineering team is not easy on anyone. In a short period of time, the new team member is required to be able to bring professional
Por Victoriya Kalmanovich
El secreto para ser un desarrollador SeniorSoftware Guru
En esta charla platicaremos sobre el “secreto” y el camino para llegar a ser un desarrollador Senior, experiencia, consejos y recomendaciones que en estos 8 años
Por René Sandoval
Apache Airflow es una plataforma en la que podemos crear flujos de datos de manera programática, planificarlos y monitorear de manera centralizada.
Por Yesi Díaz
How thick data can improve big data analysis for business:Software Guru
En esta presentación hablaré sobre cómo el Análisis de Datos Gruesos, específicamente el análisis antropológico y semiótico, puede ayudar a mejorar los resultados del Big Data
Por Martin Cuitzeo
CoDi® es la nueva forma de realizar pagos digitales desarrollada por el Banco de México. Por medio de CoDi puedes realizar cobros y pagos desde tu celular, utilizando una cuenta bancaria o de alguna institución financiera, sin comisiones.
Por Cristian Jaramillo
Gestionando la felicidad de los equipos con Management 3.0Software Guru
En las metodologías agiles hablamos de equipos colaborativos, autogestionados y felices. hablamos de lideres serviciales. El management 3.0 nos ayuda a cultivar el mindset correcto, aquel que servirá como el terreno fértil para que la agilidad florezca.
Por Andrea Vélez Cárdenas
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
Hoy por hoy las experiences de usuario pueden ser enriquecidas mediante el uso de Web Components, que son un estándar de la W3C soportado por la mayoría de los navegadores web modernos.
Por Alex Arriaga
Así publicamos las apps de Spotify sin stressSoftware Guru
En Spotify tenemos 1600+ ingenieros, trabajando en 280+ squads. Aún a esta escala, hemos logrado adoptar prácticas que nos han permitido acelerar la forma en que desarrollamos nuestro producto. Presentado por Erick Camacho en SG Virtual Conference 2020
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
he measure of the executive, Peter F. Drucker reminds us, is the ability to "get the right things done." This involves having clarity on what are the right things as well as avoiding what is unproductive. Intelligence, creativity, and knowledge may all be wasted if not put to work on the things that matter.
Presentado por Cristina Nistor en SG Virtual Conference 2020
Acciones de comunidades tech en tiempos del Covid19Software Guru
Acciones de Comunidades Tech en tiempo del COVID-19 es una platica para informar acerca de las acciones que están realizando algunas comunidades de tecnología en México para luchar contra la propagación del COVID-19. Desde análisis de datos, visualizaciones, simulaciones de contagio, etc.
Presentado por Juana Martínez, Adriana Vallejo y Eduardo Ramírez en SG Virtual Conference 2020
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
La charla presenta un modelo claro, generado por la ponente, para atender los niveles desde lo operativo a lo estratégico.
Presentado por Gabriela Salinas en SG Virtual Conference
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
8. Tracing Garbage Collectors
(invented by John McCarthy in 1958)
•Algoritmos:
•Mark &Sweep
•Tri-color
•Tipos de Colectores:
•Boehm–Demers–Weiser
•Generacionales
•Incrementales, concurrentes y stop-the-world
•Casos de uso
•Enterprise systems
11. Comparación
Características
Manual
Reference
Counting
Garbage Collector
Smart pointer con
RAII
Velocidad de ejecución
Excelente con
optimización
Muy Buena
Muy buena con
algunas excepciones
Excelente
Consumo de memoria
Poca con
optimización
Poca Regular Poca
Facilidad de uso Complejo
Regular (Ciclos de
retención)
Fácil Regular
Determinístico/
predecible
Si/Si Si/Si Depende/No Si/Si
Runtime o compile-
time
NA
Compile con algo
manual
Runtime Compile
Manejo de recursos No No No Si
Latencia Constante Constante Variable Constante
14. – Rust Team
“Rust wants safe (not vulnerabilities) memory
and resource management without garbage
collection”
15. Rust
características
•Tipado estático con inferencia de tipos.
•No clases. :-)
•Pattern matching.
•Funciones de grado superior.
•Modelo de concurrencia basado en canales.
•Inmutable.
16. Rust
características
•En Rust, como en otros lenguajes con colector de basura, no tienes que liberar de
forma explicita la memoria.
•En Rust, a diferencia de lenguajes con colectores de basura, no necesitas cerrar o
liberar recursos como archivos, sockets y locks.
•Rust logra estos dos puntos sin costos en tiempo de ejecución (colector de basura
o conteo de referencias), y sin sacrificar seguridad.
17. Rust
ownership
•El scope se hace dueño del recurso o memoria.
•Al terminar el scope el recurso o memoria se libera.
•Se puede transferir la propiedad de un recurso o memoria a otra función.
18. Rust
Ejemplo
fn main() {
let s1 = String::from("hello");
let len = calculate_length(s1);
println!("The length of '{}' is {}.", s1, len);
}
fn calculate_length(s: String) -> usize {
s.len()
}
¡Error!
22. Rust
Resumen
•En cualquier momento, puedes tener cualquiera de estas opciones pero no ambas:
•Una referencia mutable.
•Cualquier número de referencias no mutables.
•Las referencias siempre son validas.
23. Comparación
Tipos de manejo de memoria
Manual
Reference
Counting
Garbage
Collector
Ownership
Smart pointer /
RAII
Velocidad de
ejecución
Excelente con
optimización
Buena
Muy buena con
casos especiales
Excelente Excelente
Consumo de
memoria
Poca con
optimización
Poca Regular Poca Poca
Facilidad de uso Complejo
Regular (Ciclos de
retención)
Fácil Regular/Fácil Regular
Determinístico/
predecible
Si/Si Si/Si Depende/No Si/Si Si/Si
Runtime o
compile-time
NA
Compile con algo
manual
Runtime Compile Compile
Manejo de
recursos
No No No Si Si
Latencia Constante Constante Variable Constante Constante
25. Conclusiones
• Siempre debes pensar en tu consumo de
memoria.
• Conoce que estrategia emplea tu lenguaje de
programación.
• Manejo automático de memoria no es igual a no
preocuparse por como tu programa la usa.
• GC son MUY rápidos.
• GC son muy buenos eliminando grupos de
objetos.
26. Conclusiones
• Rust es una alternativa viable para tener control
sobre el uso de memoria y el mecanismo para
administrarla.
• Rust es extremadamente rapido.
• Si tienes un problema donde C o C++ sea la
opción, evaluar mejor usar Rust :-)
• Rust es estable y en fase de creación de
bibliotecas :-)