Este documento presenta una charla sobre el desarrollo de aplicaciones web en Python con pruebas. La presentadora es Tati Al-Chueyr, ingeniera de software en Globo.com. La charla cubre conceptos como desarrollo guiado por pruebas, pruebas de comportamiento, y herramientas para pruebas como Lettuce, Splinter y Nose. También incluye ejemplos de cómo escribir pruebas para funciones de conversión de temperatura y respuestas a preguntas.
Este documento resume Python en Android y la herramienta Scripting Layer for Android (SL4A). SL4A permite ejecutar lenguajes de scripting como Python, PHP y otros en dispositivos Android. Explica cómo instalar e interpretar Python en Android, y proporciona varios ejemplos de uso como interfaces gráficas, notificaciones, entrada de datos y más.
En el siguiente tutorial en Español veremos como crear gráficas al estilo de MATLAB, desde lo más básico como editar el estilo de nuestras gráficas hasta crear animaciones, crear graficos 3D e incluso crear interfaces de usuario (UI) para crear verdaderas aplicaciones interactivas.
SciPy and NumPy are Python packages that provide scientific computing capabilities. NumPy provides multidimensional array objects and fast linear algebra functions. SciPy builds on NumPy and adds modules for optimization, integration, signal and image processing, and more. Together, NumPy and SciPy give Python powerful data analysis and visualization capabilities. The community contributes to both projects to expand their functionality. Memory mapped arrays in NumPy allow working with large datasets that exceed system memory.
Python para desarrollo web de ultima generaciónFutura Networks
Python se ha convertido en la actualidad en uno de los lenguajes favoritos en entornos Linux dado su dinamismo y la creciente cantidad de frameworks para desarrollo de altísima calidad. En esta charla se mostraran las alternativas para desarrollo web usando Python y como poder aprovechar las alternativas existentes para aplicaciones Web 2.0.
Este programa en Basic muestra la equivalencia entre números decimales, binarios y hexadecimales.
En las líneas 10 y 30 se asignan valores a las variables x1, x2, x3 y y1, y2, y3.
En la línea 10:
- x1 toma el valor hexadecimal 0001 que equivale a 1 en decimal
- x2 toma directamente el valor decimal 1
- x3 toma el valor binario 0001 que también equivale a 1
En la línea 30:
- y1 toma el valor hexadecimal 000A que equivale a 10 en decimal
- y2 toma directamente el valor
Este documento resume Python en Android y la herramienta Scripting Layer for Android (SL4A). SL4A permite ejecutar lenguajes de scripting como Python, PHP y otros en dispositivos Android. Explica cómo instalar e interpretar Python en Android, y proporciona varios ejemplos de uso como interfaces gráficas, notificaciones, entrada de datos y más.
En el siguiente tutorial en Español veremos como crear gráficas al estilo de MATLAB, desde lo más básico como editar el estilo de nuestras gráficas hasta crear animaciones, crear graficos 3D e incluso crear interfaces de usuario (UI) para crear verdaderas aplicaciones interactivas.
SciPy and NumPy are Python packages that provide scientific computing capabilities. NumPy provides multidimensional array objects and fast linear algebra functions. SciPy builds on NumPy and adds modules for optimization, integration, signal and image processing, and more. Together, NumPy and SciPy give Python powerful data analysis and visualization capabilities. The community contributes to both projects to expand their functionality. Memory mapped arrays in NumPy allow working with large datasets that exceed system memory.
Python para desarrollo web de ultima generaciónFutura Networks
Python se ha convertido en la actualidad en uno de los lenguajes favoritos en entornos Linux dado su dinamismo y la creciente cantidad de frameworks para desarrollo de altísima calidad. En esta charla se mostraran las alternativas para desarrollo web usando Python y como poder aprovechar las alternativas existentes para aplicaciones Web 2.0.
Este programa en Basic muestra la equivalencia entre números decimales, binarios y hexadecimales.
En las líneas 10 y 30 se asignan valores a las variables x1, x2, x3 y y1, y2, y3.
En la línea 10:
- x1 toma el valor hexadecimal 0001 que equivale a 1 en decimal
- x2 toma directamente el valor decimal 1
- x3 toma el valor binario 0001 que también equivale a 1
En la línea 30:
- y1 toma el valor hexadecimal 000A que equivale a 10 en decimal
- y2 toma directamente el valor
Este documento resume la historia y el estado actual de los principales proyectos científicos de Python como NumPy, SciPy y matplotlib. Explica cómo estos proyectos se originaron para abordar las limitaciones de herramientas como MATLAB y Fortran, y cómo han evolucionado para convertirse en las herramientas líderes para el cálculo científico y la visualización con Python. También discute los desafíos futuros de la migración a Python 3 y la contribución de código para mantener el crecimiento del ecosistema.
El documento presenta una plantilla para el proyecto final que incluye las etapas de prototipado y evaluación. En el prototipado se describe brevemente la solución propuesta, que incluye sensores y actuadores. En la evaluación se registran 3 problemas encontrados durante el desarrollo y sus soluciones correspondientes.
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
Una breve descripcion de python, la POO y su uso en ingenieria. Esta presentacion minimiza un curso de 4 meses en una sola clase.
A brief description of python and the OOP for engineering applications, it minimized a course of python from 4 months to just one class. From Corrientes to the world
El documento presenta una plantilla para el proyecto final de implementación de un prototipo interactivo controlado por Arduino. Incluye secciones para describir la solución propuesta, los componentes electrónicos y requisitos de programación, así como para evaluar problemas y soluciones encontradas durante el desarrollo del prototipo. Como ejemplo se propone un sistema de alarma para baños de personas con discapacidad que incluya botón, sensor ultrasónico, LCD, piezo y LED controlados por Arduino.
Analysis of time windows to detect botnets behavioursJaime Restrepo
Julio Cesar Gaviria Jaramillo nos compartió en el #DragonJARCON 2020 una charla titulada "Analysis of Time Windows to detect Botnet’s Behaviour" cuya descripción es:
Las Botnet hoy en día son estructuras comúnmente utilizadas por cibercriminales con el fin de generar ataques de distinta índole. Realizamos una investigación con el fin de detectar patrones de comportamiento entre los servidores de C\u0026C y un host infectado utilizando distintos modelos de ML.","description":"La primera fase fue la adquisición de datos, donde utilizamos un proyecto llamado Stratosphere Lab creado por el investigador Sebastia Garcia para realizar su tesis de doctorado sobre detección de Botnets. Se utilizaron diferentes muestras de benignas y malignas provistas por ellos mas unas muestras benignas generadas por nosotros.
Realizamos el montaje del laboratorio de investigación, bajo una distribución Ubuntu, con el fin de pasar los archivos .pcaps a una serie de ventanas de tiempo para su posterior análisis. Se realizo un contraste entre el enfoque que se iba a utilizar, siendo este desde Netflows o desde Ventanas de tiempo. Debido a la complejidad de los Netflows, decidimos trabajar con las ventanas de tiempo, para lo cual realizamos 4 experimentos. Los experimentos fueron analizados y testeados con diferentes tipos de variables creadas por nosotros mismos en la investigación y otras usando las provistas por la utilidad de nfdump, pero variando la cantidad y el tipo de datos benignos y malignos con los cuales íbamos a realizar el entrenamiento y el testing.
Obtuvimos un excelente desempeño en los últimos 2 experimentos, donde pudimos evidenciar que la cantidad de VP y VN alcanzaba el 99% de exactitud. Por ultimo pudimos evidenciar comportamientos particulares de la comunicación C\u0026C y el host infectado, donde existen claras diferencias entre los protocolos y puertos utilizados por los botmaster y las comunicaciones benignas. Nuestro siguiente paso es desarollar una herramienta que permita a un host verificar si es o no un zombie, donde esté sera notificado via correo electronico si llega a ser un positivo para infectado!
-----------------------------------------------------------------------------------------------
Youtube: DragonJARtv (http://bit.ly/DragonJARtv)
Facebook: La.Comunidad.DragonJAR (http://bit.ly/DragonJARfb)
Twitter: @DragonJAR (http://bit.ly/DragonJARt)
Instagram: Dragon.JAR (http://bit.ly/DragonJARig)
Discord: https://invite.gg/DragonJAR
Blog: Comunidad DragonJAR (http://bit.ly/DragonJAR)
-----------------------------------------------------------------------------------------------
Usando Twisted para hacer aplicaciones de escritorio no bloqueantesMartín Volpe
Uno de los principales problemas al momento de crear aplicaciones de escritorio es el manejo del flujo de ejecución. Este problema se complica considerablemente al tener que ejecutar funciones bloqueantes. Twisted, a pesar de estar diseñado para networking, tiene una serie de herramientas para el maenjo ascincrónico del flujo facilmente adaptables a los Toolkits gráficos mas populares.
Este documento compara los tiempos de ejecución de código en Python, C y PyPy para diferentes tipos de cálculos numéricos y operaciones de procesamiento de texto. Los autores realizaron experimentos multiplicando números, matrices y tokens de texto de Shakespeare para medir el rendimiento en cada lenguaje. Encontraron que C es más rápido que Python, especialmente para cálculos intensivos donde el procesador puede optimizarse. Sin embargo, Python puede ser tan rápido como C si se optimiza el código para minimizar el uso de memoria dinámica. PyPy generalmente
El documento presenta un proyecto final de implementación de un prototipo interactivo de una cámara de vigilancia. El prototipo consta de un sensor de distancia, una luz LED, un piezo y una pantalla LCD que muestran la palabra "Alerta" cuando el sensor detecta movimiento. El documento describe el funcionamiento esperado y las tareas de cada componente, así como los pasos de prototipado y evaluación realizados para mejorar el diseño.
Este documento presenta información sobre lógica de programación. Cubre temas como algoritmos orientados a datos, estructuras de control selectivas y repetitivas, y diagramas de flujo. Incluye ejemplos y preguntas de práctica sobre estas temáticas.
ab on
ab onfor 200
ab rd
ab onfor 200
ab off
Comparte con tu grupo los resultados obtenidos y las mejoras que se pueden realizar. No olvides entregar el informe correspondiente al final de la sesión.
Recuerda que el desafío es programar rutinas que permitan al robot avanzar en línea recta y realizar otras trayectorias.
Este documento describe un proyecto final de implementación de un prototipo interactivo con Arduino. Incluye las secciones de prototipar, evaluar y conclusiones. El prototipo consiste en un sistema de seguridad para el portón de una casa controlado con Arduino, sensores y actuadores. Algunos problemas encontrados durante el desarrollo fueron la sensibilidad del sensor de distancia y limitaciones en el giro del servo motor, los cuales fueron resueltos. El proceso permitió desarrollar habilidades en programación y favoreció el aprendizaje.
Programación Python para Zombis (charla relámpago)Mariano Reingart
Propuesta de cursos masivos abiertos en linea (MOOC), basado en la iniciativa "Python para Zumbis" (Fernando Masanori, SP, BR)
Trabajo académico (taller tecnología educativa / educación a distancia) y cuestiones técnicas de implementación (laboratorio virtual de programación, cuestionarios -quiz-, arquitectura moodle vs edX, traducción y adaptación de materiales, etc.)
Presentada en PyCon Argentina 2015
Documento: http://bit.ly/pyzombis
El documento presenta una plantilla para documentar el proceso de implementación de un prototipo interactivo controlado por Arduino. Incluye secciones para documentar los requisitos, componentes electrónicos, programación y una prueba y evaluación inicial. El estudiante debe completar la plantilla describiendo un prototipo que simula una cuna de bebé activada por sensores ultrasónicos.
Este documento presenta una guía para la enseñanza de programación en Dev C++. Explica conceptos básicos como variables, estructuras de control, funciones y bibliotecas. Incluye ejemplos de código y ejercicios prácticos individuales y grupales para calcular áreas, velocidades y cambio de monedas usando este lenguaje de programación.
Transparencias de la charla con la que participamos en las III Jornadas de Java de Alicante.
En las transparencias se muestran algunas herramientas para implantar metodologías ágiles en Java y se comentan algunas anécdotas e historias de diferentes implantaciones.
Los autores compararon el rendimiento de Python frente a C en diversas tareas como multiplicar números, procesar grandes cantidades de datos y manipular matrices. Concluyeron que C es más rápido que Python cuando se aprovechan al máximo las capacidades del procesador y se minimiza el uso de memoria dinámica. Sin embargo, Python puede ser tan rápido como C si se optimizan los algoritmos para tales tareas y no se fuerza aprovechar al máximo el hardware. La optimización prematura no siempre justifica el mayor esfuerzo de programación en C.
La segunda etapa del proyecto final contempla prototipar y evaluar una solución al problema planteado. El estudiante propone un prototipo interactivo para controlar la temperatura en una huerta escolar mediante sensores de temperatura y luz y actuadores como LEDs y bocinas. El prototipo controlaría artificialmente la luz y temperatura si la temperatura es menor a 30 grados para prevenir humedad y plagas. El estudiante enfrentó problemas como el reconocimiento de la tarjeta y conexión de sensores que logró resolver.
Clase 2 - Introducción a la programación con Python I.pptxjgs07
Este documento presenta la introducción a la programación con Python. Se detalla el temario de la clase que incluye nociones básicas de Pandas, operaciones en Pandas y prácticas integradoras. También se explican los objetivos de aprender las distintas formas de desarrollo con Python e introducirse al lenguaje de programación Python.
Este documento describe la segunda etapa de implementación de un proyecto final, la cual incluye las fases de prototipado y evaluación. En la fase de prototipado, se explica que el prototipo debe incluir al menos 2 sensores y 2 actuadores controlados por una placa Circuit Playground. En la fase de evaluación, se pide registrar 3 problemas encontrados durante el desarrollo y sus soluciones, así como conclusiones aprendidas.
Talk given at the London AICamp meet up on the 13 July 2023. It's an introduction on building open-source ChatGPT-like chat bots and some of the considerations to have while training/tuning them using Airflow.
The document discusses contributing to the Apache Airflow project. It provides an overview of the author's experience contributing to Airflow, including submitting pull requests and participating in the community. The author encourages others to get involved by asking questions, sharing experiences, updating documentation, contributing code, attending or organizing events, and joining the Airflow community on Slack and GitHub.
Más contenido relacionado
Similar a Desarollando aplicaciones web en python con pruebas
Este documento resume la historia y el estado actual de los principales proyectos científicos de Python como NumPy, SciPy y matplotlib. Explica cómo estos proyectos se originaron para abordar las limitaciones de herramientas como MATLAB y Fortran, y cómo han evolucionado para convertirse en las herramientas líderes para el cálculo científico y la visualización con Python. También discute los desafíos futuros de la migración a Python 3 y la contribución de código para mantener el crecimiento del ecosistema.
El documento presenta una plantilla para el proyecto final que incluye las etapas de prototipado y evaluación. En el prototipado se describe brevemente la solución propuesta, que incluye sensores y actuadores. En la evaluación se registran 3 problemas encontrados durante el desarrollo y sus soluciones correspondientes.
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
Una breve descripcion de python, la POO y su uso en ingenieria. Esta presentacion minimiza un curso de 4 meses en una sola clase.
A brief description of python and the OOP for engineering applications, it minimized a course of python from 4 months to just one class. From Corrientes to the world
El documento presenta una plantilla para el proyecto final de implementación de un prototipo interactivo controlado por Arduino. Incluye secciones para describir la solución propuesta, los componentes electrónicos y requisitos de programación, así como para evaluar problemas y soluciones encontradas durante el desarrollo del prototipo. Como ejemplo se propone un sistema de alarma para baños de personas con discapacidad que incluya botón, sensor ultrasónico, LCD, piezo y LED controlados por Arduino.
Analysis of time windows to detect botnets behavioursJaime Restrepo
Julio Cesar Gaviria Jaramillo nos compartió en el #DragonJARCON 2020 una charla titulada "Analysis of Time Windows to detect Botnet’s Behaviour" cuya descripción es:
Las Botnet hoy en día son estructuras comúnmente utilizadas por cibercriminales con el fin de generar ataques de distinta índole. Realizamos una investigación con el fin de detectar patrones de comportamiento entre los servidores de C\u0026C y un host infectado utilizando distintos modelos de ML.","description":"La primera fase fue la adquisición de datos, donde utilizamos un proyecto llamado Stratosphere Lab creado por el investigador Sebastia Garcia para realizar su tesis de doctorado sobre detección de Botnets. Se utilizaron diferentes muestras de benignas y malignas provistas por ellos mas unas muestras benignas generadas por nosotros.
Realizamos el montaje del laboratorio de investigación, bajo una distribución Ubuntu, con el fin de pasar los archivos .pcaps a una serie de ventanas de tiempo para su posterior análisis. Se realizo un contraste entre el enfoque que se iba a utilizar, siendo este desde Netflows o desde Ventanas de tiempo. Debido a la complejidad de los Netflows, decidimos trabajar con las ventanas de tiempo, para lo cual realizamos 4 experimentos. Los experimentos fueron analizados y testeados con diferentes tipos de variables creadas por nosotros mismos en la investigación y otras usando las provistas por la utilidad de nfdump, pero variando la cantidad y el tipo de datos benignos y malignos con los cuales íbamos a realizar el entrenamiento y el testing.
Obtuvimos un excelente desempeño en los últimos 2 experimentos, donde pudimos evidenciar que la cantidad de VP y VN alcanzaba el 99% de exactitud. Por ultimo pudimos evidenciar comportamientos particulares de la comunicación C\u0026C y el host infectado, donde existen claras diferencias entre los protocolos y puertos utilizados por los botmaster y las comunicaciones benignas. Nuestro siguiente paso es desarollar una herramienta que permita a un host verificar si es o no un zombie, donde esté sera notificado via correo electronico si llega a ser un positivo para infectado!
-----------------------------------------------------------------------------------------------
Youtube: DragonJARtv (http://bit.ly/DragonJARtv)
Facebook: La.Comunidad.DragonJAR (http://bit.ly/DragonJARfb)
Twitter: @DragonJAR (http://bit.ly/DragonJARt)
Instagram: Dragon.JAR (http://bit.ly/DragonJARig)
Discord: https://invite.gg/DragonJAR
Blog: Comunidad DragonJAR (http://bit.ly/DragonJAR)
-----------------------------------------------------------------------------------------------
Usando Twisted para hacer aplicaciones de escritorio no bloqueantesMartín Volpe
Uno de los principales problemas al momento de crear aplicaciones de escritorio es el manejo del flujo de ejecución. Este problema se complica considerablemente al tener que ejecutar funciones bloqueantes. Twisted, a pesar de estar diseñado para networking, tiene una serie de herramientas para el maenjo ascincrónico del flujo facilmente adaptables a los Toolkits gráficos mas populares.
Este documento compara los tiempos de ejecución de código en Python, C y PyPy para diferentes tipos de cálculos numéricos y operaciones de procesamiento de texto. Los autores realizaron experimentos multiplicando números, matrices y tokens de texto de Shakespeare para medir el rendimiento en cada lenguaje. Encontraron que C es más rápido que Python, especialmente para cálculos intensivos donde el procesador puede optimizarse. Sin embargo, Python puede ser tan rápido como C si se optimiza el código para minimizar el uso de memoria dinámica. PyPy generalmente
El documento presenta un proyecto final de implementación de un prototipo interactivo de una cámara de vigilancia. El prototipo consta de un sensor de distancia, una luz LED, un piezo y una pantalla LCD que muestran la palabra "Alerta" cuando el sensor detecta movimiento. El documento describe el funcionamiento esperado y las tareas de cada componente, así como los pasos de prototipado y evaluación realizados para mejorar el diseño.
Este documento presenta información sobre lógica de programación. Cubre temas como algoritmos orientados a datos, estructuras de control selectivas y repetitivas, y diagramas de flujo. Incluye ejemplos y preguntas de práctica sobre estas temáticas.
ab on
ab onfor 200
ab rd
ab onfor 200
ab off
Comparte con tu grupo los resultados obtenidos y las mejoras que se pueden realizar. No olvides entregar el informe correspondiente al final de la sesión.
Recuerda que el desafío es programar rutinas que permitan al robot avanzar en línea recta y realizar otras trayectorias.
Este documento describe un proyecto final de implementación de un prototipo interactivo con Arduino. Incluye las secciones de prototipar, evaluar y conclusiones. El prototipo consiste en un sistema de seguridad para el portón de una casa controlado con Arduino, sensores y actuadores. Algunos problemas encontrados durante el desarrollo fueron la sensibilidad del sensor de distancia y limitaciones en el giro del servo motor, los cuales fueron resueltos. El proceso permitió desarrollar habilidades en programación y favoreció el aprendizaje.
Programación Python para Zombis (charla relámpago)Mariano Reingart
Propuesta de cursos masivos abiertos en linea (MOOC), basado en la iniciativa "Python para Zumbis" (Fernando Masanori, SP, BR)
Trabajo académico (taller tecnología educativa / educación a distancia) y cuestiones técnicas de implementación (laboratorio virtual de programación, cuestionarios -quiz-, arquitectura moodle vs edX, traducción y adaptación de materiales, etc.)
Presentada en PyCon Argentina 2015
Documento: http://bit.ly/pyzombis
El documento presenta una plantilla para documentar el proceso de implementación de un prototipo interactivo controlado por Arduino. Incluye secciones para documentar los requisitos, componentes electrónicos, programación y una prueba y evaluación inicial. El estudiante debe completar la plantilla describiendo un prototipo que simula una cuna de bebé activada por sensores ultrasónicos.
Este documento presenta una guía para la enseñanza de programación en Dev C++. Explica conceptos básicos como variables, estructuras de control, funciones y bibliotecas. Incluye ejemplos de código y ejercicios prácticos individuales y grupales para calcular áreas, velocidades y cambio de monedas usando este lenguaje de programación.
Transparencias de la charla con la que participamos en las III Jornadas de Java de Alicante.
En las transparencias se muestran algunas herramientas para implantar metodologías ágiles en Java y se comentan algunas anécdotas e historias de diferentes implantaciones.
Los autores compararon el rendimiento de Python frente a C en diversas tareas como multiplicar números, procesar grandes cantidades de datos y manipular matrices. Concluyeron que C es más rápido que Python cuando se aprovechan al máximo las capacidades del procesador y se minimiza el uso de memoria dinámica. Sin embargo, Python puede ser tan rápido como C si se optimizan los algoritmos para tales tareas y no se fuerza aprovechar al máximo el hardware. La optimización prematura no siempre justifica el mayor esfuerzo de programación en C.
La segunda etapa del proyecto final contempla prototipar y evaluar una solución al problema planteado. El estudiante propone un prototipo interactivo para controlar la temperatura en una huerta escolar mediante sensores de temperatura y luz y actuadores como LEDs y bocinas. El prototipo controlaría artificialmente la luz y temperatura si la temperatura es menor a 30 grados para prevenir humedad y plagas. El estudiante enfrentó problemas como el reconocimiento de la tarjeta y conexión de sensores que logró resolver.
Clase 2 - Introducción a la programación con Python I.pptxjgs07
Este documento presenta la introducción a la programación con Python. Se detalla el temario de la clase que incluye nociones básicas de Pandas, operaciones en Pandas y prácticas integradoras. También se explican los objetivos de aprender las distintas formas de desarrollo con Python e introducirse al lenguaje de programación Python.
Este documento describe la segunda etapa de implementación de un proyecto final, la cual incluye las fases de prototipado y evaluación. En la fase de prototipado, se explica que el prototipo debe incluir al menos 2 sensores y 2 actuadores controlados por una placa Circuit Playground. En la fase de evaluación, se pide registrar 3 problemas encontrados durante el desarrollo y sus soluciones, así como conclusiones aprendidas.
Similar a Desarollando aplicaciones web en python con pruebas (20)
Talk given at the London AICamp meet up on the 13 July 2023. It's an introduction on building open-source ChatGPT-like chat bots and some of the considerations to have while training/tuning them using Airflow.
The document discusses contributing to the Apache Airflow project. It provides an overview of the author's experience contributing to Airflow, including submitting pull requests and participating in the community. The author encourages others to get involved by asking questions, sharing experiences, updating documentation, contributing code, attending or organizing events, and joining the Airflow community on Slack and GitHub.
From an idea to production: building a recommender for BBC SoundsTatiana Al-Chueyr
The document describes the process of developing and productionizing a recommendation engine for BBC Sounds. It discusses:
1) The initial challenge of replacing an outsourced recommendation engine and prototyping a new one using factorization machines. Qualitative user tests showed improved recommendations over the external provider.
2) Productionizing involved using Google Cloud Platform, Apache Airflow for workflows, Apache Beam for efficient data processing, and precomputing recommendations to serve 1500 requests/second with low latency.
3) Initial A/B tests found a 59% increase in interactions and 103% increase for under 35s using the new recommendation engine. Ongoing work includes optimizing costs and API performance.
This document summarizes Tatiana Al-Chueyr's presentation on precomputing recommendations for BBC Sounds using Apache Beam. The initial pipeline had high costs due to processing large amounts of data in a single pipeline. Through several iterations, the pipeline was simplified and split into two pipelines - one to precompute recommendations and another to apply business rules. This reduced costs by 82% by using smaller machine types, batching, shared memory, and FlexRS in Apache Dataflow. Splitting the pipeline into minimal interfaces for each task led to more predictable behavior and lower costs.
Presentation given on the 15th July 2021 at the Airflow Summit 2021
Conference website: https://airflowsummit.org/sessions/2021/clearing-airflow-obstructions/
Recording: https://www.crowdcast.io/e/airflowsummit2021/40
This document summarizes Tatiana Al-Chueyr's presentation on ethical machine learning at the BBC. In 3 sentences:
Tatiana discussed how the BBC uses machine learning to personalize recommendations while upholding editorial values like impartiality. She explained their process for developing recommendation engines, which involves qualitative and quantitative testing as well as integrating legal, editorial and business constraints. Tatiana emphasized that the BBC's goal is to use machine learning to benefit audiences rather than other stakeholders like corporations.
Powering machine learning workflows with Apache Airflow and PythonTatiana Al-Chueyr
This document provides an overview of using Apache Airflow to power machine learning workflows with Python. It discusses Airflow concepts like DAGs, operators, relationships and visualizations. It also covers installing Airflow, common issues experienced like debugging and versioning, and using Airflow for machine learning tasks like model building and hyperparameter tuning. Examples of Airflow pipelines for data ingestion and machine learning are demonstrated. The presenter's background and the BBC Datalab team are briefly introduced.
Artificial intelligence breaks into our lives. In the future, everything will probably be clear, but so far, some questions have arisen, and increasingly these issues affect aspects of morality and ethics. Which principles do we need to keep in mind while surfacing machine learning algorithms? How the editorial team affects the day to day development of applications at BBC?
Place: Kharkiv National University of Radio Electronics, Ukraine
When: 17th November 2019.
Presented at PyCon UK 2018 (18 September 2018, Cardiff).
The slides are incomplete.
Recording available at:
https://www.youtube.com/watch?v=-weU0Zy4Yd8
O relatório descreve um sprint realizado pela equipe cPython da Globo.com onde 10 problemas foram investigados, 7 patches foram submetidos e feedback foi recebido para 5 deles. Dois patches foram aceitos e 334 linhas de código foram modificadas.
This document provides an overview of how to contribute to the cPython source code. It discusses running benchmarks to understand performance differences between loops inside and outside functions. It encourages contributing to improve coding skills and help the open source community. The steps outlined are to clone the cPython source code repository, resolve any dependencies during building, review open issues on bugs.python.org, and work on resolving issues - starting with easier ones. Tips are provided such as commenting when taking ownership of an issue, reproducing bugs before working on them, writing tests for code changes, and updating documentation.
The document discusses Globo.com's recommendation platform that provides personalized recommendations to users. It uses several big data technologies like Hadoop, Kafka, HBase and Elasticsearch. Recommendations are generated through both pre-computed and real-time approaches. The platform also aims to add semantics to recommendations by linking entities and relationships through techniques like named entity recognition and knowledge graphs. This is expected to improve capabilities like finding, linking and organizing content.
The document discusses tips for crafting APIs according to REST principles. It outlines best practices like using nouns for resource identifiers, applying CRUD operations consistently via POST, GET, PUT, DELETE, and including hypermedia links to allow navigating through application states. Other topics covered include API versioning, error handling, and choosing an implementation technology based on performance needs like number of daily accesses. The document emphasizes designing APIs pragmatically with the goal of making them easy for application developers to use.
The document presents the challenge of automatically correcting English text to help assess student assignments. It introduces the EFCamDAT dataset containing over 500,000 annotated English essays written by language learners. A number of Python scripts are also introduced that implement heuristics to identify common English mistakes like spelling, capitalization, and article usage in the essays. The scripts analyze the efficiency of the heuristics by calculating precision, recall, and F-score against the teacher annotations in the dataset. The document concludes by discussing feedback received on the project and some advances made since an earlier presentation.
O documento descreve o InVesalius, um software público e gratuito de reconstrução 3D de imagens médicas desenvolvido no Brasil. O InVesalius permite a visualização e análise de imagens de TC e ressonância magnética, é utilizado por mais de 2.600 usuários em 56 países e tem aplicações em diversas áreas médicas como radiologia, neurologia e ortopedia.
Presentation about some common mistakes English learners make - and how it is possible to try to identify part of them automatically (spelling, capitalization and article). This presentation was made during PyCon SK on the 12th of March 2016. Many of the results are due to the partnership of the University of Cambridge and Education First.
This document discusses Python packaging and improving dependency resolution. It provides an overview of packaging, including creating packages with setup.py and uploading them to a package server. It then discusses challenges with early packaging tools like Distutils and improvements with setuptools, pip, and virtualenv. It also examines how pip handles dependency inconsistencies and the importance of pinning dependencies precisely in requirements.txt. Finally, it recommends hosting your own private package index or proxy to improve reliability.
Brainiak is a new semantic data management platform being developed by Globo to address problems with their legacy linked data architecture. It features a RESTful API to access and manage semantic data. This decouples applications from the triplestore and improves performance. Brainiak will enable Globo to enrich search, improve annotation and content relationships, and link data to external sources like DBPedia. It has the potential to enhance the user experience on Globo's websites.
4. tati.__doc__
●
ingeniera en informática (Unicamp)
●
analista desarrolladora G1 (globo.com)
●
alumna maestria en informática PUC-Rio
●
entusiasta de software libre desde 2002
●
contribución más importante: InVesalius
●
pythonista y miembro de APyB
●
en el tiempo libre, juga de desarollar con
#android y/o #arduino
6. globo.com
●
crea y mantiene las tecnologías web de Globo
●
5 areas: noticias deportes entretenimiento tecnología videos
●
10 + anõs
●
400.000 ++ subscriptores
●
250 + profesionales de tecnología
●
25 + equipos scrum
7. globo.com
●
45 millones de visitas diarias
●
1.800.000 visitas por hora
●
32.000 accesos por minuto
8. globo.com
●
110 Gbps de banda
●
12.000.000+ líneas de código en producción
●
1.000 + servidores
●
100.000.000 + de vídeos servidos / mes
●
500 + terabytes de tráfico sólo durante la
transmisión de la Copa del Mundo 2010
14. 1
IZ
U
¿qué sabes acerca de pruebas?
Q
(a) siempre hago desarollo basado en pruebas
(b) cuándo tengo tiempo, lo hago
(c) alguién ha mencionado eso, pero no practico
(d) a mi no me gusta, muy aburrido
(e) no conosco nada acerca pruebas Respuestas
(a) 5
(b) 15
(c) 3
(d) 1
(e) 8
15. ejemplo 1 – inventor dulce de leche
problema: tiene un programa de preguntas y respuestas, e debes implementar la
función
quien_fue_el_inventor_del_dulce_de_leche
que contesta la pregunta con la verdadeira
respuesta.
16. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
17. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
test_preguntas_y_respuestas.py
18. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
test_preguntas_y_respuestas.py
19. ejemplo 1 – inventor dulce de leche
preguntas_y_respuestas.py
20. observación
● A seguir...
vamos utilizar el software DojoTools
un semáforo adaptado con Arduino
desarrollado por @turicas y @ tati_alchueyr
para soporte a Coding Dojos
● Se interesó por Arduino?
Veja la charla “Robótica con Python y Arduino”, a las 15:30, con
Álvaro Justen, en la sala 35
21. ejemplo 1 – inventor dulce de leche
Moraleja del Ejemplo 1
La prueba no debe caberse al programa
El programa debe comprometerse con la
verdad
23. ejemplo 2 – pronóstico del tiempo
problema: la temperatura es originalmente en
farenheit y hay que convertela a grados
celcius
¿alguien recuerda la formula?
24. ejemplo 2 – pronóstico del tiempo
problema: la temperatura es originalmente en
farenheit y hay que convertela a grados
celcius
°F = °C x 9/5 + 32
°C = (°F - 32) x 5/9
25. ejemplo 2 – pronóstico del tiempo
°C = (°F - 32) x 5/9
utils_tiempo.py
2
¿esta listo? Respuestas
IZ
U
(a) 0
Q
(b) 0
(a) si (c) 0
(b) no
(c) quizas
26. ejemplo 2 – pronóstico del tiempo
°C = (°F - 32) x 5/9
utils_tiempo.py
2
¿esta listo? Respuestas
IZ
U
(a) 0
Q
(b) 0
(a) si (c) 0
(b) no
(c) quizas
27. ejemplo 2 – pronóstico del tiempo
¿que pasa?
test_utils_tiempo.py
fail
28. ejemplo 2 – pronóstico del tiempo
¿que pasa?
test_utils_tiempo.py
utils_tiempo.py
http://stackoverflow.com/questions/455612/python-limiting-floats-to-two-decimal-points
29. ejemplo 2 – pronóstico del tiempo
¿que pasa?
test_utils_tiempo.py
utils_tiempo.py
utils_tiempo.py
30. ejemplo 2 – pronóstico del tiempo
Moraleja del Ejemplo 2
Es importante pruebar los posibles casos
de error de su función.
Si la función realizar operaciones con
números, pueden ser útiles: valor nulo,
número negativo y valores flotantes.
31. TDD Test Driven Development
1) Escribir pruebas que fallan
2) Escribir código para que pruebas pasen
33. TDD suena muy simple, ¿verdad?
Entonces ¿por qué no todos lo hacen el 100% del tiempo?
Es complicado ...
● Los plazos
● Gestión no técnica
● Obligaciones concurrentes
● La mala planificación / estimaciones
● Algunos códigos no se prestan fácilmente a TDD
● En algunos casos, TDD no tiene sentid
34. Tests are vivos
"Si usted hace su análisis correcto, usted nunca se
encontrará con un escenario en el que la producción
de pruebas no había previsto.
●
No pensar en ellos como algo que tiene que "hacer
llegar"
●
Independientemente de cómo / cuando llegue la prueba
de escritura de hecho, se los revisa de manera regular
41. Splinter: automatizar acciones web
●
http://splinter.cobrateam.info
●
interfaz limpia par hacer cosas in web
●
puede ser usado para pruebas
●
o para automatización de cosas en general
45. ¿como vender pruebas?
Hay muchas cosas que pueden hacer el mal en las pruebas
● El error más grande no es invertir tiempo para escribir la
prueba
● "El código no probado se rompe por el diseño"
Cómo vender a su jefe?
● Ahorro de dinero
● Ahorro de tiempo de desarrollo ($$$)
● Los desarrolladores más felices
● Ahorro de tiempo en el control de calidad ($$$)
● confianza
49. 1
IZ
U
¿qué sabes acerca de pruebas?
Q
(a) siempre hago desarollo basado en pruebas
(b) cuándo tengo tiempo, lo hago
(c) alguién ha mencionado eso, pero no practico
(d) a mi no me gusta, muy aburrido
(e) no conosco nada acerca pruebas Respuestas
(a) 0
(b) 0
(c) 0
(d) 0
(e) 0