Infraestructura de Streaming detrás del mundial FIFA 2014
El mundial de fútbol es quizás el evento deportivo con más trascendencia del mundo, diría que incluso por encima de las olimpiadas. Y en los tiempos que corren, en el que casi todo se mueve a través de internet y telecomunicaciones, puedes imaginarte el tráfico generado por el servicio de srteaming detrás de un evento como este.
En esta entrada de Leandro Moreira, nos explica de forma muy resumida algunos de los problemas con los que tuvieron que lidiar, la tecnología que usaron, etc. Además han liberado algunos de los componentes que fueron factor clave para el éxito de dicha arquitectura.
Envía la ruta de direcciones a tu dispositivo Android directamente desde Google
Cuando tengo que ir a algún lugar en el que nunca he estado o simplemente no recuerdo cómo llegar, uso el navegador de mi teléfono móvil (Google Maps) para que me indica la ruta.
Normalmente, especialmente cuando al sitio al que voy es la primera vez que lo visito, suelo echar un vistazo en Google Maps, para hacerme una idea de la ruta, duración del trayecto, etc. Un vez hecho eso, me solía mandar a mi propio corre electrónico la dirección del lugar y luego desde el teléfono copiaba y pegaba dicha dirección en Google Maps y a navegar se dijo. No es que fuera una tarea tediosa, pero sería más cómodo que de alguna forma me pudiera mandar la dirección al teléfono y automáticamente me abriera la aplicación de Google Maps con la dirección ya introducida. Eso es precisamente lo que Google ha hecho. Desde Google, puedes buscar: Send directions. Esto hará además de mostrar el resultado correspondiente a dicha búsqueda, muestre al principio de la página un cuadro de texto de Google Maps, con la lista de tus dispositivos que tengas registrados y conectados con Google, y una entrada de texto dónde puedes poner la dirección destino. Por defecto, el origen es la localización del dispositivo móvil que hayas seleccionado y debajo del mapa tienes un enlace para el envío de dicha dirección al dispositivo (tal y como podemos ver en la imagen que encabeza esta entrada).
Ubuntu MATE para Raspberry Pi 2
Con la versión 2 de Raspberry Pi y sus nuevas características, las posibilidades de uso de este mini ordenador, también crecen.
A modo resumen y para refrescarle a alguno la memoria, las principales características de Raspberry Pi 2 son:
- 900MHz quad-core ARM Cortex-A7 CPU
- 1GB RAM
- 4 puertos USB
- 40 pins GPIO
- Puerto HDMI
- Puerto Ethernet
- Jack de audio 3.5mm y vídeo compuesto
- Interfaz de cámara (CSI)
- Interfaz de pantalla (DSI)
- Lector de tarjeta Micro SD
- VideoCore IV 3D
En el mundo Linux, las posibilidades también crecen por supuesto, y de echo ahora podemos correr distribuciones más modernas y que requieren más potencial hardware.
The Beginner’s Guide to IDAPython
The Beginner’s Guide to IDAPython es un libro electrónico que te puedes descargar en formato PDF y de forma totalmente gratuita, aunque se recomienda que dones algo de dinero, al menos si te vas a beneficiar de forma profesional.
El libro como bien dice el título, trata sobre IDAPython, un plugin para IDA Pro que nos permite integrar scripts en python dentro del mismo y contiene un gran número de ejemplos.
Monitorizando la actividad de tu aplicación Android
HP ha liberado una aplicación gratuita para ayudar a los equipos de seguridad y calidad encontrar vulnerabilidades.
ShadowOS, así se llama, está basado en una versión modificada de Android Kitkat, la cual intercepta la actividad generada en el sistema en general, en las siguientes áreas:
- Acceso al sistema de ficheros. Muestra todo los accesos de lectura y escritura (path + nombre de fichero)
- HTTP/HTTPS. Muestra todas la llamadas HTTP/HTTPS realizadas por la aplicación, incluyendo las realizadas por Webkit.
- SQL Lite. Muestra todas las consultas a SQL Lite, incliyendo apertura, inserts y updates.
- Cordova / PhoneGap. Muestra el tráfico web en aplicaciones basadas en Webkit.
- Windows Vista o superior
- Privilegios de Administrador
- .Net 4.5
- Android SDK para Windows
Binary Ninja
Binary Ninja es un conjunto de herramientas enfocada al análisis y descubrimiento de vulnerabilidades en ficheros binarios.
Incluye entre otros:
- Editor hexadecimal
- Editor de texto
- Desensamblador (con gráfico de flujo)
- Terminal integrado
- Compilador de shellcodes
Actualmente hay disponible una versión prototipo, disponible en github.
Vídeos PyCon 2015
Entre el 8 y el 16 de abril, se celebró en Montreal la conferencia más distinguida enfocada al lenguaje de programación Python: PyCon 2015.
La lista de charlas es bastante amplia y tocan todo tipo de temas alrededor de Python. Si te interesa este lenguaje de programación que tan de moda está, aquí tienes material de sobra para pasar un buen rato:
- Keynote - Guido van Rossum
- Keynote - Gabriella Coleman
- Type Hints - Guido van Rossum
- Closing Messages
- Jim Baker - Getting to Jython 2.7 and beyond
- Mike Howsden - Zen of Quality - How PBS measures QoS for digital viewers
- Luke Sneeringer - Improve your development environments with virtualization
- Thomas Ballinger - Terminal whispering
- Geoff Gerrietts - Performance by the Numbers: analyzing the performance of web applications
- Curtis Lassam - Hash Functions and You: Partners in Freedom
- Mica Swyers, Jay Chan - Finding Spammers & Scammers through Rate Tracking with Python & Redis
- Christine Spang - WebSockets from the Wire Up
- Tom Eastman - Serialization formats are not toys
- ---Incomplete talk --- A. Jesse Jiryu Davis - Python Performance Profiling: The Guts And The Glory
- Pete Fein - Free Software, Free People
- Sarah Bird - Interactive data for the web - Bokeh for web developers
- Andrew Montalenti - streamparse: real-time streams with Python and Apache Storm
- Ying Li - Where in your RAM is "python san_diego.py"?
- Hynek Schlawack - Beyond grep: Practical Logging and Metrics
- Smart services & smart clients: How micro-services change the way you build and deploy code.
- Christine Spang - To ORM or not to ORM
- Keynote - Jacob Kaplan-Moss - Pycon 2015
- Keynote - Van Lindberg - Pycon 2015
- Lightning Talks - April 11th 17h30 - Pycon 2015
- Lightning Talks - April 12th 08h30 - Pycon 2015
- Kathleen Danielson - Avoiding Burnout, and other essentials of Open Source Self-Care
- Jim Baker - A Winning Strategy with The Weakest Link: how to use weak references…
- Colton Myers - Managing Your Infrastructure with SaltStack
- Nicholas Tollervey - Lessons learned with asyncio ("Look ma, I wrote a distributed hash table!")
- Clayton Parker - So you think you can PDB?
- Sasha Laundy - Your Brain's API: Giving and Getting Technical Help
- Brandon Rhodes - Oh, Come On Who Needs Bytearrays
- A. Jesse Jiryu Davis - Eventually Correct: Testing Async Apps
- Matt Makai, Kate Heddleston - Choose Your Own WSGI Deployment Adventure
- Alex Gaynor - Techniques for Debugging Hard Problems
- Allison Kaptur - Exploring is never boring: understanding CPython without reading the code
- Carina C. Zona - Schemas for the Real World
- Daniel Vanderkam - Make web development awesome with visual diffing tools
- Laura Rupprecht - Describing Descriptors
- Domen Kožar - Rethinking packaging, development and deployment
- Elizabeth Ramirez - Graph Database Patterns in Python
- en zyme, Jon Henner - Pythons are Deaf, So are Some Pythonistas
- Olivier Grisel - Build and test wheel packages on Linux, OSX & Windows
- Dan Tracy - Ship it: Deployments with Pip
- Glyph - The Ethical Consequences Of Our Collective Activities
- Allison Kaptur - Bytes in the Machine: Inside the CPython interpreter
- Ian Cordasco - Cutting Off the Internet: Testing Applications that Use Requests
- James Cammarata - Achieving Continuous Delivery: An Automation Story
- Mali Akmanalp - Other people's messy data (and how not to hate it!)
- Richard Jones - Introduction to game programming with Kivy
- Christophe Pettus - PostgreSQL Proficiency for Python People
- Jarret Raim, Paul Kehrer - What to do when you need crypto
- Making Beautiful Graphs in Python and Sharing Them
- Olivier Grisel - Machine Learning with Scikit-Learn (II)
- Orlando Karam - Introduction to Spark with python
- Brandon Rhodes - Pandas From The Ground Up
- Stuart Williams - Python by Immersion
- Katie Cunningham - Usability Testing on the Cheap
- Shauna Gordon-McKeon - Open Source for Newcomers and the People Who Want to Welcome Them
- Itamar Turner-Trauring - A Beginner's Guide to Test-driven Development
- Ned Batchelder - Facts and Myths about Python names and values
- Andrew T. Baker - Demystifying Docker
- Nina Zakharenko - Technical Debt - The code monster in everyone's closet
- Carol Willing - Finding Your Groove: Contributing to CPython and Beyond
- Philip James, Asheesh Laroia - Type python, press enter. What happens?
- Kate Heddleston - How our engineering environments are killing diversity (and how we can fix it).
- Michael Scherer - Ansible beyond YAML
- Andreas Dewes - Learning from other's mistakes: Data-driven analysis of Python code
- Dan Crosta - Good Test, Bad Test
- Amy Hanlon - Investigating Python Wats
- Greg Ward - How to Write Reusable Code
- Julia Evans - Systems programming as a swiss army knife
- Lightning Talks - April 11th 8h30- Pycon 2015
- Lightning Talks - April 10th - Pycon 2015
- Sarina Canelake - I18N: World Domination the Easy Way
- Josh Triplett - Porting Python to run without an OS
- How to build a brain with Python
- Jeff Schenck - The REST Ascendancy
- Fire your supervisord running Python apps on CoreOS
- Chris McDonough - Using Supervisor For Fun And Profit
- Renee Chu, Matt Makai - Don't Make Us Say We Told You So: virtualenv for New Pythonistas
- Losing your Loops Fast Numerical Computing with NumPy
- Melanie Warrick - Neural Nets for Newbies
- Raymond Hettinger - Super considered super!
- Jenny Cheng - 3D Print Anything with the Blender API
- Titus Brown - How to interpret your own genome using (mostly) Python.
- Miguel Grinberg - Is Your REST API RESTful?
- Kenny Yarboro - Building a REST API Using Django & Django REST Framework
- Dan Callahan - My Python's a little Rust-y
- Miriam Lauter - Make your own Smart Air Conditioner
- Michelle Fullwood - Grids, Streets and Pipelines: Building a linguistic street map with scikit-learn
- Katherine Scott - Robots Robots Ra Ra Ra!!!
- What Python can learn from Erlang
- Chris Waigl - Satellite mapping for everyone
- lvh - Distributed Systems 101
- David Beazley - Python Concurrency From the Ground Up: LIVE!
- David Baumgold - Advanced Git
- Brett Cannon - How to make your code Python 2/3 compatible
- Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code
- Soups Ranjan - Data Science in Advertising: Or a future when we love ads
- Cory Benfield - Hyperactive: HTTP/2 and Python
- Benjamin Peterson - A Dive into TLS
- Donald Miner - Hadoop with Python
- Andrew Godwin - What can programmers learn from pilots?
- Ryan Kelly - PyPy.js: What? How? Why?
- Ashwini Oruganti, Christopher Armstrong - Introduction to HTTPS: A Comedy of Errors
- Viviane Pons - Experimental pure mathematics using Sage
- Miguel Grinberg - Flask Workshop
- Brett Slatkin - How to Be More Effective with Functions
- lvh - Building secure systems
- Kyle Kastner - Machine Learning 101
- Kurt Grandis - Exploring Minecraft and Python: Learning to Code Through Play
- Adam Palay - "Words, words, words": Reading Shakespeare with Python
- Hands-on with Pydata: how to build a minimal recommendation engine.
- Keynote - Catherine Bracy
- Sarah Guido, Celia La - Twitter Network Analysis with NetworkX
- David Beazley - Modules and Packages: Live and Let Die!
- Opening Statements - Julia Evans
- Allen Downey - Statistical inference with computational methods
- James Bennett - Django in Depth
- Stuart Williams - Python Epiphanies
- Mike Müller - Descriptors and Metaclasses - Understanding and Using Python's More Advanced Features
- Luke Sneeringer - Ansible 101
- David Chudzicki, Christine Doig - Winning Machine Learning Competitions With Scikit-Learn
- Getting comfortable with web security: A hands-on session
- Allen Downey - Bayesian statistics made simple
- Sarah Guido - Hands-on Data Analysis with Python
- Jacinda Shelly - Delving into the Django Admin
- IPython & Jupyter in depth: high productivity interactive and parallel python
- Shiny, Let's Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulnerabilities
- Eric Ma - Practical Graph/Network Analysis Made Simple
- Harry Percival - TDD with Django, from scratch: a beginner's intro to testing and web development
- Jake VanderPlas - Machine Learning with Scikit-Learn (I)
- Andrew T. Baker - Docker 101: Introduction to Docker
Termómetro para barbacoa, ahumador, horno... con Raspberry Pi
Hace un par de fin de semanas que quedé con un amigo para ahumar unas costillas y solomillos. El proceso de ahumar, para mi sorpresa es más laborioso y delicado de lo que pensaba. Una de las claves de dicho proceso es la temperatura.
El ahumador de este amigo mío, por supuesto tenía un termómetro, pero dejó de funcionar aquel día, así que tuvimos que estimar la potencia del mismo, y así salíó la carne :p
Asignando IP estática al adaptador inalámbrico de tu Raspberry Pi
Cada vez que juego con un Raspberry Pi, el resultado final suele ser conectar algún sensor y exponer los datos del mismo a través de algún servicio REST. Esto implica que el RPi es instalado en mi red en modo servidor, al cual le mando peticiones y recibo respuestas.
Por defecto, cuando instalas el sistema operativo (Raspbian en mi caso), la configuración del adaptador inalámbrico es trivial, pero se configura en modo DHCP, es decir, el router asigna la IP de forma dinámica. Normalmente, te asigna la misma IP siempre, pero no se garantiza.
