SwampDragon presentation: The Copenhagen Django Meetup GroupErnest Jumbe
This document provides an overview of SwampDragon, a Django application that adds real-time functionality via web sockets. It discusses what real-time means, challenges with real-time and the web, and how SwampDragon uses Tornado and SockJS to add asynchronous capabilities. It also covers how to install, configure models/serializers/routers, and deploy SwampDragon to enable real-time features for Django projects.
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
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.
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.
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.
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.
Redis is an open source advanced key-value store, created by antirez. Here is a quick overview of this awesome NoSql DB.
Like a swiss knife, Redis will help you by many ways : LRU cache, high scores, UID generator, queues, social feeds, autocomplete …
Mobile Library Development - stuck between a pod and a jar file - Zan Markan ...Codemotion
Isaac Newton, the father of modern software engineering, called it “Standing on the shoulders of giants”. Modern development is exciting as it gets easier and easier, partly because of the wealth of resources available at our fingertips. One category of these resources are libraries, SDKs, and frameworks. This talk will be a guide into the considerations that go into building a library for both iOS/Swift and Java/Android. We will be taking cues from both my personal experience, as well as from studying how the leaders in the field do it.
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
Once you start working with distributed Big Data systems, you start discovering a whole bunch of problems you won’t find in monolithic systems.
All of a sudden to monitor all of the components becomes a big data problem itself.
In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system once you’re using tools like:
Web Services, Apache Spark, Cassandra, MongoDB, Amazon Web Services.
Not only the tools, what should you monitor about the actual data that flows in the system?
And we’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
За последние годы разными специалистами и компаниями (от Google до Сноудена) был проделан колоссальный объём работы с целью популяризации протокола SSL, а позже и TLS. Дорабатывались протоколы и шифры, обнаруживались десятки уязвимостей, криптографические библиотеки форкались и проводили аудиты, правозащитные фонды выдавали сотни миллионов сертификатов "забесплатно". В конце концов, TLS явочным порядком, в обход стандарта, стал обязательным для HTTP/2-серверов. Так много сил было приложено, что просто-напросто уже невежливо всё это игнорировать.
Однако процесс внедрения TLS за это время, как это ни удивительно, не стал проще ни на йоту. Сисадмины, приступающие к развёртыванию TLS, вынуждены столкнуться с классификацией типов сертификатов, с множеством центров сертификации (которые непонятно, чем друг друга лучше) и с великим множеством дополнительных заголовков и "ручек", каждую из которых можно подёргать с непредсказуемым результатом. В результате даже крупные компании при внедрении TLS допускают ошибки той или иной степени серьёзности (включая, но не ограничиваясь масштабным даунтаймом клиентов GlobalSign), а небольшие стартапы предпочитают, вообще, обходить криптографию стороной.
За отведённые на доклад 45 минут мы постараемся дать описание каждой из пресловутых "ручек" и рекомендации по их [не]применению, а также дадим рекомендации по развёртыванию TLS на крупной инфраструктуре.
This document discusses best practices for designing, scaling, and maintaining large-scale web applications. Some of the key points made include: having a consistent and flexible data model, loosely coupling components for easier testing and replacement, using caching strategies like page fragments and memcached, and emphasizing development practices like version control, testing, and monitoring performance. The document advocates for a modular architecture with components like load balancers, reverse proxies, caching layers, and asynchronous job queues.
The document discusses the CloudStack China User Group, which aims to promote Apache CloudStack in China. It provides information on CloudStack's history and community goals. The group hosts technical meetups and online activities like a website, mailing list, and social media to share information. It also contributes back to the global CloudStack community through localization, bug fixes, and more. The group seeks more involvement to help the ecosystem and technology grow in China.
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
What is different about this generation of web applications? A solid development approach must consider latency, throughput, and interactivity demanded by users users across mobile devices, web browsers, and IoT. These applications often use NoSQL to support a flexible data model and easy scalability required for modern development.
A full stack application (composed of Couchbase, WebAPI, Angular2, and ASP.NET/ASP.NET Core) will be demonstrated in this session. The individual parts of a stack may vary, but the overall design is the focus.
Node.js is an asynchronous JavaScript runtime built on Chrome's V8 JavaScript engine. It allows JavaScript to be run on the server-side and is used for real-time web applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. The document discusses how to install Node.js and manage different versions using the nave package manager.
DevOops Redux Ken Johnson Chris Gates - AppSec USA 2016Chris Gates
In a follow-up to the duo’s offensive focused talk “DevOops, How I hacked you”, they discuss defensive countermeasures and real experiences in preventing attacks that target flaws in your DevOps environments. In this talk, Chris and Ken describe common ways in which DevOps environments fall prey to malicious actors with a focus on preventative steps. The team will present their recommended approach to hardening for teams using AWS, Continuous Integration, GitHub, and common DevOps tools and processes. More specifically, the following items will be demonstrated:
-AWS Hardening
-AWS Monitoring
-AWS Disaster Recovery
-GitHub Monitoring
-OPINT
-Software Development Practices/Processes
-Secure use of Jenkins/Hudson
-Developer laptop hardening (OS X)
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...Codemotion
Il talk si propone di mostrare degli esempi pratici di sviluppo basato su piattaforme Container-native e Serverless, disponibili in Open Source, come naturale evoluzione delle esperienze e delle aspettative dei Development Team. Lo scopo dell’adozione di queste tecnologie non è solo quello di ‘dividere il monolito’ ma soprattutto quello di garantire rapidità di implementazione e sostenibilità del progetto.
JavaOne 2014 Security Testing for Developers using OWASP ZAPSimon Bennetts
This document summarizes a presentation about using the OWASP Zed Attack Proxy (ZAP) for security testing during the development process. ZAP is an open source web application security scanner that can be used by developers to automate security testing. The presentation covers how to configure and use ZAP to explore applications, perform passive and active scans, and integrate ZAP into the development workflow through its API and scripting capabilities. It emphasizes that considering security early in development helps build more secure applications.
OWASP 2014 AppSec EU ZAP Advanced FeaturesSimon Bennetts
The document discusses the advanced features of OWASP ZAP, an open source web application penetration testing tool. It provides an overview of ZAP's main features like its intercepting proxy, scanners, spiders, and add-ons marketplace. It then describes some advanced features in more depth, including contexts for organizing tests, advanced scanning options, scripting with languages like Zest, and the Plug-n-Hack framework for deeper browser integration. The document concludes by noting various work-in-progress projects and encouraging involvement in ZAP's ongoing development.
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
RSYSLOG v8 improvements and how to write plugins in any language.Rainer Gerhards
RSYSLOG is a next generation log processing tool. In the frist part, we will explain the new RSYSLOG v8 engine, its motivation and its benefits. Learn, for example, why writing to Elasticsearch is much faster with the new engine. We will describe the tuning parameters vital for making best use of the new features.
In the second part we will explain how to write RSYSLOG plugins in any language. Traditionally, writing rsyslog plugins has been considered quite hard, with at least C knowledge necessary. In v8, we have introduced new interfaces which make it possible to write plugins in any language - be it Python, Perl or Java. Even bash will do. In essence, this is a great tool for any admin to add special needs with just a bit of scripting. We will proivde concrete instructions on how to write a plugin, point to read-to-copy samples and tell how to integrate this into rsyslog.
NOTE: This is my LinuxTag Berlin 2014 talk.
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...Zabbix
This document discusses how an IT company called QUADRATA handled managing multiple remote Zabbix proxies in geographically distributed locations. They initially had issues with huge queues and busy sender processes due to network latency. They addressed this by installing NTP on all machines to synchronize time, optimizing the MySQL databases on proxies to use Percona Server and the innodb_file_per_table setting, and adjusting the DataSenderFrequency and ProxyOfflineBuffer settings to optimize sender processes. They also replicated the Zabbix frontend to account for multiple timezones and eventually migrated to Zabbix 3.0 for performance improvements in server-proxy communication.
OWASP 2013 AppSec EU Hamburg - ZAP InnovationsSimon Bennetts
Slides from my 'ZAP Innovations' talk at AppSec EU 2013 in Hamburg.
For more info about ZAP see: https://www.owasp.org/index.php/ZAP
This document discusses Git strategies for teams. It outlines several branching strategies including "wing and a prayer", long-running branches, Git flow, and branch-per-feature. Git flow uses long-running branches with specific rules for features, hotfixes, bugs, and only merging develop branches to master once stable. Branch-per-feature creates a new branch for each feature or change and nothing is merged until production deployment. The document also discusses automation, team composition, environments, and selection criteria to consider when choosing a branching strategy.
This document provides information about automating scans with the OWASP Zap security tool, including:
- An introduction to the baseline scan, which runs quickly and can be easily integrated into continuous integration pipelines.
- Options for more thorough scanning using the Zap command line interface, Jenkins plugin, or driving the Zap API directly from scripts.
- Tips for customizing Zap scans, such as configuring authentication, tuning speed and accuracy, and getting help with the documentation and user community.
- A demonstration of exploring targets using the Zap API, running passive and active scans, and generating reports programmatically.
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
This document discusses tuning garbage collection in the Java Virtual Machine. It describes key metrics for measuring garbage collection performance like throughput, footprint, and pause times. Factors that impact these metrics like generation sizing, survivor space ratios, and garbage collector selection are explained. The document also provides guidance on using JVM flags and garbage collection logs to analyze and improve performance.
WebSockets allow for bi-directional communication between a client and server that reduces overhead compared to traditional HTTP requests. This enables real-time updates and instant notifications. Common use cases include chat applications, data feeds that change frequently, and workflow notifications. While browser support is now widespread, adoption has been slowed by compatibility with older browsers, SEO concerns, and firewall configurations that expect HTTP. The Socket.io library makes it easy to use WebSockets with Node.js. Demonstrations show WebSockets enabling a hot potato game, updating app data in real-time, and powering a chat room.
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.
Redis is an open source advanced key-value store, created by antirez. Here is a quick overview of this awesome NoSql DB.
Like a swiss knife, Redis will help you by many ways : LRU cache, high scores, UID generator, queues, social feeds, autocomplete …
Mobile Library Development - stuck between a pod and a jar file - Zan Markan ...Codemotion
Isaac Newton, the father of modern software engineering, called it “Standing on the shoulders of giants”. Modern development is exciting as it gets easier and easier, partly because of the wealth of resources available at our fingertips. One category of these resources are libraries, SDKs, and frameworks. This talk will be a guide into the considerations that go into building a library for both iOS/Swift and Java/Android. We will be taking cues from both my personal experience, as well as from studying how the leaders in the field do it.
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
Once you start working with distributed Big Data systems, you start discovering a whole bunch of problems you won’t find in monolithic systems.
All of a sudden to monitor all of the components becomes a big data problem itself.
In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system once you’re using tools like:
Web Services, Apache Spark, Cassandra, MongoDB, Amazon Web Services.
Not only the tools, what should you monitor about the actual data that flows in the system?
And we’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
За последние годы разными специалистами и компаниями (от Google до Сноудена) был проделан колоссальный объём работы с целью популяризации протокола SSL, а позже и TLS. Дорабатывались протоколы и шифры, обнаруживались десятки уязвимостей, криптографические библиотеки форкались и проводили аудиты, правозащитные фонды выдавали сотни миллионов сертификатов "забесплатно". В конце концов, TLS явочным порядком, в обход стандарта, стал обязательным для HTTP/2-серверов. Так много сил было приложено, что просто-напросто уже невежливо всё это игнорировать.
Однако процесс внедрения TLS за это время, как это ни удивительно, не стал проще ни на йоту. Сисадмины, приступающие к развёртыванию TLS, вынуждены столкнуться с классификацией типов сертификатов, с множеством центров сертификации (которые непонятно, чем друг друга лучше) и с великим множеством дополнительных заголовков и "ручек", каждую из которых можно подёргать с непредсказуемым результатом. В результате даже крупные компании при внедрении TLS допускают ошибки той или иной степени серьёзности (включая, но не ограничиваясь масштабным даунтаймом клиентов GlobalSign), а небольшие стартапы предпочитают, вообще, обходить криптографию стороной.
За отведённые на доклад 45 минут мы постараемся дать описание каждой из пресловутых "ручек" и рекомендации по их [не]применению, а также дадим рекомендации по развёртыванию TLS на крупной инфраструктуре.
This document discusses best practices for designing, scaling, and maintaining large-scale web applications. Some of the key points made include: having a consistent and flexible data model, loosely coupling components for easier testing and replacement, using caching strategies like page fragments and memcached, and emphasizing development practices like version control, testing, and monitoring performance. The document advocates for a modular architecture with components like load balancers, reverse proxies, caching layers, and asynchronous job queues.
The document discusses the CloudStack China User Group, which aims to promote Apache CloudStack in China. It provides information on CloudStack's history and community goals. The group hosts technical meetups and online activities like a website, mailing list, and social media to share information. It also contributes back to the global CloudStack community through localization, bug fixes, and more. The group seeks more involvement to help the ecosystem and technology grow in China.
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
What is different about this generation of web applications? A solid development approach must consider latency, throughput, and interactivity demanded by users users across mobile devices, web browsers, and IoT. These applications often use NoSQL to support a flexible data model and easy scalability required for modern development.
A full stack application (composed of Couchbase, WebAPI, Angular2, and ASP.NET/ASP.NET Core) will be demonstrated in this session. The individual parts of a stack may vary, but the overall design is the focus.
Node.js is an asynchronous JavaScript runtime built on Chrome's V8 JavaScript engine. It allows JavaScript to be run on the server-side and is used for real-time web applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. The document discusses how to install Node.js and manage different versions using the nave package manager.
DevOops Redux Ken Johnson Chris Gates - AppSec USA 2016Chris Gates
In a follow-up to the duo’s offensive focused talk “DevOops, How I hacked you”, they discuss defensive countermeasures and real experiences in preventing attacks that target flaws in your DevOps environments. In this talk, Chris and Ken describe common ways in which DevOps environments fall prey to malicious actors with a focus on preventative steps. The team will present their recommended approach to hardening for teams using AWS, Continuous Integration, GitHub, and common DevOps tools and processes. More specifically, the following items will be demonstrated:
-AWS Hardening
-AWS Monitoring
-AWS Disaster Recovery
-GitHub Monitoring
-OPINT
-Software Development Practices/Processes
-Secure use of Jenkins/Hudson
-Developer laptop hardening (OS X)
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...Codemotion
Il talk si propone di mostrare degli esempi pratici di sviluppo basato su piattaforme Container-native e Serverless, disponibili in Open Source, come naturale evoluzione delle esperienze e delle aspettative dei Development Team. Lo scopo dell’adozione di queste tecnologie non è solo quello di ‘dividere il monolito’ ma soprattutto quello di garantire rapidità di implementazione e sostenibilità del progetto.
JavaOne 2014 Security Testing for Developers using OWASP ZAPSimon Bennetts
This document summarizes a presentation about using the OWASP Zed Attack Proxy (ZAP) for security testing during the development process. ZAP is an open source web application security scanner that can be used by developers to automate security testing. The presentation covers how to configure and use ZAP to explore applications, perform passive and active scans, and integrate ZAP into the development workflow through its API and scripting capabilities. It emphasizes that considering security early in development helps build more secure applications.
OWASP 2014 AppSec EU ZAP Advanced FeaturesSimon Bennetts
The document discusses the advanced features of OWASP ZAP, an open source web application penetration testing tool. It provides an overview of ZAP's main features like its intercepting proxy, scanners, spiders, and add-ons marketplace. It then describes some advanced features in more depth, including contexts for organizing tests, advanced scanning options, scripting with languages like Zest, and the Plug-n-Hack framework for deeper browser integration. The document concludes by noting various work-in-progress projects and encouraging involvement in ZAP's ongoing development.
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
RSYSLOG v8 improvements and how to write plugins in any language.Rainer Gerhards
RSYSLOG is a next generation log processing tool. In the frist part, we will explain the new RSYSLOG v8 engine, its motivation and its benefits. Learn, for example, why writing to Elasticsearch is much faster with the new engine. We will describe the tuning parameters vital for making best use of the new features.
In the second part we will explain how to write RSYSLOG plugins in any language. Traditionally, writing rsyslog plugins has been considered quite hard, with at least C knowledge necessary. In v8, we have introduced new interfaces which make it possible to write plugins in any language - be it Python, Perl or Java. Even bash will do. In essence, this is a great tool for any admin to add special needs with just a bit of scripting. We will proivde concrete instructions on how to write a plugin, point to read-to-copy samples and tell how to integrate this into rsyslog.
NOTE: This is my LinuxTag Berlin 2014 talk.
Dimitri Bellini and Pietro Antonacci - Manage Zabbix Proxies in Remote Networ...Zabbix
This document discusses how an IT company called QUADRATA handled managing multiple remote Zabbix proxies in geographically distributed locations. They initially had issues with huge queues and busy sender processes due to network latency. They addressed this by installing NTP on all machines to synchronize time, optimizing the MySQL databases on proxies to use Percona Server and the innodb_file_per_table setting, and adjusting the DataSenderFrequency and ProxyOfflineBuffer settings to optimize sender processes. They also replicated the Zabbix frontend to account for multiple timezones and eventually migrated to Zabbix 3.0 for performance improvements in server-proxy communication.
OWASP 2013 AppSec EU Hamburg - ZAP InnovationsSimon Bennetts
Slides from my 'ZAP Innovations' talk at AppSec EU 2013 in Hamburg.
For more info about ZAP see: https://www.owasp.org/index.php/ZAP
This document discusses Git strategies for teams. It outlines several branching strategies including "wing and a prayer", long-running branches, Git flow, and branch-per-feature. Git flow uses long-running branches with specific rules for features, hotfixes, bugs, and only merging develop branches to master once stable. Branch-per-feature creates a new branch for each feature or change and nothing is merged until production deployment. The document also discusses automation, team composition, environments, and selection criteria to consider when choosing a branching strategy.
This document provides information about automating scans with the OWASP Zap security tool, including:
- An introduction to the baseline scan, which runs quickly and can be easily integrated into continuous integration pipelines.
- Options for more thorough scanning using the Zap command line interface, Jenkins plugin, or driving the Zap API directly from scripts.
- Tips for customizing Zap scans, such as configuring authentication, tuning speed and accuracy, and getting help with the documentation and user community.
- A demonstration of exploring targets using the Zap API, running passive and active scans, and generating reports programmatically.
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
This document discusses tuning garbage collection in the Java Virtual Machine. It describes key metrics for measuring garbage collection performance like throughput, footprint, and pause times. Factors that impact these metrics like generation sizing, survivor space ratios, and garbage collector selection are explained. The document also provides guidance on using JVM flags and garbage collection logs to analyze and improve performance.
WebSockets allow for bi-directional communication between a client and server that reduces overhead compared to traditional HTTP requests. This enables real-time updates and instant notifications. Common use cases include chat applications, data feeds that change frequently, and workflow notifications. While browser support is now widespread, adoption has been slowed by compatibility with older browsers, SEO concerns, and firewall configurations that expect HTTP. The Socket.io library makes it easy to use WebSockets with Node.js. Demonstrations show WebSockets enabling a hot potato game, updating app data in real-time, and powering a chat room.
Maximize information exchange in your enterprise with AMQPKenneth Peeples
Businesses need to efficiently exchange information inside the enterprise as well as with other enterprises. In order to reduce cost and enhance business agility, an open messaging standard is a necessity for interoperability and integration. Advanced Message Queueing Protocol (AMQP) is the open standard wire-level binary messaging protocol that describes how a message should be structured and sent across the network.
Join this webinar to learn more about:
-What AMQP is and it's applications.
-The features and benefits of AMQP.
-Why you should use AMQP in your enterprise.
-The differences between AMQP and other messaging standards, such as JMS.
-Topologies and architectures possible through the use of AMQP.
HTTP Status Codes Cheat Sheet: An Exhaustive ListMainstreethost
The document provides an exhaustive list of HTTP status codes, divided into categories of informational codes (1xx), success codes (2xx), redirection codes (3xx), client error codes (4xx), and server error codes (5xx). Each code is accompanied by a brief description of its meaning. Some codes are standard across RFCs while others are non-standard or used by specific servers or frameworks.
HTTP has evolved over time to address efficiency and performance issues. HTTP 1.1 was released in 1999 to improve on HTTP 1.0 by allowing multiple requests and responses per connection, required host headers, and added caching headers. SPDY was introduced in 2009 by Google to address mobile network latency and content size issues by interleaving requests and responses. HTTP/2 was standardized in 2015, based on SPDY but with header compression and stronger security requirements. HTTP/2 uses a binary format instead of text, so HTTP 1.1 and HTTP 2 are not compatible, requiring infrastructure to support both.
Real-time Web Application with Socket.IO, Node.js, and RedisYork Tsai
This document summarizes a presentation about building real-time web applications using Socket.IO, Node.js, and Redis. It introduces Socket.IO for enabling real-time bidirectional communication across browsers. It then discusses using Redis for data persistence and as a pub/sub messaging system to integrate components and ensure scalability. The document provides code examples and addresses questions about authentication, load balancing, and configurations.
Rami Sayar presented on ECMAScript 6 (ES6) features including block scoping with let and const, destructuring, modules and classes, and iterators and generators. ES6 is targeted for ratification in mid-2015 and brings significant updates to JavaScript. Browser and Node.js support is emerging for ES6 features through experimental flags or transpilation to ES5.
The document discusses techniques for building real-time web applications using Django and web sockets. It describes how web sockets enable persistent connections and low-latency communication between clients and servers. The document then introduces django-socketio, a Django application that integrates web sockets to allow building real-time features. Django-socketio features channels for partitioning communication and an event system similar to Django signals.
This document provides an overview of Django Channels, which allows Django applications to handle non-HTTP requests like WebSockets and background tasks. It discusses how Channels adds an asynchronous interface to allow request/response, WebSockets, and background processes to run concurrently. Scaling options like adding workers, Redis sharding, and using multiple channel layers are also covered. Examples demonstrate setting up Channels, routing, and running asynchronous tasks.
React has been named the front-end library to learn in 2016! React Native has also picked up tremendous steam as a way to build cross-platform apps with React. In this talk, Rami will do a quick 5 minute introduction to React's core concepts. Following, Rami will introduce React Native, discuss the differences between React & React Native, and show you how to build a simple Android application. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal.
OVERVIEW
Twitter Bootstrap is a wildly popular HTML and CSS framework for building websites and web applications. It is the number 1 project on GitHub. Bootstrap supports responsive web design, allowing the layout of your page to adapt to the device (desktop, tablet, mobile). This talk will introduce you to the basics of using Bootstrap and show you how to build responsive web layouts to build your own app.
TARGET AUDIENCE
Beginner web developers
ASSUMED AUDIENCE KNOWLEDGE
Working knowledge of HTML5 and CSS3.
OBJECTIVE
Learn how to use Twitter Bootstrap to quickly build a beautiful, responsive web app.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Twitter Bootstrap basics
Bootstrap CSS basics
Bootstrap responsive layouts
Bootstrap components
JavaScript Bootstrap plugins
Redis : Database, cache, pub/sub and more at Jelly button gamesRedis Labs
Nir Shney-Dor of Jelly button games talks about how he uses Redis across many different use cases - as a persistent db, cache, for pub/sub, leaderboards etc etc..Fun walkthrough of all the uses one can put Redis to.
This document discusses real-time communication techniques like websockets and compares them to traditional polling. It explains that websockets provide full-duplex, low latency connections supported by modern browsers. Websockets can be used for chat, social feeds, and collaborative editing. The document also provides code samples for setting up websocket servers with Node.js and Socket.io. It discusses challenges like statefulness, scalability, and broadcasting to multiple clients.
Implementation of RSA Algorithm for Speech Data Encryption and DecryptionMd. Ariful Hoque
An efficient implementation of RSA algorithm for speech data encryption and decryption. At first, five hundred Bangla speech words were recorded from six different speaker and stored as RIFF (.wav) file format. Then our developed program was used to extract data from these words and this data were stored in a text file as integer data. Finally, we used our implemented program to encrypt and decrypt speech data.
This is the slides I used when I shared my humble insight on Django to the students in University of Taipei in 2016. Please feel free to correct me if there is anything wrong.
Celery is an open source asynchronous task queue/job queue based on distributed message passing. It allows tasks to be executed concurrently, in the background across multiple servers. Common use cases include running long tasks like API calls or image processing without blocking the main process, load balancing tasks across servers, and concurrent execution of batch jobs. Celery uses message brokers like RabbitMQ to asynchronously queue and schedule tasks. Tasks are defined as Python functions which get executed by worker processes. The workflow involves defining tasks, adding tasks to the queue from views or management commands, and having workers process the tasks.
Rami Sayar presented on advanced Django architecture techniques for scaling Django applications in production environments. He discussed load balancing Django across multiple servers using solutions like HAProxy. He also covered caching with Varnish to improve performance, and using Redis or Memcached for caching. Finally, he discussed asynchronous task queues like Celery for processing tasks outside the request-response cycle.
This document discusses using websockets for real-time communication with Node.js and Socket.io. It introduces Node.js as an event-driven JavaScript runtime for building scalable network applications. Socket.io is presented as a library that allows real-time applications across browsers and devices by abstracting implementations of WebSocket, Flash Socket, AJAX long polling and more. Code examples and a demo project are provided to illustrate setting up a Socket.io server with Node.js and connecting a client.
The document discusses building real-time web applications. It addresses three hard problems: talking to the browser in real-time using techniques like polling, websockets, and flash sockets; handling high concurrency through non-blocking I/O; and scaling to support many users. It reviews common real-time frameworks like Twisted, Tornado, gevent, Node.js, and Erlang and recommends Twisted for Python and Node.js with Socket.IO for non-Python. It also discusses using Redis for a real-time backend pub/sub system and scaling strategies like adding frontend and backend nodes.
The document discusses various technologies and languages including PHP, Python, Ruby, Go, Scala, and Red. It mentions tools for mobile development like PhoneGap and frameworks like jQuery, Dojo, and Sencha. Other topics covered include Node.js, HTML5, cloud computing platforms, virtualization, and decoupled content management systems. Resources and links are provided for many of the languages and technologies discussed.
Python Web Framework – A Detailed List of Web Frameworks in Pythonabhishekdf3
If your mission with Python is to develop for the Web, Python will help you with that with its range of frameworks.
Today in Python Web Framework tutorial, we will briefly discuss Web Frameworks offered by Python Programming Langauge: Full-Stack Frameworks in Python, and Non- Full-Stack Frameworks in Python.
So, let’s talk about Python Web Framework Tutorial.
Learn more at :- https://data-flair.training/courses/python-course/
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTFrank Greco
WebSocket is not just a push mechanism. There are other HTTP-based mechanisms for simply sending a short notification to the browsers. It is much more. This presentation was given at both JavaOne 2015 and HTML5DevConf 2015 with slightly different Java/JavaScript information, but the basic information is the same.
This document summarizes a presentation about end-to-end HTML5 APIs. It discusses the history of the web and standards including HTTP, HTML, JavaScript, REST, W3C, ECMA, and CommonJS. It then covers using JavaScript on the server with engines like SpiderMonkey, Rhino and V8. HTML5 APIs that can be used both client-side and server-side with JavaScript are presented, including Web Workers, Web Sockets and remote debugging. Finally, implementations of server-side JavaScript like Node.js and Wakanda are compared, and the potential for shared client-server JavaScript APIs through a W3C community group is discussed.
This document discusses using server-side JavaScript with MooTools and CommonJS. It introduces MooTools installation and CommonJS benefits. A common problem is addressed around sharing code between server and client-side JavaScript. PyCow and Meso/Deck are presented as solutions. Examples are provided and various server-side JavaScript implementations like Node.js are listed. Resources for further information are included at the end.
This document summarizes and compares several popular web application frameworks: Ruby on Rails, Grails, Flex, and Google Web Toolkit (GWT). It discusses the REST support and one-to-many capabilities of each framework. It also compares performance and supported platforms. The document concludes that the choice of framework depends on the specific application requirements and recommends prototyping with each framework before selecting one.
This document provides a high-level overview of JavaScript and Node.js. It discusses how JavaScript originated as a browser scripting language but is now widely used for server-side applications through Node.js. Node.js uses Google's V8 JavaScript engine and allows JavaScript code to run outside of browsers. Popular Node.js frameworks like Express.js are introduced. Key features of JavaScript like asynchronous programming and Node.js concepts like modules, middleware, and MongoDB are summarized at a high level.
Patrick Chanezon and Guillaume Laforge are presenting Google App Engine Java and Gaelyk, the lightweight groovy toolkit on top of the GAE SDK, at the Devoxx conference
This document summarizes Konrad Malawski's talk on reactive programming and related topics. Konrad discusses reactive streams, Akka toolkit for building concurrent applications, actors model for concurrency, and how circuit breakers can be used as a substitute for flow control. He also talks about the origins and development of reactive streams specification to provide a common set of semantics for backpressure.
Node.js is a platform that enables building real-time web applications using JavaScript. It allows for non-blocking I/O which makes it well-suited for real-time applications like Twitter and Facebook that deliver information to users as soon as it is published. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient for data-intensive real-time applications compared to other frameworks. Socket.IO is a library that simplifies real-time communication with WebSockets in Node.js applications.
This presentation provides an overview of the Django web framework, including what it is, where it came from, what its features are, and some examples of companies that use it. Django is an open-source Python web framework that aims to ease the creation of database-driven websites. It was originally developed to manage fast news sites and emphasizes rapid development and high performance. The presentation describes Django's main components and features.
My Stackato presentation given to the CopenhagenJS user group. Basic examples were implemented in Node.
More information available at: https://logiclab.jira.com/wiki/display/OPEN/Stackato
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
PhoneGap allows developers to build mobile apps using HTML, CSS and JavaScript instead of relying on platform-specific languages like Objective-C or Java. The document discusses PhoneGap's capabilities and advantages, including writing apps once that run on multiple platforms, using web technologies that are widely known by developers, and leveraging growing browser capabilities on mobile through HTML5. It also outlines PhoneGap's APIs, tools, libraries, and community to help developers get started building cross-platform mobile apps.
Node.js is a JavaScript runtime environment that allows JavaScript to be run on the server side. It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient for data-intensive real-time applications that require persistent connections. Some common uses of Node.js include real-time web applications, building APIs, and handling multiple connections at once without creating new threads. The document discusses why Node.js is well-suited for applications that require maintaining persistent connections from the browser to send updates in real-time using techniques like long-polling.
The document discusses the Java Virtual Machine (JVM) and ways to monitor and analyze JVM performance using Splunk. It provides an overview of the history and evolution of the JVM. It then details various sources of machine data from the JVM, such as application logs, JMX, garbage collection logs, and HPROF profiling dumps, that can be ingested into Splunk. It describes how to correlate this JVM data with operating system metrics and custom instrumentation to gain insights into application performance and issues. Finally, it presents a vision of fully instrumenting the JVM and applications with Splunk for comprehensive monitoring and troubleshooting.
Slides for the 60 minutes workshop I presented at the virtual edition of ClueCon 2020 (ClueCon Deconstructed). The many slides cover different aspects in Janus, ranging from configuration, to plugins, how to write your own plugin, core features, recording, monitoring, and so on. Unfortunately I didn't have enough time to talk about everything, but slides should be easy to follow anyway.
This text presentation attempts to hit on the highlight features and structure of Django and its ecco-system. It is intended as an introduction for those who are curious about , what is it?
Responsive images are crucial to delivering stunning responsive web sites. Now that the <picture> element and srcset feature have found their way into every browser with to a certain degree following a common standard, there is no excuse for refusing to add art-directed responsive images to your grunt, gulp or webpack build flow or backend CMS/blog. This talk will explore the state of the art in building art-directed responsive images and will showcase several tools and techniques that web designers can use to automate art-directed responsive images.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your node app? Cry no more, your tears will be reshaped into blinding swords as we explore uncharted territories laced with mystical creatures.
JavaScript debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your node or frontend app. Libraries and tools such as node-inspector, Time-Travel Debugging, Visual Studio Code, vorlon.js, Vantage and memory leak catchers will be used to slay dragons.
No more shall you fear building complex apps with JavaScript!
An Intense Overview of the React EcosystemRami Sayar
React has been named the front-end library to learn in 2016 however few people talk about the React without mentioning Flux (or Redux or React Native or Relay). In this talk, we will explore the ecosystem of tools and libraries that surround React. We will look at the various Flux implementations (including a short explanation of Flux) like Redux, at react-router, at some of the reactive database or reactive API libraries and finally at everyday tools and techniques that make the React developer happy. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal.
Animations on the web have a storied history and no consistent approach. Using CSS animations is still considered an experimental technology but much can be created already. In this talk, we will explore how to create beautiful CSS animations, cover the compatibility between different browsers, share some ready-libraries for quickly animating your elements and share tools to help you build animations faster.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your WordPress site? Cry no more, your tears will be reshaped as blinding swords as we explore uncharted territories laced with mystical creatures.
Debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your WordPress site.
FITC - Here Be Dragons: Advanced JavaScript DebuggingRami Sayar
This document discusses common types and locations of errors in JavaScript, tools for debugging and introspecting JavaScript code, and methods for remotely debugging Node.js and front-end JavaScript applications. It covers loading errors, runtime errors, logic errors, and frequent error locations in JavaScript. Debugging tools discussed include node-inspector, Visual Studio Code, Vantage, and Vorlon.js. Remote debugging of Node.js processes and front-end code is also covered.
Node.js 101 with Rami Sayar
Presented on September 18 2014 at
FITC's Web Unleashed Toronto 2014 Conference
More info at www.fitc.ca
OVERVIEW
Node.js is a runtime environment and library for running JavaScript applications outside the browser. Node.js is mostly used to run real-time server applications and shines through its performance using non-blocking I/O and asynchronous events. This talk will introduce you to Node.js by showcasing the environment and its two most popular libraries: express and socket.io.
TARGET AUDIENCE
Beginner web developers
ASSUMED AUDIENCE KNOWLEDGE
Working knowledge of JavaScript and HTML5.
OBJECTIVE
Learn how to build a chat engine using Node.js and WebSockets.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Node.js environment and basics
Node Package Manager overview
Web Framework, express, basics
WebSockets and Socket.io basics
Building a chat engine using Node.js
Rami Sayar gave a presentation on data visualization principles and best practices. He covered five principles: 1) context is king, 2) visualizations must match the underlying data, 3) escaping flatland when useful, 4) aggregating details can reveal knowledge in data, and 5) layering and parallelizing views but avoiding "haystacks". He provided examples from Mike Bostock's work with stop-and-frisk data and choropleth maps. Sayar also demonstrated techniques like cubism and recommended resources like books by Edward Tufte and websites like FlowingData.com for learning more about data visualization design.
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC
Terry Sweetser, Training Delivery Manager (South Asia & Oceania) at APNIC presented an APNIC update at NZNOG 2025 held in Napier, New Zealand from 9 to 11 April 2025.
Smart Mobile App Pitch Deck丨AI Travel App Presentation Templateyojeari421237
🚀 Smart Mobile App Pitch Deck – "Trip-A" | AI Travel App Presentation Template
This professional, visually engaging pitch deck is designed specifically for developers, startups, and tech students looking to present a smart travel mobile app concept with impact.
Whether you're building an AI-powered travel planner or showcasing a class project, Trip-A gives you the edge to impress investors, professors, or clients. Every slide is cleanly structured, fully editable, and tailored to highlight key aspects of a mobile travel app powered by artificial intelligence and real-time data.
💼 What’s Inside:
- Cover slide with sleek app UI preview
- AI/ML module implementation breakdown
- Key travel market trends analysis
- Competitor comparison slide
- Evaluation challenges & solutions
- Real-time data training model (AI/ML)
- “Live Demo” call-to-action slide
🎨 Why You'll Love It:
- Professional, modern layout with mobile app mockups
- Ideal for pitches, hackathons, university presentations, or MVP launches
- Easily customizable in PowerPoint or Google Slides
- High-resolution visuals and smooth gradients
📦 Format:
- PPTX / Google Slides compatible
- 16:9 widescreen
- Fully editable text, charts, and visuals
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingsteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Reliable Vancouver Web Hosting with Local Servers & 24/7 Supportsteve198109
Looking for powerful and affordable web hosting in Vancouver? 4GoodHosting offers premium Canadian web hosting solutions designed specifically for individuals, startups, and businesses across British Columbia. With local data centers in Vancouver and Toronto, we ensure blazing-fast website speeds, superior uptime, and enhanced data privacy—all critical for your business success in today’s competitive digital landscape.
Our Vancouver web hosting plans are packed with value—starting as low as $2.95/month—and include secure cPanel management, free domain transfer, one-click WordPress installs, and robust email support with anti-spam protection. Whether you're hosting a personal blog, business website, or eCommerce store, our scalable cloud hosting packages are built to grow with you.
Enjoy enterprise-grade features like daily backups, DDoS protection, free SSL certificates, and unlimited bandwidth on select plans. Plus, our expert Canadian support team is available 24/7 to help you every step of the way.
At 4GoodHosting, we understand the needs of local Vancouver businesses. That’s why we focus on speed, security, and service—all hosted on Canadian soil. Start your online journey today with a reliable hosting partner trusted by thousands across Canada.
Understanding the Tor Network and Exploring the Deep Webnabilajabin35
While the Tor network, Dark Web, and Deep Web can seem mysterious and daunting, they are simply parts of the internet that prioritize privacy and anonymity. Using tools like Ahmia and onionland search, users can explore these hidden spaces responsibly and securely. It’s essential to understand the technology behind these networks, as well as the risks involved, to navigate them safely. Visit https://torgol.com/
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC
Joyce Chen, Senior Advisor, Strategic Engagement at APNIC, presented on 'APNIC Policy Development Process' at the Local APIGA Taiwan 2025 event held in Taipei from 19 to 20 April 2025.
DNS Resolvers and Nameservers (in New Zealand)APNIC
Geoff Huston, Chief Scientist at APNIC, presented on 'DNS Resolvers and Nameservers in New Zealand' at NZNOG 2025 held in Napier, New Zealand from 9 to 11 April 2025.
Best web hosting Vancouver 2025 for you businesssteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
1. The State of WebSockets in Django
Rami Sayar - @ramisayar
Technical Evangelist
Microsoft Canada
2. Agenda
• Where is WebSockets right now?
• Where is Socket.IO?
• Where does Django fit in?
• Using Django SwampDragon.
• Using Gevent.
CONFOO - @RAMISAYAR
4. What is a production web app?
• Django is surrounded by tons
of applications, services and
code in production.
• Advanced Django architecture
is needed to support Django
in production without failing
hard.
• WebSockets falls apart from
the rest.
CONFOO - @RAMISAYAR
5. WebSockets
• “WebSocket is a protocol for
full-duplex communication
channels over a single TCP
connection.” Wikipedia
• Image Reference
CONFOO - @RAMISAYAR
7. Socket.IO
• “Socket.IO enables real-time
bidirectional event-based
communication. It works on
every platform, browser or
device, focusing equally on
reliability and speed.”
Reference
• Use by everyone: Microsoft
Office, Yammer, Zendesk,
Trello, etc…
CONFOO - @RAMISAYAR
10. Python and WebSockets
• Python and WebSockets has notoriously been very difficult.
• Two reasons:
• WSGI protocol does not support WebSockets. Most popular form of
web request handling in the Python web apps. Most frameworks are
designed for use with FastCGI or mod_wsgi, etc.
• Default Python networked apps not exactly designed for event-based
communication, you have to use things like gevent and twisted/tornado.
CONFOO - @RAMISAYAR
11. Django & WebSockets
• Django applications complete HttpResponses.
• Django not well suited for WebSocket event handling structure
nor the channel approach in Socket.IO.
CONFOO - @RAMISAYAR
13. gevent
• “gevent is a coroutine-based Python networking library that
uses greenlets to provide a synchronous API on top of the libev
event loop.”
• Event loop based on libev (same as Node.js)
• Lightweight execution units, a.k.a. “lightweight threads”.
• Cooperative sockets with SSL support.
• Similar programming model to Node.js.
CONFOO - @RAMISAYAR
14. gevent-socketio
• gevent-socketio is a pure Python implementation of the
Socket.IO protocol. Basically, it is a port of Socket.IO and
typically behind in major releases.
• Designed to work with multiple different WSGI-based web
frameworks.
• Handles the “WSGI” problem by providing a custom gevent
WSGI server for use with gevent-socketio.
• Only dependencies are gevent.
• Imperfect solution: Django is still blocking (monkey
patching is not perfect).
CONFOO - @RAMISAYAR
16. “Native” Django Implementation
• Previous approach requires significant modifications to your
current Django app serving stack. Native as in you don’t need to
know anything besides Django.
• Building an implementation of WebSockets on top of Django.
• Identified two problems for WebSockets in Django:
• Problems with WSGI still present EXCEPT in uWSGI.
• Networked event handling model is problematic.
• Solution:
• Use Nginx which follows – event-driven async architecture.
• uWSGI & Gevent for event handling.
CONFOO - @RAMISAYAR
17. Django-WebSocket-Redis
• Module implements websockets on top of Django.
• Use Redis as a data store for messaging behind uWSGI and Nginx.
• Runs a separate Django main loop in a cooperative concurrency
model using gevent -> 1 thread for all open websockets.
• Django can be started as usual with ‘./manage.py runserver’.
• Normal requests communication with separate main (websocket)
loop through Redis.
• Read:
Offloading Websockets and Server-Sent Events AKA “Combine
them with Django safely”
CONFOO - @RAMISAYAR
19. SwampDragon
• New project that adds websocket support
• Self-publishing models
• Django ORM Style Data Filter for Subscription Channels –
Similar to WebSockets + Data Filter
• Relies on Redis for messaging + Tornado
• Angular JS Support
CONFOO - @RAMISAYAR
21. On Redis
• Redis is extremely popular as an easy and simple publish-
subscribe.
• Redis is very particular about memory. Running out of memory
in Redis -> CRASH AND BURN!
• If you don’t have enough memory in your VM to run Redis
Cache -> Change your approach, use Apache Kafka.
CONFOO - @RAMISAYAR
22. What did we learn?
• The State of WebSockets in Django.
• Django and WebSockets is not impossible.
CONFOO - @RAMISAYAR