This document discusses Clojure and the architecture used at Nuday Games for their game Rock Science. Key points include:
- Nuday Games uses Clojure for its backend due to benefits like concurrency, small team productivity, and attracting good engineers
- The architecture includes a frontend iOS app, load balancers, HTTP servers running a REST API on Tomcat, and databases
- The REST API is built with Liberator and routes/resources are defined with namespaces, schemas are used for validation
- Events are stored in a DynamoDB table and can be queried to retrieve events by player ID and timestamp
- Mutation commands could be replayed by reading from the event log in
The document discusses using WebSockets, Unity3D, and Clojure to build mobile games. It describes how WebSockets enable bidirectional communication between a server and client. It also discusses using Clojure and AWS services like SNS, SQS, and DynamoDB to build a server that can handle real-time events and scale. The server uses HTTP Kit to implement WebSockets and pubsub to distribute messages between clients.
This document discusses using WebSockets in Unity games and describes how to implement a finite state machine to handle asynchronous WebSocket events on the main thread. It begins with an overview of WebSockets and their advantages over polling. It then demonstrates how to connect to a WebSocket server and handle events like connection, receiving messages, and disconnection using the WebSocket Sharp library. To address Unity's single-threaded model, it presents a finite state machine pattern that queues asynchronous WebSocket events to be processed on the main thread. Sample code is provided to illustrate setting up and transitioning between states to safely coordinate the WebSocket connection and events.
The document describes UBIC, a toolkit for writing daemons, init scripts, and services in Perl. It provides common classes that handle tasks like starting, stopping, and monitoring services that simplify writing init scripts. Services can be organized hierarchically and non-root users can run services. The toolkit also provides HTTP status endpoints and watchdog functionality to restart services that fail. UBIC sees widespread use at Yandex across many packages, clusters, and hosts.
Websockets talk at Rubyconf Uruguay 2010Ismael Celis
This document discusses using WebSockets for real-time applications in Ruby. It begins with an overview of WebSockets and use cases. It then covers the WebSocket DOM API, handshake process, and implementing a WebSocket server in Ruby with EventMachine and EM-WebSocket. It provides an example of building a multicast channel application with JSON messages. It also discusses scaling options like Pusher and shows code samples for a Pusher implementation.
The document discusses Dijkstra's algorithm and its use for finding the shortest path between nodes in a graph. It includes code examples implementing Dijkstra's algorithm to calculate routes on a subway map with nodes and lines stored in CSV files. Additional topics summarized include using Vagrant to configure a development environment, the PHP microframework Silex, dependency managers like Bower and Composer, and the JavaScript task runner Grunt.
This is my presentation from TechBeats #3 hosted by Applause about Server-Side Swift framework called Vapor.
Swift is a great language and possibility of using it also in backend is a huge benefit for any iOS developer out there. Using Vapor is a seamless experience. With this framework creating advance APIs by iOS developer is as easy as writing simple iOS app.
https://www.meetup.com/TechBeats-hosted-by-Applause/events/254910023/
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It introduces events and an event queue to handle asynchronous and non-blocking operations. Everything runs as a callback from the event loop. Node.js wraps OS operations in modules to make file, network, and other operations non-blocking and event-driven. It also introduces a module system where each module gets its own private scope. Common patterns in Node.js include using the listener/emitter pattern to handle events and building applications with streams of data.
The document discusses using Lua modules with Nginx. It provides an overview of Nginx and Lua, describing their key features and popular uses. It then covers how to integrate Lua into Nginx using the ngx_lua module, allowing Lua code to run at various phases of the Nginx request lifecycle. Specific techniques demonstrated include using Lua for shared memory caching, logging, issuing subrequests, and network communication via cosockets. Examples of practical applications like load balancing and analytics tagging are also presented.
The document discusses using WebSockets, Unity3D, and Clojure to build mobile games. It describes how WebSockets enable bidirectional communication between a server and client. It also discusses using Clojure and AWS services like SNS, SQS, and DynamoDB to build a server that can handle real-time events and scale. The server uses HTTP Kit to implement WebSockets and pubsub to distribute messages between clients.
This document discusses using WebSockets in Unity games and describes how to implement a finite state machine to handle asynchronous WebSocket events on the main thread. It begins with an overview of WebSockets and their advantages over polling. It then demonstrates how to connect to a WebSocket server and handle events like connection, receiving messages, and disconnection using the WebSocket Sharp library. To address Unity's single-threaded model, it presents a finite state machine pattern that queues asynchronous WebSocket events to be processed on the main thread. Sample code is provided to illustrate setting up and transitioning between states to safely coordinate the WebSocket connection and events.
The document describes UBIC, a toolkit for writing daemons, init scripts, and services in Perl. It provides common classes that handle tasks like starting, stopping, and monitoring services that simplify writing init scripts. Services can be organized hierarchically and non-root users can run services. The toolkit also provides HTTP status endpoints and watchdog functionality to restart services that fail. UBIC sees widespread use at Yandex across many packages, clusters, and hosts.
Websockets talk at Rubyconf Uruguay 2010Ismael Celis
This document discusses using WebSockets for real-time applications in Ruby. It begins with an overview of WebSockets and use cases. It then covers the WebSocket DOM API, handshake process, and implementing a WebSocket server in Ruby with EventMachine and EM-WebSocket. It provides an example of building a multicast channel application with JSON messages. It also discusses scaling options like Pusher and shows code samples for a Pusher implementation.
The document discusses Dijkstra's algorithm and its use for finding the shortest path between nodes in a graph. It includes code examples implementing Dijkstra's algorithm to calculate routes on a subway map with nodes and lines stored in CSV files. Additional topics summarized include using Vagrant to configure a development environment, the PHP microframework Silex, dependency managers like Bower and Composer, and the JavaScript task runner Grunt.
This is my presentation from TechBeats #3 hosted by Applause about Server-Side Swift framework called Vapor.
Swift is a great language and possibility of using it also in backend is a huge benefit for any iOS developer out there. Using Vapor is a seamless experience. With this framework creating advance APIs by iOS developer is as easy as writing simple iOS app.
https://www.meetup.com/TechBeats-hosted-by-Applause/events/254910023/
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It introduces events and an event queue to handle asynchronous and non-blocking operations. Everything runs as a callback from the event loop. Node.js wraps OS operations in modules to make file, network, and other operations non-blocking and event-driven. It also introduces a module system where each module gets its own private scope. Common patterns in Node.js include using the listener/emitter pattern to handle events and building applications with streams of data.
The document discusses using Lua modules with Nginx. It provides an overview of Nginx and Lua, describing their key features and popular uses. It then covers how to integrate Lua into Nginx using the ngx_lua module, allowing Lua code to run at various phases of the Nginx request lifecycle. Specific techniques demonstrated include using Lua for shared memory caching, logging, issuing subrequests, and network communication via cosockets. Examples of practical applications like load balancing and analytics tagging are also presented.
This document provides an overview of Bash scripting concepts including file systems, variables and strings, math operations, file ownership and permissions, users and privileges, processes and subshells, loops, conditional statements, I/O redirection, named pipes, signals, and GUI tools. It also includes examples of Bluetooth file sharing, auto-shutdown scripts, lockscreen notifications, web crawling scripts, and time tracking automation. References are provided for further reading.
Node.js is an asynchronous JavaScript runtime that allows for efficient handling of I/O operations. The presentation discusses developing with Node.js by using modules from NPM, debugging with node-inspector, common pitfalls like blocking loops, and best practices like avoiding large heaps and offloading intensive tasks. Key Node.js modules demonstrated include Express for web frameworks and Socket.io for real-time applications.
Socket.io is a JavaScript library that enables real-time bidirectional event-based communication between web clients and servers. It uses multiple transport mechanisms including WebSocket, polling, and flash sockets and has built-in support for reconnecting clients and detecting disconnections through heartbeats. Socket.io allows for multiple sockets under a single connection using namespaces and has a lightweight protocol that sits on top of HTTP.
Roll Your Own API Management Platform with nginx and LuaJon Moore
We recently replaced a proprietary API management solution with an in-house implementation built with nginx and Lua that let us get to a continuous delivery practice in a handful of months. Learn about our development process and the overall architecture that allowed us to write minimal amounts of code, enjoying native code performance while permitting interactive codeing, and how we leveraged other open source tools like Vagrant, Ansible, and OpenStack to build an automation-rich delivery pipeline. We will also take an in-depth look at our capacity management approach that differs from the rate limiting concept prevalent in the API community.
Using Node.js to Build Great Streaming Services - HTML5 Dev ConfTom Croucher
The document discusses using Node.js to build streaming services. It describes how Node.js allows for scalable server-side code using JavaScript and mentions libraries like JSONStream that can be used to parse JSON streams. The document also discusses different types of streaming like simplex, throughput, and duplex streaming and how to manage backpressure in streams.
Asynchronous PHP and Real-time MessagingSteve Rhoades
The document discusses asynchronous programming in PHP using non-blocking I/O and event loops. It covers using asynchronous techniques like ReactPHP to scrape web pages concurrently without blocking. Promises and streams are also discussed as ways to handle asynchronous operations and pass data between components. Finally, messaging techniques like websockets and WAMP are presented as ways to build real-time applications.
The document provides an overview of Node.js and why it is useful for building scalable network programs. It discusses how Node.js uses asynchronous and non-blocking I/O to handle thousands of concurrent connections using a single thread. This allows Node.js applications to scale horizontally by adding more machines. It also covers how the asynchronous programming model requires a different "mind shift" compared to traditional synchronous approaches.
"As an asynchronous event driven JavaScript runtime, Node is designed to build scalable network applications" così si presenta Node.js, piattaforma tecnologica che - grazie alla sua immediatezza e produttività - ha conquistato dapprima startup e piccole aziende, fino a ritagliarsi uno spazio importante in realtà come IBM, LinkedIn, Netflix e Yahoo. La stessa Microsoft ha riconosciuto le potenzialità della piattaforma, tanto da integrare Node.js in Visual Studio Code e nelle ultime release di Visual Studio, oltre a basarci alcuni dei propri servizi di Azure come "Mobile Services" e "Functions".
In questa sessione vedremo come implementare con Node.js alcuni scenari applicativi comuni nell’ambito dello sviluppo web, analizzando quando la sua adozione può portarci vantaggi nel nostro lavoro quotidiano. In conclusione, faremo una breve panoramica architetturale, descrivendo alcuni scenari di cooperazione tra .NET e Node.js nello stesso sistema.
Codice e demo: https://github.com/rucka/CommunityDays2016
This document discusses using ngx_lua with UPYUN CDN. It provides examples of using Lua with Nginx for tasks like caching, health checking, and configuration as a service. Key points include using Lua for base64 encoding, Redis lookups, and upstream health checking. Lua provides a more flexible alternative to C modules for tasks like these by leveraging its embedding in Nginx via ngx_lua.
1. The document shows examples of using Node.js to log messages to the console, create an HTTP server that returns "Hello World", export and require functions between files, and create and use object prototypes that inherit from EventEmitters.
2. It also includes examples of a basic Node.js package.json file, connecting to servers and emitting events, and writing partial responses that cannot be modified further in an HTTP response.
3. The examples demonstrate fundamental Node.js concepts like modules and exports, HTTP servers, event emitters, and asynchronous programming.
Building Java and Android apps on the blockchain Conor Svensson
In this talk, I demonstrate how you can integrate JVM applications with the Ethereum blockchain.
I provide an overview of what a blockchain is, how the Ethereum blockchain works, and how you can deploy and interact with smart contracts on Ethereum, all from within the JVM, thanks to web3j.
You’ll also learn about web3j’s usage of ReactiveX’s Observable, and the great enhancements it was able to bring to the library, both internally and externally for its users working with the blockchain.
Каждый день появляется по новому JavaScript фрeймворку или новой технологии. И каждый день мы задаемся вопросом, как за всем этим успеть? Константин даст Вам серебряную пулю. Вы будете знать, как быстро разобраться в React, PostCss, RxJS, Redux, CycleJs, Angular и даже в неизвестном супер фреймворке. Увидим, что стоит за трендами технологий 2016.
Подробнее: https://mavrin.github.io/pres-be-first/#1
"The little big project. From zero to hero in two weeks with 3 front-end engi...Fwdays
It is believed that the front end is only one part of the job. We need a backend to store data, we need some DevOps. Oh, I also forgot about QA. There are legends about titans from the past who could single-handedly draw a design and launch a website.
But here's the real story: we has the Great Idea, it won't work without a back-end, there are only front-end developers in the team, outsourcing is possible only in design, the deadline is too near. Just smile and wave... Or we will can realised the project uses front-end technologies only, cut comlicated things, dive into devops. Spoiler: we did it, the Bobuk-Bacek formula works, JavaScript is power.
You will find out how I Love Front-end was launched, what was cut off by Occam's razor and why everyone hates the Mona Lisa.
Audience and level.
Full-stack developers and front-end developers who want to learn how to make back-end for front-end. Just curious guys. Level from junior to middle.
This document provides an overview and examples of using the AnyEvent module in Perl. AnyEvent allows asynchronous and non-blocking I/O, and provides wrappers for various event loops including EV, libevent, POE and Glib. It summarizes:
1) How to create timers, I/O watchers, and condition variables to monitor events asynchronously.
2) Examples of using timers to trigger callbacks periodically, I/O watchers to monitor file handles for read availability, and condition variables to wait for events.
3) Potential bugs when using AnyEvent related to sockets, timeouts and differences between event loops, and solutions to address these bugs.
Web3j 2.0 introduces options for transaction managers when interacting with Ethereum blockchains, including offline signing, online signing, and support for clients like Quorum. It also improves event filtering by making it simpler to create reactive Observable streams of contract events in Java. The new release integrates with Spring Boot and includes performance improvements like faster light wallet generation and IPC client connections.
The document shows code examples for creating HTTP servers and setting up middleware in Node.js using packages like Connect, Express, and Consolidate. It also includes examples of routing and rendering views with Express.
A gentle introduction to Observability and how to setup a highly available monitoring platform across multiple datacenters.
During this talk we will investigate how we can setup and monitor an monitoring setup across 2 DCs using Prometheus, Loki, Tempo, Alertmanager and Grafana. monitoring some services with some lessons learned along the way.
This document describes a class called PuertoNet that is used to connect an Arduino to a computer via a serial port. The class contains methods for opening and closing the serial port connection, sending and receiving data, and controlling buttons to connect, disconnect, send on, send off, and exit. When data is received, it is displayed in a text box, and sending data appends it to the receive text with a label of "Received".
Using Mikko Koppanen's PHP ZMQ extension we will look at how you can easily distribute work to background processes, provide flexible service brokering for your next service oriented architecture, and manage caches efficiently and easily with just PHP and the ZeroMQ libraries. Whether the problem is asynchronous communication, message distribution, process management or just about anything, ZeroMQ can help you build an architecture that is more resilient, more scalable and more flexible, without introducing unnecessary overhead or requiring a heavyweight queue manager node.
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"DataStax Academy
The ColumnFamily data model and wide-row support provides the ability to store and access data efficiently in a de-normalized state. Recent enhancements for CQL's spare tables and built-in indexing provide the capability to store data in a manner similar to that of relational databases. For many use cases hybrid approaches are needed, because complete de-normalization is appropriate for some access patterns whereas more structured data is appropriate for others. At times a single logical event becomes multiple insertions across multiple column families. Likewise a user request might require a several reads across different column families. This talk describes some of these scenarios and demonstrates how advanced operations such multiple step procedures, filtering, intersection, and paging can be implemented client side or server side with the help of the IntraVert plugin.
Intravert Server side processing for CassandraEdward Capriolo
The document provides examples of using CQL (Cassandra Query Language) to create and query tables in Cassandra. It shows how to create tables to store user and video data, insert sample records, and perform queries. It then discusses using the IntraVert library to execute more complex queries directly against Cassandra, such as joins, filters, and multi-table operations, in order to reduce network traffic and processing compared to doing everything on the client side.
This document provides an overview of Bash scripting concepts including file systems, variables and strings, math operations, file ownership and permissions, users and privileges, processes and subshells, loops, conditional statements, I/O redirection, named pipes, signals, and GUI tools. It also includes examples of Bluetooth file sharing, auto-shutdown scripts, lockscreen notifications, web crawling scripts, and time tracking automation. References are provided for further reading.
Node.js is an asynchronous JavaScript runtime that allows for efficient handling of I/O operations. The presentation discusses developing with Node.js by using modules from NPM, debugging with node-inspector, common pitfalls like blocking loops, and best practices like avoiding large heaps and offloading intensive tasks. Key Node.js modules demonstrated include Express for web frameworks and Socket.io for real-time applications.
Socket.io is a JavaScript library that enables real-time bidirectional event-based communication between web clients and servers. It uses multiple transport mechanisms including WebSocket, polling, and flash sockets and has built-in support for reconnecting clients and detecting disconnections through heartbeats. Socket.io allows for multiple sockets under a single connection using namespaces and has a lightweight protocol that sits on top of HTTP.
Roll Your Own API Management Platform with nginx and LuaJon Moore
We recently replaced a proprietary API management solution with an in-house implementation built with nginx and Lua that let us get to a continuous delivery practice in a handful of months. Learn about our development process and the overall architecture that allowed us to write minimal amounts of code, enjoying native code performance while permitting interactive codeing, and how we leveraged other open source tools like Vagrant, Ansible, and OpenStack to build an automation-rich delivery pipeline. We will also take an in-depth look at our capacity management approach that differs from the rate limiting concept prevalent in the API community.
Using Node.js to Build Great Streaming Services - HTML5 Dev ConfTom Croucher
The document discusses using Node.js to build streaming services. It describes how Node.js allows for scalable server-side code using JavaScript and mentions libraries like JSONStream that can be used to parse JSON streams. The document also discusses different types of streaming like simplex, throughput, and duplex streaming and how to manage backpressure in streams.
Asynchronous PHP and Real-time MessagingSteve Rhoades
The document discusses asynchronous programming in PHP using non-blocking I/O and event loops. It covers using asynchronous techniques like ReactPHP to scrape web pages concurrently without blocking. Promises and streams are also discussed as ways to handle asynchronous operations and pass data between components. Finally, messaging techniques like websockets and WAMP are presented as ways to build real-time applications.
The document provides an overview of Node.js and why it is useful for building scalable network programs. It discusses how Node.js uses asynchronous and non-blocking I/O to handle thousands of concurrent connections using a single thread. This allows Node.js applications to scale horizontally by adding more machines. It also covers how the asynchronous programming model requires a different "mind shift" compared to traditional synchronous approaches.
"As an asynchronous event driven JavaScript runtime, Node is designed to build scalable network applications" così si presenta Node.js, piattaforma tecnologica che - grazie alla sua immediatezza e produttività - ha conquistato dapprima startup e piccole aziende, fino a ritagliarsi uno spazio importante in realtà come IBM, LinkedIn, Netflix e Yahoo. La stessa Microsoft ha riconosciuto le potenzialità della piattaforma, tanto da integrare Node.js in Visual Studio Code e nelle ultime release di Visual Studio, oltre a basarci alcuni dei propri servizi di Azure come "Mobile Services" e "Functions".
In questa sessione vedremo come implementare con Node.js alcuni scenari applicativi comuni nell’ambito dello sviluppo web, analizzando quando la sua adozione può portarci vantaggi nel nostro lavoro quotidiano. In conclusione, faremo una breve panoramica architetturale, descrivendo alcuni scenari di cooperazione tra .NET e Node.js nello stesso sistema.
Codice e demo: https://github.com/rucka/CommunityDays2016
This document discusses using ngx_lua with UPYUN CDN. It provides examples of using Lua with Nginx for tasks like caching, health checking, and configuration as a service. Key points include using Lua for base64 encoding, Redis lookups, and upstream health checking. Lua provides a more flexible alternative to C modules for tasks like these by leveraging its embedding in Nginx via ngx_lua.
1. The document shows examples of using Node.js to log messages to the console, create an HTTP server that returns "Hello World", export and require functions between files, and create and use object prototypes that inherit from EventEmitters.
2. It also includes examples of a basic Node.js package.json file, connecting to servers and emitting events, and writing partial responses that cannot be modified further in an HTTP response.
3. The examples demonstrate fundamental Node.js concepts like modules and exports, HTTP servers, event emitters, and asynchronous programming.
Building Java and Android apps on the blockchain Conor Svensson
In this talk, I demonstrate how you can integrate JVM applications with the Ethereum blockchain.
I provide an overview of what a blockchain is, how the Ethereum blockchain works, and how you can deploy and interact with smart contracts on Ethereum, all from within the JVM, thanks to web3j.
You’ll also learn about web3j’s usage of ReactiveX’s Observable, and the great enhancements it was able to bring to the library, both internally and externally for its users working with the blockchain.
Каждый день появляется по новому JavaScript фрeймворку или новой технологии. И каждый день мы задаемся вопросом, как за всем этим успеть? Константин даст Вам серебряную пулю. Вы будете знать, как быстро разобраться в React, PostCss, RxJS, Redux, CycleJs, Angular и даже в неизвестном супер фреймворке. Увидим, что стоит за трендами технологий 2016.
Подробнее: https://mavrin.github.io/pres-be-first/#1
"The little big project. From zero to hero in two weeks with 3 front-end engi...Fwdays
It is believed that the front end is only one part of the job. We need a backend to store data, we need some DevOps. Oh, I also forgot about QA. There are legends about titans from the past who could single-handedly draw a design and launch a website.
But here's the real story: we has the Great Idea, it won't work without a back-end, there are only front-end developers in the team, outsourcing is possible only in design, the deadline is too near. Just smile and wave... Or we will can realised the project uses front-end technologies only, cut comlicated things, dive into devops. Spoiler: we did it, the Bobuk-Bacek formula works, JavaScript is power.
You will find out how I Love Front-end was launched, what was cut off by Occam's razor and why everyone hates the Mona Lisa.
Audience and level.
Full-stack developers and front-end developers who want to learn how to make back-end for front-end. Just curious guys. Level from junior to middle.
This document provides an overview and examples of using the AnyEvent module in Perl. AnyEvent allows asynchronous and non-blocking I/O, and provides wrappers for various event loops including EV, libevent, POE and Glib. It summarizes:
1) How to create timers, I/O watchers, and condition variables to monitor events asynchronously.
2) Examples of using timers to trigger callbacks periodically, I/O watchers to monitor file handles for read availability, and condition variables to wait for events.
3) Potential bugs when using AnyEvent related to sockets, timeouts and differences between event loops, and solutions to address these bugs.
Web3j 2.0 introduces options for transaction managers when interacting with Ethereum blockchains, including offline signing, online signing, and support for clients like Quorum. It also improves event filtering by making it simpler to create reactive Observable streams of contract events in Java. The new release integrates with Spring Boot and includes performance improvements like faster light wallet generation and IPC client connections.
The document shows code examples for creating HTTP servers and setting up middleware in Node.js using packages like Connect, Express, and Consolidate. It also includes examples of routing and rendering views with Express.
A gentle introduction to Observability and how to setup a highly available monitoring platform across multiple datacenters.
During this talk we will investigate how we can setup and monitor an monitoring setup across 2 DCs using Prometheus, Loki, Tempo, Alertmanager and Grafana. monitoring some services with some lessons learned along the way.
This document describes a class called PuertoNet that is used to connect an Arduino to a computer via a serial port. The class contains methods for opening and closing the serial port connection, sending and receiving data, and controlling buttons to connect, disconnect, send on, send off, and exit. When data is received, it is displayed in a text box, and sending data appends it to the receive text with a label of "Received".
Using Mikko Koppanen's PHP ZMQ extension we will look at how you can easily distribute work to background processes, provide flexible service brokering for your next service oriented architecture, and manage caches efficiently and easily with just PHP and the ZeroMQ libraries. Whether the problem is asynchronous communication, message distribution, process management or just about anything, ZeroMQ can help you build an architecture that is more resilient, more scalable and more flexible, without introducing unnecessary overhead or requiring a heavyweight queue manager node.
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"DataStax Academy
The ColumnFamily data model and wide-row support provides the ability to store and access data efficiently in a de-normalized state. Recent enhancements for CQL's spare tables and built-in indexing provide the capability to store data in a manner similar to that of relational databases. For many use cases hybrid approaches are needed, because complete de-normalization is appropriate for some access patterns whereas more structured data is appropriate for others. At times a single logical event becomes multiple insertions across multiple column families. Likewise a user request might require a several reads across different column families. This talk describes some of these scenarios and demonstrates how advanced operations such multiple step procedures, filtering, intersection, and paging can be implemented client side or server side with the help of the IntraVert plugin.
Intravert Server side processing for CassandraEdward Capriolo
The document provides examples of using CQL (Cassandra Query Language) to create and query tables in Cassandra. It shows how to create tables to store user and video data, insert sample records, and perform queries. It then discusses using the IntraVert library to execute more complex queries directly against Cassandra, such as joins, filters, and multi-table operations, in order to reduce network traffic and processing compared to doing everything on the client side.
Declarative & workflow based infrastructure with TerraformRadek Simko
Terraform allows users to define infrastructure as code to provision resources across multiple cloud platforms. It aims to describe infrastructure in a configuration file, provision resources efficiently by leveraging APIs, and manage the full lifecycle from creation to deletion. Key features include supporting composability across different infrastructure tiers, using a graph-based approach to parallelize operations for efficiency, and managing state to track resource unique IDs and allow recreating resources. Providers enable connectivity to different cloud APIs while resources define the specific infrastructure components and their properties.
♥ Play Framework is an open-source web application framework for Java and Scala that follows the model-view-controller (MVC) architectural pattern. It supports dependency injection, routing, and asynchronous programming. Some key features include routing, controllers, database access using Slick, evolutions for database schema changes, and support for functional programming concepts like Option, Either, and Future.
Designing and Implementing a Real-time Data Lake with Dynamically Changing Sc...Databricks
Building a curated data lake on real time data is an emerging data warehouse pattern with delta. However in the real world, what we many times face ourselves with is dynamically changing schemas which pose a big challenge to incorporate without downtimes.
Online Meetup: Why should container system / platform builders care about con...Docker, Inc.
Docker and the CNCF recently announced the general availability of containerd 1.0, an industry-standard runtime for building container solutions. The containerd 1.0 milestone comes after several months of alpha and beta releases, that allowed the team to implement various performance improvements: creation of a stress testing system, improvements in garbage collection and shim memory usage, etc. In this online meetup, we look at how containerd works, what are the top features and improvements and how can container system builders integrate with containerd.
(BDT401) Big Data Orchestra - Harmony within Data Analysis Tools | AWS re:Inv...Amazon Web Services
This document discusses using various AWS services like Kinesis, CloudSearch, DynamoDB, Redshift and EMR for processing streaming data and performing analytics. It provides code snippets for initializing the services, ingesting and analyzing data using Spark on EMR, and scaling the infrastructure as needed. It also discusses updating event data in DynamoDB based on geospatial proximity and lists SDKs for interacting with AWS services from different programming languages.
This document provides an overview of how to build applications with React Native. It discusses React Native's core components like React, ReactDOM and React Native. It also covers topics like JavaScript implementation, building components, styles, platform specific code, animations, navigation libraries and working with data using Redux.
This document discusses using sets and events in a dSS API by example to control devices over a serial connection from a web page. It describes setting up functions to turn devices on and off, avoiding repeating code by using sets that allow controlling multiple devices together. Events and subscriptions are also covered, including raising internal events, handling subscriptions in JavaScript, and accessing the property tree to save state between runs or get external inputs.
- CTO and lecturer who created Metarhia, an application server for Node.js that focuses on scalability, reliability, and clean architecture principles.
- Metarhia includes packages for SQL, logging, configuration, schemas, and more that work together to provide an isolated and scalable backend.
- It emphasizes simplicity, avoiding middleware and global dependencies, with features like live reloading, graceful shutdown, and automatic dependency injection.
Introduction to WSO2 Data Analytics PlatformSrinath Perera
This document provides an introduction to the WSO2 Analytics Platform. It discusses how the platform allows users to collect data from various sources using a sensor API, then perform analysis on the data through both batch and real-time means. Batch analysis uses technologies like Apache Spark and Hadoop to perform tasks like finding averages, max/min, and building KPIs. Real-time analysis uses complex event processing to run queries over streaming data and detect patterns. The platform also enables predictive analytics using machine learning algorithms and anomaly detection. Results are then communicated through dashboards and alerts.
Mathilde Lemée & Romain Maton
La théorie, c’est bien, la pratique … aussi !
Venez nous rejoindre pour découvrir les profondeurs de Node.js !
Nous nous servirons d’un exemple pratique pour vous permettre d’avoir une premiere experience complete autour de Node.js et de vous permettre de vous forger un avis sur ce serveur Javascript qui fait parler de lui !
http://soft-shake.ch/2011/conference/sessions/incubator/2011/09/01/hands-on-nodejs.html
This document discusses the benefits of immutability and immutable data structures. It argues that as computing resources have increased dramatically, focusing on immutable and value-based programming can help simplify applications. Specific benefits mentioned include ease of reasoning about programs, simpler testing, and better support for distribution. The document also provides examples of using immutability and immutable data structures in Clojure and ClojureScript applications.
This document provides an introduction and overview of a Node.js tutorial presented by Tom Hughes-Croucher. The tutorial covers topics such as building scalable server-side code with JavaScript using Node.js, debugging Node.js applications, using frameworks like Express.js, and best practices for deploying Node.js applications in production environments. The tutorial includes exercises for hands-on learning and demonstrates tools and techniques like Socket.io, clustering, error handling and using Redis with Node.js applications.
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
This document contains information about Ricardo Silva's background and areas of expertise. It includes his degree in Computer Science from ISTEC and MSc in Computation and Medical Instrumentation from ISEP. It also notes that he works as a Software Developer at Shortcut, Lda and maintains a blog and email contact for Node.js topics. The document then covers several JavaScript, Node.js and Websockets topics through examples and explanations in 3 sentences or less each.
Data Pipeline team at Demonware (Activision) has to deal with routing large amounts of data from various sources to many destinations every day.
Our team always wanted to be able to query processed data for debugging and analytical purposes, but creating large data warehouses was never our priority, since it usually happens downstream.
AWS Athena is completely serverless query service that doesn't require any infrastructure setup or complex provisioning. We just needed to save some of our data streams to AWS S3 and define a schema. Just a few simple steps, but in the end we were able to write complex SQL queries against gigabytes of data and get results in seconds.
In this presentation I want to show multiple ways to stream your data to AWS S3, explain some underlying tech, show how to define a schema and finally share some of the best practices we applied.
WSO2Con EU 2016: An Introduction to the WSO2 Analytics PlatformWSO2
In today’s connected, organizations have access to an enormous amount of data but only use a very small subset of it. This data can give you hindsight, oversight, insight and foresight about your enterprise and the world that communicates with. In can be leverage to gain a considerable competitive advantage in the market.
The WSO2 Data Analytics platform lets you collect data, explore it through batch, real-time, interactive and predictive processing technologies and communicate your results. In this talk, we will discuss the WSO2 Data Analytics platform and how it brings together all analytics technologies into a single platform and user experience.
This document provides an in-depth overview of Zone.js and how it works. It discusses:
- The event loop and how Zone.js intercepts asynchronous tasks like setTimeout and promises.
- How zones provide execution contexts and how Zone.js uses zones to observe and control code execution.
- How zones can be forked to create child zones and intercepted using hooks to monitor asynchronous tasks.
- How Zone.js monkey patches browser APIs and schedules tasks through the current zone rather than calling APIs directly.
3. Why Clojure?
● See “Hackers and Painters”
● Small dev team can do a lot quickly
● Easier to reason about concurrency
● Engineers attracted to Clojure tend to be
good
● Fits in well with all the battle-tested Java
machinery for service at scale
12. Types, what are they good for?
● Dynamic typing is wonderful, but…
● Prismatic Schema gives you validation and
documentation without fighting the compiler
14. Event sourcing
http://martinfowler.com/eaaDev/EventSourcing.html
The fundamental idea of Event Sourcing is that of ensuring
every change to the state of an application is captured in an
event object, and that these event objects are themselves
stored in the sequence they were applied for the same
lifetime as the application state itself.
21. Persisting events
● Events created on every
mutation, so write fast
● Not really relational
● Good fit for NoSQL!
Specifically, DynamoDB
● Dynamo is scaled for
reads/sec and writes/sec
per table
27. Ideal mutation flow?
HTTP POST, PUT, or DELETE
Create mutation command
Log mutation command to DynamoDB, return ID
Publish mutation ID to SQS
Receive mutation ID from SQS
Apply mutation command
Update DynamoDB with mutation outcome
HTTP GET /mutation/:id
Update client state
App
REST service
Worker
App
28. Challenges with this approach
● Our app assumes synchronous requests
● Extra SQS puts and gets introduce more
latency
● Implementing long polling after the fact is a
PITA
● Web sockets to the rescue?
29. Compromise mutation flow
HTTP POST, PUT, or DELETE
Apply mutation command
Log mutation command to DynamoDB
Return result
Update client state
App
REST service
App
30. Replaying commands
Read command from DynamoDB
Publish command to SQS
Receive mutation command from SQS
Apply mutation command
If result is different than it was the first time, fail?
Loader
Worker
31. No CQRS
HTTP POST, PUT, or DELETE
Log mutation model to DynamoDB
Perform mutation
Return result
Update client state
App
REST service
App
32. Replaying without CQRS
Read mutation model from DynamoDB
HTTP POST, PUT, or DELETE
Loader
Perform mutation
Return result
REST service
If result is different, fail? Loader
33. When event sourcing, do:
● Ensure that your mutations are idempotent
● Log enough to replay