Kristian Øllegaard presented an approach for implementing real-time web applications using Django. He discussed using Node.js with Socket.io for the real-time capabilities and Redis for cross-language communication between the Node.js and Django applications. He demonstrated publishing messages from Django to a Redis queue that the Node.js application subscribed to and then emitted to the browser via Socket.io, providing real-time updates. While the approach can be used today, he cautioned against doing so without further work on aspects like client authentication.
As always the conference was opened with a speech by Alexei Vladishev, the creator of Zabbix, glancing over the accomplishments Zabbix made during the past year, mostly focusing on the features and improvements that await us all in the Zabbix 3.0 release.
Zabbix Conference 2015
Liberating the Black Box - Real-Time Communications for the Internet of ThingsPeter Moskovits
Commercial aviation’s biggest challenge when things go wrong is that flight data is stuck on the plane inside the black box. Until the black box is recovered, we barely know anything about what went wrong. This presentation offers detailed insights how IoT and modern Web communications concepts have the power to change all this. I you’re a maker, you will learn about flight sensors attached and controlled by Arduino, data transmitted over long range WiFi as well as satellite networks. If interested in real-time Web communications, you’ll learn about a highly secure and scalable WebSocket implementation with extreme scale, publishing flight data to tablets and laptops used as monitoring dashboard. Regardless of your background, you’ll have fun. Guaranteed!
Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion M...Codemotion
Stack Overflow serves over 100 million unique visitors a month, serving a page in 20ms using 9 web servers and 2 database servers. In this talk I will cover how we develop, build, configure, deploy, monitor and maintain the site, as well as cover aspects of working in a team distributed around the world.
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native Codemotion
Con la stessa potenza con cui React ha conquistato lo sviluppo front-end, React Native sta esplodendo nel mondo dello sviluppo mobile. In questo webinar vedremo le basi di questo framework, che ha avvicinato sia sviluppatori mobile che web, e come iniziare subito a sviluppare un'applicazione nativa in JavaScript.
As always the conference was opened with a speech by Alexei Vladishev, the creator of Zabbix, glancing over the accomplishments Zabbix made during the past year, mostly focusing on the features and improvements that await us all in the Zabbix 3.0 release.
Zabbix Conference 2015
Liberating the Black Box - Real-Time Communications for the Internet of ThingsPeter Moskovits
Commercial aviation’s biggest challenge when things go wrong is that flight data is stuck on the plane inside the black box. Until the black box is recovered, we barely know anything about what went wrong. This presentation offers detailed insights how IoT and modern Web communications concepts have the power to change all this. I you’re a maker, you will learn about flight sensors attached and controlled by Arduino, data transmitted over long range WiFi as well as satellite networks. If interested in real-time Web communications, you’ll learn about a highly secure and scalable WebSocket implementation with extreme scale, publishing flight data to tablets and laptops used as monitoring dashboard. Regardless of your background, you’ll have fun. Guaranteed!
Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion M...Codemotion
Stack Overflow serves over 100 million unique visitors a month, serving a page in 20ms using 9 web servers and 2 database servers. In this talk I will cover how we develop, build, configure, deploy, monitor and maintain the site, as well as cover aspects of working in a team distributed around the world.
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native Codemotion
Con la stessa potenza con cui React ha conquistato lo sviluppo front-end, React Native sta esplodendo nel mondo dello sviluppo mobile. In questo webinar vedremo le basi di questo framework, che ha avvicinato sia sviluppatori mobile che web, e come iniziare subito a sviluppare un'applicazione nativa in JavaScript.
Vladimir Ulogov - Beyond the Loadable ModuleZabbix
Zabbix loadable module provides a great way to extend capabilities of your Zabbix implementation, but knowing how to integrate your favorite interpreter with Zabbix, will bring you further than just creating the loadable module itself.
Using Python interpreter as an example, I will review the process of such integration, point on possible pitfalls, explain on how to debug your scrips and give you more ideas on how to organize distributed data collection, using Python-Zabbix modules.
Zabbix Conference 2015
These slides provide instructions on how to setup a virtual security training lab that uses OWASP Broken Web Apps, OWASP WebGoat, and OWASP ZAP running on top of Virtual Box.
Slides from my 'Introduction to the OWASP Zed Attack Proxy' presentation at AppSec Dublin 2012.
For more info about ZAP see: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...Zabbix
Monitoring multiple server farms spread all around the world is not an easy task, many small problems have to be addressed, but using Zabbix it is all a breeze.
We will talk about our experience on setup of Zabbix proxies in very remote networks, problems we encountered and how we worked on fixing them.
This is Zabbix conference 2015 presentation.
This document introduce you about some our activities.
Hybrid Cloud monitoring tool, collaboration tool with Job management tool.
A 50 min talk at OWASP AppSec USA including demos Zest (a new security scripting language from Mozilla) and Plug-n-Hack (including fuzzing postMessages in the browser to find DOM XSS vulnerabilities). A video of this talk is available here: http://www.youtube.com/watch?v=pYFtLA2yTR8
Slides from my 'Introduction to the OWASP Zed Attack Proxy' presentation as part of the 2013 OWASP EU Tour in Amsterdam.
For more info about ZAP see: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
You'll Never Look at Developer Support the Same Way AgainAnne Gentle
Why will I never look at developer support the same way again? Because I've been on the Developer Experience team at Rackspace, and watching and monitoring the many ways that developers ask questions.
After four years of reading documentation comments on the API documents, I have some insights to share. Our support group has built a tool to listen to tagged feeds on Stack Overflow, read the jclouds mailing lists, all with the OpenStack app developer in mind. We monitor stackoverflow.com, serverfault.com, and superuser.com for questions tagged with Rackspace, rackspace-cloud, fog, cloudfiles, jclouds, pyrax, or keystone. At Rackspace we have been supporting cross-cloud SDKs such as Apache jclouds, Node.js pkgcloud, Ruby Fog, Python Pyrax, .NET, and PHP. Let's look at the data from these many places to find out the patterns for application development. What are the most popular? Which are the most pesky? Let's find out.
In a rare mash-up, DevOps is increasingly blending the work of both application and network security professionals. In a quest to move faster, organizations can end up creating security vulnerabilities using the tools and products meant to protect them. Both Chris Gates (carnal0wnage) and Ken Johnson (cktricky) will share their collaborative research into the technology driving DevOps as well as share their stories of what happens when these tools are used insecurely as well as when the tools are just insecure.
Technologies discussed will encompass AWS Technology, Chef, Puppet, Hudson/Jenkins, Vagrant, Kickstart and much, much more. Everything from common misconfigurations to remote code execution will be presented. This is research to bring awareness to those responsible for securing a DevOps environment.
As a Lead Developer I've been given a project to run from scratch. Zero lines of code in the repository, team and customer I haven't been working with before. In this speech I want to share a set of challenges team have faced. Present audience with a set of tools and practices proven to be helpful. Warn about wrong turns on the way to delivery to avoid
Mortar: Hadoop-as-a-Service + Open Source Framework | AWS re: Invent public …mortardata
Presentation from AWS re: Invent, where Mortar announced it's public availability on stage.
Mortar facilitates Hadoop data development in two parts: an open source data development framework (like Rails for Hadoop) and a PaaS (like Heroku for Hadoop). The open source framework allows for sharing/repeating/maintaining code history, automated testing, and one-button deploy. The PaaS provides high availability execution, full job history, and helps users identify problems.
Vladimir Ulogov - Beyond the Loadable ModuleZabbix
Zabbix loadable module provides a great way to extend capabilities of your Zabbix implementation, but knowing how to integrate your favorite interpreter with Zabbix, will bring you further than just creating the loadable module itself.
Using Python interpreter as an example, I will review the process of such integration, point on possible pitfalls, explain on how to debug your scrips and give you more ideas on how to organize distributed data collection, using Python-Zabbix modules.
Zabbix Conference 2015
These slides provide instructions on how to setup a virtual security training lab that uses OWASP Broken Web Apps, OWASP WebGoat, and OWASP ZAP running on top of Virtual Box.
Slides from my 'Introduction to the OWASP Zed Attack Proxy' presentation at AppSec Dublin 2012.
For more info about ZAP see: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...Zabbix
Monitoring multiple server farms spread all around the world is not an easy task, many small problems have to be addressed, but using Zabbix it is all a breeze.
We will talk about our experience on setup of Zabbix proxies in very remote networks, problems we encountered and how we worked on fixing them.
This is Zabbix conference 2015 presentation.
This document introduce you about some our activities.
Hybrid Cloud monitoring tool, collaboration tool with Job management tool.
A 50 min talk at OWASP AppSec USA including demos Zest (a new security scripting language from Mozilla) and Plug-n-Hack (including fuzzing postMessages in the browser to find DOM XSS vulnerabilities). A video of this talk is available here: http://www.youtube.com/watch?v=pYFtLA2yTR8
Slides from my 'Introduction to the OWASP Zed Attack Proxy' presentation as part of the 2013 OWASP EU Tour in Amsterdam.
For more info about ZAP see: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
You'll Never Look at Developer Support the Same Way AgainAnne Gentle
Why will I never look at developer support the same way again? Because I've been on the Developer Experience team at Rackspace, and watching and monitoring the many ways that developers ask questions.
After four years of reading documentation comments on the API documents, I have some insights to share. Our support group has built a tool to listen to tagged feeds on Stack Overflow, read the jclouds mailing lists, all with the OpenStack app developer in mind. We monitor stackoverflow.com, serverfault.com, and superuser.com for questions tagged with Rackspace, rackspace-cloud, fog, cloudfiles, jclouds, pyrax, or keystone. At Rackspace we have been supporting cross-cloud SDKs such as Apache jclouds, Node.js pkgcloud, Ruby Fog, Python Pyrax, .NET, and PHP. Let's look at the data from these many places to find out the patterns for application development. What are the most popular? Which are the most pesky? Let's find out.
In a rare mash-up, DevOps is increasingly blending the work of both application and network security professionals. In a quest to move faster, organizations can end up creating security vulnerabilities using the tools and products meant to protect them. Both Chris Gates (carnal0wnage) and Ken Johnson (cktricky) will share their collaborative research into the technology driving DevOps as well as share their stories of what happens when these tools are used insecurely as well as when the tools are just insecure.
Technologies discussed will encompass AWS Technology, Chef, Puppet, Hudson/Jenkins, Vagrant, Kickstart and much, much more. Everything from common misconfigurations to remote code execution will be presented. This is research to bring awareness to those responsible for securing a DevOps environment.
As a Lead Developer I've been given a project to run from scratch. Zero lines of code in the repository, team and customer I haven't been working with before. In this speech I want to share a set of challenges team have faced. Present audience with a set of tools and practices proven to be helpful. Warn about wrong turns on the way to delivery to avoid
Mortar: Hadoop-as-a-Service + Open Source Framework | AWS re: Invent public …mortardata
Presentation from AWS re: Invent, where Mortar announced it's public availability on stage.
Mortar facilitates Hadoop data development in two parts: an open source data development framework (like Rails for Hadoop) and a PaaS (like Heroku for Hadoop). The open source framework allows for sharing/repeating/maintaining code history, automated testing, and one-button deploy. The PaaS provides high availability execution, full job history, and helps users identify problems.
Presenting at the Microsoft Devs HK Meetup on 13 June, 2018
Code for presentation: https://github.com/sadukie/IntroToPyForCSharpDevs
Azure Notebook for presentation:
https://notebooks.azure.com/cletechconsulting/libraries/introtopyforcsharpdevs
13 practical tips for writing secure golang applicationsKarthik Gaekwad
Writing secure applications in a new language is challenging. Here are some tips to help get you started for writing secure code in golang. Presented at Lascon 2015
Introducing Hydra – An Open Source Document Processing Frameworklucenerevolution
Presented by Joel Westberg, Findwise AB - See conference video - http://www.lucidimagination.com/devzone/events/conferences/lucene-revolution-2012
This presentation will detail the document-processing framework called Hydra that has been developed by Findwise. It is intended as a description of the framework and the problem it aims to solve. We will first discuss the need for scalable document processing, outlining that there is a missing link between the open source chain to bridge the gap between source system and the search engine, then will move on to describe the design goals of Hydra, as well as how it has been implemented to meet those demands on flexibility, robustness and ease of use. This session will end by discussing some of the possibilities that this new pipeline framework can offer, such as freely seamlessly scaling up the solution during peak loads, metadata enrichment as well as proposed integration with Hadoop for Map/Reduce tasks such as page rank calculations.
NuGet is evolving to be much more than a Visual Studio extension used only for ASP.NET applications. Come see how NuGet can be used cross-platform and in new scenarios.
Talk from IoT World in Santa Clara, May 12, 2016. How to make IoT objects interoperable and adapble by adding JavaScript. Introduces XS6 open source JavaScript engine optimized for embedded development. Hat tip to Hallelujah the Hills for the epigrams.
Rapid Application Development on Google App Engine for JavaKunal Dabir
When you need to build and host web application as soon as possible with no cost involved and want no nonsense stuff to come in between, glide can come handy.
We have two great organizations supporting our Free and Open Source Software for Geospatial: The Open Source Geospatial Foundation and LocationTech.
Putting on events like FOSS4G is primary responsibility of these software foundations - supporting our great open source software is! This talk will introduce OSGeo and LocationTech, and balance the tricky topic of comparison for those interested in what each organisation offers. We will also look at areas where these organizations are collaboration and explore possibilities for future work.
Each of these software foundations support for their existing projects, ranging from "release parties" such as OSGeo Live or the Eclipse Annual Release.
We are also interested in the “incubation” process each provides to onboard new projects. Review of the incubation provides an insight into an organization's priorities.
This talks draws the incubation experience of:
* GeoServer (OSGeo), GeoTools (OSGeo),
* GeoGig (LocationTech), uDig (LocationTech)
If you are an open source developer interested in joining a foundation we will cover some of the resource, marking and infrastructure benefits that may be a factor for consideration. We will also looking into some of the long term benefits a software foundation provides both you and importantly users of your software.
If you are a team members faced with the difficult choice of selecting open source technologies this talk can help. We can learn a lot about the risks associated with open source based on how each foundation seeks to protect you. The factors a software foundation considers for its projects provide useful criteria you can use to evaluate any projects.
La idea de la charla es dar un comparación entre los diversos features de ambos lenguajes como:
* Lambdas/Closures
* Method references
* Default Methods / Traits
* Soporte de APIs de Java 8 en Groovy
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Implementing real time web applications with Django
1. Implementing real time web
applications with Django
Kristian Øllegaard
1
onsdag den 6. juni 12
2. About me
• Software Developer/System Administrator at Divio
• Django since 0.96
• Danish, lived in Zurich 1,5 year
@oellegaard
github.com/KristianOellegaard
2
onsdag den 6. juni 12
3. Why real time?
• Better user experience
• More options in front end
• Make the web feel like native apps
• Showing live data.
• Collaboration is much easier.
@oellegaard
github.com/KristianOellegaard
3
onsdag den 6. juni 12
4. Finding the right tool
• Criteria's
• Use websockets, but have fallbacks
• Good browser support (incl. old IE)
• Should be usable from python
• Does not require extensive changes in frontend
• “As fast as it can be”
@oellegaard
github.com/KristianOellegaard
4
onsdag den 6. juni 12
5. The tools you want
Node.js + Socket.io
@oellegaard
github.com/KristianOellegaard
5
onsdag den 6. juni 12
6. The tools you want
Node.js + Socket.io
(well, we don’t want this, but socket.io needs it)
@oellegaard
github.com/KristianOellegaard
5
onsdag den 6. juni 12
7. The tools you want
• Node.js
• Built on Chrome's JavaScript runtime
• Uses an event-driven, non-blocking I/O model
• Socket.io
• One interface for all transport methods (sockets, polling, etc.)
• Compatible with almost everything
@oellegaard
github.com/KristianOellegaard
6
onsdag den 6. juni 12
8. Why not implement it in Python?
• Already active community
• Can be used from python without too much trouble
• Most people know very basic javascript
• More importantly, frontend engineers, knows javascript and can
therefore contribute to the different browser-specific
implementations.
@oellegaard
github.com/KristianOellegaard
7
onsdag den 6. juni 12
9. Using redis for cross-language
communication
• Support for many datatypes
• Can be used both as storage and as a queue
• Implemented in many different languages
• For the usage in this talk, any other queue could have been used as
well.
@oellegaard
github.com/KristianOellegaard
8
onsdag den 6. juni 12
10. Basic concept
• Something happens, the user
Redis
must be notified in real time publish publish
•
subscribe
From e.g. django we insert the
E.g.
new value into the queue Django Node.js
Celery
• Node.js listens on the queue subscribe
and emits any content directly Browser
to the browser via socket.io
• This is btw. very fast!
@oellegaard
github.com/KristianOellegaard
9
onsdag den 6. juni 12
11. Sample node.js app
var io = require('socket.io').listen(8001);
var redis = require('redis').createClient();
redis.psubscribe("socketio_*"); // Could be any pattern
io.sockets.on('connection', function (socket) {
redis.on('pmessage', function(pattern, channel, key){
socket.emit(channel, key);
});
});
@oellegaard
github.com/KristianOellegaard
10
onsdag den 6. juni 12
12. Sample HTML/JS
<script src="http://localhost:8001/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8001/');
socket.on('socketio_news', function (data) {
console.log(data);
});
</script>
@oellegaard
github.com/KristianOellegaard
11
onsdag den 6. juni 12
13. Sample usage from Python
import redis
import json
redis_subscribe = redis.StrictRedis()
redis_subscribe.publish("socketio_news", json.dumps({
'title': 'Djangocon 2012',
}))
@oellegaard
github.com/KristianOellegaard
12
onsdag den 6. juni 12
14. Short demo
@oellegaard
github.com/KristianOellegaard
13
onsdag den 6. juni 12
15. Hosting socket.io
• Nginx does not support websockets!
• Needs its own app, if hosted on an application cloud (e.g. heroku)
• Recommended to expose the node server directly
• But hey, it’s node.js, it scales!
@oellegaard
github.com/KristianOellegaard
14
onsdag den 6. juni 12
16. Can I use this today?
• Yes
• But, please don’t
@oellegaard
github.com/KristianOellegaard
15
onsdag den 6. juni 12
17. Client Authentication
• Socket.io handles authentication from node -> client
• Currently no authentication between django and node.
• Could possibly be solved by storing your sessions in redis and
checking them on connection.
@oellegaard
github.com/KristianOellegaard
16
onsdag den 6. juni 12
18. Notes
• Concept should work with any language/framework
• E.g. communicating between ruby and python
@oellegaard
github.com/KristianOellegaard
17
onsdag den 6. juni 12
19. Questions?
http://kristian.io
@oellegaard
@oellegaard
github.com/KristianOellegaard
18
onsdag den 6. juni 12