My presentation at Mostly Functional (http://mostlyfunctional.com), part of this year's Turing Festival Fringe (http://turingfestival.com) in Edinburgh. The example source code is up on Github at https://github.com/geoffballinger/simple-sharder
Finch.io is a library for building REST APIs in Scala using Finagle. It allows for composable endpoints and services. Parameters can be extracted from requests using a reader monad. Requests and responses can be validated. Responses can be JSON, plain text, or other formats. Authentication such as basic auth can also be supported. The documentation provides examples of defining endpoints and services, composing them, handling parameters and validation, and constructing different response types including JSON.
This document summarizes a presentation about Finagle, a framework developed by Twitter for building reliable services. It discusses how Finagle uses asynchronous Futures and composable Filters and Services to provide high performance RPC. It also covers key Finagle concepts like load balancing, failure handling, and how it is used by many large companies for building distributed systems. The document provides code examples of defining Services and applying Filters in Finagle and Scala.
Futures allow asynchronous and non-blocking operations in Scala. They represent a value that may be available in the future. Promises allow producing values for futures - a promise can be used to complete a future with a value. Futures can be composed using methods like map, flatMap, and recover to build asynchronous workflows. Callbacks allow non-blocking handling of future results.
The document discusses GraphQL and its implementation in Flamingo. It provides an overview of GraphQL, describes how schemas are defined and queried in GraphQL, and how Flamingo compiles GraphQL schemas to Go code and uses resolvers to fetch data.
Introduction to reactive programming & ReactiveCocoaFlorent Pillet
Reactive programming models asynchronous data streams as signals that produce events over time. ReactiveCocoa is a framework that implements reactive programming in Objective-C. It uses signals to represent asynchronous data streams and operators to transform and combine signals. ReactiveCocoa code separates the logic to produce and consume data, making it more modular, reusable, testable and by reducing state and mutability. While the syntax is different, learning to think reactively can improve code quality and stability.
En vieux bourlingueur du langage Swift, Grégoire Lhotellier viendra nous présenter les séquences et les collections du nouveau langage d’Apple. Il nous briefera sur l’essentiel de ce qu’il faut en savoir et ce qu’elles changent par rapport à leurs équivalent Objective-C.
This document discusses authentication and linking user accounts in a React Native mobile app using Firebase authentication. It provides code examples for signing in with Facebook credentials, listening for authentication state changes, linking additional credentials to a user account, and handling dynamic links for email verification and sign in.
The document discusses annotation processing and code generation. It describes using annotation processing to automatically generate retry logic for HTTP requests by creating a $$RetryStale interface with the same methods as the original interface but adding cache headers. The processing is done at compile time using the ProcessingEnvironment API to access elements, generate code with JavaPoet, and write the generated files. It recommends libraries like AutoService, Truth, and Compile testing to make annotation processors easier to write.
Finch.io is a library for building REST APIs in Scala using Finagle. It allows for composable endpoints and services. Parameters can be extracted from requests using a reader monad. Requests and responses can be validated. Responses can be JSON, plain text, or other formats. Authentication such as basic auth can also be supported. The documentation provides examples of defining endpoints and services, composing them, handling parameters and validation, and constructing different response types including JSON.
This document summarizes a presentation about Finagle, a framework developed by Twitter for building reliable services. It discusses how Finagle uses asynchronous Futures and composable Filters and Services to provide high performance RPC. It also covers key Finagle concepts like load balancing, failure handling, and how it is used by many large companies for building distributed systems. The document provides code examples of defining Services and applying Filters in Finagle and Scala.
Futures allow asynchronous and non-blocking operations in Scala. They represent a value that may be available in the future. Promises allow producing values for futures - a promise can be used to complete a future with a value. Futures can be composed using methods like map, flatMap, and recover to build asynchronous workflows. Callbacks allow non-blocking handling of future results.
The document discusses GraphQL and its implementation in Flamingo. It provides an overview of GraphQL, describes how schemas are defined and queried in GraphQL, and how Flamingo compiles GraphQL schemas to Go code and uses resolvers to fetch data.
Introduction to reactive programming & ReactiveCocoaFlorent Pillet
Reactive programming models asynchronous data streams as signals that produce events over time. ReactiveCocoa is a framework that implements reactive programming in Objective-C. It uses signals to represent asynchronous data streams and operators to transform and combine signals. ReactiveCocoa code separates the logic to produce and consume data, making it more modular, reusable, testable and by reducing state and mutability. While the syntax is different, learning to think reactively can improve code quality and stability.
En vieux bourlingueur du langage Swift, Grégoire Lhotellier viendra nous présenter les séquences et les collections du nouveau langage d’Apple. Il nous briefera sur l’essentiel de ce qu’il faut en savoir et ce qu’elles changent par rapport à leurs équivalent Objective-C.
This document discusses authentication and linking user accounts in a React Native mobile app using Firebase authentication. It provides code examples for signing in with Facebook credentials, listening for authentication state changes, linking additional credentials to a user account, and handling dynamic links for email verification and sign in.
The document discusses annotation processing and code generation. It describes using annotation processing to automatically generate retry logic for HTTP requests by creating a $$RetryStale interface with the same methods as the original interface but adding cache headers. The processing is done at compile time using the ProcessingEnvironment API to access elements, generate code with JavaPoet, and write the generated files. It recommends libraries like AutoService, Truth, and Compile testing to make annotation processors easier to write.
Exploring Twitter's Finagle technology stack for microservices💡 Tomasz Kogut
This document summarizes a presentation about Finagle, Twitter's microservices technology stack. It discusses how Finagle addresses challenges with microservices like service discovery, load balancing, and request tracing across services. It presents Finagle's core abstractions like Futures, Services, and Filters. Services represent both clients and servers, and Filters can add functionality like retries and timeouts. The document also mentions Twitter Server, a framework for building Finagle-based servers that handles flags, logging, metrics and admin interfaces. Finally, it briefly introduces Finatra, which builds on Finagle and Twitter Server and adds features like dependency injection and routing.
This document provides an introduction to building a Flamingo web application using Go templates and routing. It demonstrates how to set up a basic Flamingo project structure, define routes and handlers, render templates, and pass data to templates. It also shows how to handle GET parameters and URL path parameters in controller actions.
The document discusses core concepts in Flamingo including the Flamingo bootstrap process, the flamingo.App, Dingo dependency injection, configuration, routing, and the core.Cmd package. It provides an overview of how these concepts work and fit together in Flamingo.
The document discusses deploying Firebase Cloud Functions using Firebase CLI commands. It also discusses types for defining Cloud Function interfaces and callable functions. There are examples of managing Algolia indexes using Cloud Functions and security rules for Firestore.
A few slides about asynchrnous programming in Node, from callback hell to control flows using promises, thunks and generators, providing the right amount of abstraction to write great code.
All examples available on https://github.com/troch/node-control-flow.
This talk was delivered at JavaOne 2013, together with Andrzej Grzesik. We mention the new Date APIs, changes to Collections as well as Streams APIs and of course... Lambdas!
The document discusses Javascript Promises and the Q library for handling asynchronous code. It explains what Promises are, how they avoid callback pyramids or "Pyramids of Doom", and how the Q library can be used to generate and control Promises. The Q library allows wrapping asynchronous functions in Promises and provides methods for chaining Promises together and handling errors across asynchronous operations.
The fundamentals and advance application of Node will be covered. We will explore the design choices that make Node.js unique, how this changes the way applications are built and how systems of applications work most effectively in this model. You will learn how to create modular code that’s robust, expressive and clear. Understand when to use callbacks, event emitters and streams.
This talk was given at JSSummit 2013. Entitled "Avoiding Callback Hell with Async.js", my talk focused on common pitfalls with asynchronous functions and callbacks in JavaScript, and using the async.js library and its advanced control flows to create cleaner, more manageable code.
Presentation of Consul Service Discovery for use-case in Alice O2 Quality Control and its Information Service. How to use Consul to share states of published data by processes.
Algebird : Abstract Algebra for big data analytics. Devoxx 2014Samir Bessalah
The document discusses the Algebird library, which uses concepts from abstract algebra to enable distributed analytics. It describes how algebraic structures like monoids allow operations to be associative, commutative and parallelizable. This supports scalable analysis of large datasets using techniques such as sketches, bloom filters and priority queues. Algebird provides implementations of these structures to perform tasks like top-k analysis, cardinality estimation and streaming analytics in both batch and real-time systems.
Slides from the NestJS MasterClass.
We learned how to build JavaScript server-side applications with NestJS - A progressive NodeJS framework built with TypeScript.
You can find the code on GitHub:
https://github.com/nirkaufman/task-manager
Managing GraphQL servers with AWS Fargate & Prisma CloudNikolas Burk
The document discusses managing GraphQL servers with AWS Fargate and Prisma Cloud. It begins with introductions to GraphQL and the core mechanics of a GraphQL server, including the schema, resolver functions, and setup. It then demonstrates building GraphQL servers with Prisma, and managing them using AWS Fargate and the Prisma Cloud service, which provides workflows for server management. Live demonstrations are included.
End to end todo list app with NestJs - Angular - Redux & Redux SagaBabacar NIANG
The document discusses building a todo list application using NestJS for the backend API, Angular for the frontend, and Redux/Redux Saga for state management. It provides an overview of setting up the NestJS API including creating modules, services, and connecting to MongoDB. It then covers generating the initial Angular application and importing Redux libraries. Finally, it details how to manage application state with Redux including creating actions, reducers, effects, and selectors and integrating them with the Angular application and NestJS services.
The document provides steps for creating a TodoList application using Swift and Kitura including:
- Creating a project and adding dependencies
- Setting up simple routing and error handling
- Using promises and asynchronous callbacks
- Adding a database to store tasks
- Implementing testing with expectations
Let'Swift 2019 컨퍼런스에서 RxSwift to Combine 이라고 발표한 자료입니다. 자료 내에 언급되는 코드 링크는 다음과 같습니다.
[BringMyOwnBeer]
• RxSwift/RxCocoa: https://github.com/fimuxd/BringMyOwnBeer-
• Combine/SwiftUI: https://github.com/fimuxd/BringMyOwnBeer-Combine
Let'Swift 2019 컨퍼런스에서 RxSwift to Combine 이라고 발표한 자료입니다. 자료 내에 언급되는 코드 링크는 다음과 같습니다.
[BringMyOwnBeer]
• RxSwift/RxCocoa: https://github.com/fimuxd/BringMyOwnBeer-
• Combine/SwiftUI: https://github.com/fimuxd/BringMyOwnBeer-Combine
Donner le goût du ReactiveCocoa. L’objectif de la présentation étant de nous expliquer comment migrer du code lié au KVO vers une implémentation ReactiveCocoa. Cette approche du KVO par ReactiveCocoa permet de comprendre très facilement les bases et l’intérêt de ce nouveau framework et de s’y mettre facilement et progressivement.
Rhebok, High Performance Rack Handler / Rubykaigi 2015Masahiro Nagano
This document discusses Rhebok, a high performance Rack handler written in Ruby. Rhebok uses a prefork architecture for concurrency and achieves 1.5-2x better performance than Unicorn. It implements efficient network I/O using techniques like IO timeouts, TCP_NODELAY, and writev(). Rhebok also uses the ultra-fast PicoHTTPParser for HTTP request parsing. The document provides an overview of Rhebok, benchmarks showing its performance, and details on its internals and architecture.
This document provides an introduction to Node.js, including examples of basic Node code, definitions of key concepts like asynchronous I/O and callbacks, and descriptions of common Node uses and frameworks. It outlines the structure of a typical Node project, explains Node's non-blocking event loop architecture, and discusses how Node makes HTTP a first-class citizen. The document also covers why developers might use Node and examples of good and bad use cases. It concludes by discussing Microsoft's support for Node on Windows Azure and popular Node tools.
Exploring Twitter's Finagle technology stack for microservices💡 Tomasz Kogut
This document summarizes a presentation about Finagle, Twitter's microservices technology stack. It discusses how Finagle addresses challenges with microservices like service discovery, load balancing, and request tracing across services. It presents Finagle's core abstractions like Futures, Services, and Filters. Services represent both clients and servers, and Filters can add functionality like retries and timeouts. The document also mentions Twitter Server, a framework for building Finagle-based servers that handles flags, logging, metrics and admin interfaces. Finally, it briefly introduces Finatra, which builds on Finagle and Twitter Server and adds features like dependency injection and routing.
This document provides an introduction to building a Flamingo web application using Go templates and routing. It demonstrates how to set up a basic Flamingo project structure, define routes and handlers, render templates, and pass data to templates. It also shows how to handle GET parameters and URL path parameters in controller actions.
The document discusses core concepts in Flamingo including the Flamingo bootstrap process, the flamingo.App, Dingo dependency injection, configuration, routing, and the core.Cmd package. It provides an overview of how these concepts work and fit together in Flamingo.
The document discusses deploying Firebase Cloud Functions using Firebase CLI commands. It also discusses types for defining Cloud Function interfaces and callable functions. There are examples of managing Algolia indexes using Cloud Functions and security rules for Firestore.
A few slides about asynchrnous programming in Node, from callback hell to control flows using promises, thunks and generators, providing the right amount of abstraction to write great code.
All examples available on https://github.com/troch/node-control-flow.
This talk was delivered at JavaOne 2013, together with Andrzej Grzesik. We mention the new Date APIs, changes to Collections as well as Streams APIs and of course... Lambdas!
The document discusses Javascript Promises and the Q library for handling asynchronous code. It explains what Promises are, how they avoid callback pyramids or "Pyramids of Doom", and how the Q library can be used to generate and control Promises. The Q library allows wrapping asynchronous functions in Promises and provides methods for chaining Promises together and handling errors across asynchronous operations.
The fundamentals and advance application of Node will be covered. We will explore the design choices that make Node.js unique, how this changes the way applications are built and how systems of applications work most effectively in this model. You will learn how to create modular code that’s robust, expressive and clear. Understand when to use callbacks, event emitters and streams.
This talk was given at JSSummit 2013. Entitled "Avoiding Callback Hell with Async.js", my talk focused on common pitfalls with asynchronous functions and callbacks in JavaScript, and using the async.js library and its advanced control flows to create cleaner, more manageable code.
Presentation of Consul Service Discovery for use-case in Alice O2 Quality Control and its Information Service. How to use Consul to share states of published data by processes.
Algebird : Abstract Algebra for big data analytics. Devoxx 2014Samir Bessalah
The document discusses the Algebird library, which uses concepts from abstract algebra to enable distributed analytics. It describes how algebraic structures like monoids allow operations to be associative, commutative and parallelizable. This supports scalable analysis of large datasets using techniques such as sketches, bloom filters and priority queues. Algebird provides implementations of these structures to perform tasks like top-k analysis, cardinality estimation and streaming analytics in both batch and real-time systems.
Slides from the NestJS MasterClass.
We learned how to build JavaScript server-side applications with NestJS - A progressive NodeJS framework built with TypeScript.
You can find the code on GitHub:
https://github.com/nirkaufman/task-manager
Managing GraphQL servers with AWS Fargate & Prisma CloudNikolas Burk
The document discusses managing GraphQL servers with AWS Fargate and Prisma Cloud. It begins with introductions to GraphQL and the core mechanics of a GraphQL server, including the schema, resolver functions, and setup. It then demonstrates building GraphQL servers with Prisma, and managing them using AWS Fargate and the Prisma Cloud service, which provides workflows for server management. Live demonstrations are included.
End to end todo list app with NestJs - Angular - Redux & Redux SagaBabacar NIANG
The document discusses building a todo list application using NestJS for the backend API, Angular for the frontend, and Redux/Redux Saga for state management. It provides an overview of setting up the NestJS API including creating modules, services, and connecting to MongoDB. It then covers generating the initial Angular application and importing Redux libraries. Finally, it details how to manage application state with Redux including creating actions, reducers, effects, and selectors and integrating them with the Angular application and NestJS services.
The document provides steps for creating a TodoList application using Swift and Kitura including:
- Creating a project and adding dependencies
- Setting up simple routing and error handling
- Using promises and asynchronous callbacks
- Adding a database to store tasks
- Implementing testing with expectations
Let'Swift 2019 컨퍼런스에서 RxSwift to Combine 이라고 발표한 자료입니다. 자료 내에 언급되는 코드 링크는 다음과 같습니다.
[BringMyOwnBeer]
• RxSwift/RxCocoa: https://github.com/fimuxd/BringMyOwnBeer-
• Combine/SwiftUI: https://github.com/fimuxd/BringMyOwnBeer-Combine
Let'Swift 2019 컨퍼런스에서 RxSwift to Combine 이라고 발표한 자료입니다. 자료 내에 언급되는 코드 링크는 다음과 같습니다.
[BringMyOwnBeer]
• RxSwift/RxCocoa: https://github.com/fimuxd/BringMyOwnBeer-
• Combine/SwiftUI: https://github.com/fimuxd/BringMyOwnBeer-Combine
Donner le goût du ReactiveCocoa. L’objectif de la présentation étant de nous expliquer comment migrer du code lié au KVO vers une implémentation ReactiveCocoa. Cette approche du KVO par ReactiveCocoa permet de comprendre très facilement les bases et l’intérêt de ce nouveau framework et de s’y mettre facilement et progressivement.
Rhebok, High Performance Rack Handler / Rubykaigi 2015Masahiro Nagano
This document discusses Rhebok, a high performance Rack handler written in Ruby. Rhebok uses a prefork architecture for concurrency and achieves 1.5-2x better performance than Unicorn. It implements efficient network I/O using techniques like IO timeouts, TCP_NODELAY, and writev(). Rhebok also uses the ultra-fast PicoHTTPParser for HTTP request parsing. The document provides an overview of Rhebok, benchmarks showing its performance, and details on its internals and architecture.
This document provides an introduction to Node.js, including examples of basic Node code, definitions of key concepts like asynchronous I/O and callbacks, and descriptions of common Node uses and frameworks. It outlines the structure of a typical Node project, explains Node's non-blocking event loop architecture, and discusses how Node makes HTTP a first-class citizen. The document also covers why developers might use Node and examples of good and bad use cases. It concludes by discussing Microsoft's support for Node on Windows Azure and popular Node tools.
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.
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/
Building scalable rest service using Akka HTTPdatamantra
Akka HTTP is a toolkit for building scalable REST services in Scala. It provides a high-level API built on top of Akka actors and Akka streams for writing asynchronous, non-blocking and resilient microservices. The document discusses Akka HTTP's architecture, routing DSL, directives, testing, additional features like file uploads and websockets. It also compares Akka HTTP to other Scala frameworks and outlines pros and cons of using Akka HTTP for building REST APIs.
How and why i roll my own node.js frameworkBen Lin
1) The document discusses the author's experience building their own node.js web framework, including their background with other technologies like Ruby on Rails.
2) It describes the key features of their framework, such as MVC structure, middleware support, asset packaging, and command line tools.
3) The author explains that they rolled their own framework to learn more about how frameworks work, have more control over the technology stack, and because node.js performance is better than Ruby on Rails. They emphasize that building the framework was a fun learning experience.
The document discusses Node.js including:
1. An introduction to Node.js as an asynchronous event-driven JavaScript runtime for building scalable network applications.
2. Common internal Node.js modules like HTTP, File System, and Crypto.
3. Differences between JavaScript on Node.js and Java on JRE.
4. A sample HTTP server using the internal HTTP module to respond with "Hello World".
Vert.x is a tool for building reactive applications on the JVM. It is polyglot, allowing applications to be written in Java, Groovy, JavaScript and other languages. It uses an asynchronous and non-blocking model with shared-nothing communication between components. Modules communicate through publish/subscribe messaging on an event bus or directly through request-response patterns. Vert.x provides horizontal scaling and allows efficient use of server resources. It can also integrate with SockJS to provide WebSocket-like capabilities in browsers that do not support WebSockets.
Node has captured the attention of early adopters by clearly differentiating itself as being asynchronous from the ground up while remaining accessible. Now that server side JavaScript is at the cutting edge of the asynchronous, real time web, it is in a much better position to establish itself as the go to language for also making synchronous, CRUD webapps and gain a stronger foothold on the server.
This talk covers the current state of server side JavaScript beyond Node. It introduces Common Node, a synchronous CommonJS compatibility layer using node-fibers which bridges the gap between the different platforms. We look into Common Node's internals, compare its performance to that of other implementations such as RingoJS and go through some ideal use cases.
The document provides an overview of using Swift to connect to networked APIs. It defines what a networked API is and describes two common API styles: RPC and REST. It then discusses REST APIs in more detail, covering the Richardson Maturity Model, HATEOAS, and Fielding's requirements for REST. The document demonstrates making HTTP requests in Swift, including preparing URLs and requests, performing requests, and handling authorization. It also briefly discusses Protocol Buffers and building gRPC services in Swift.
API Days Paris - Automatic Testing of (RESTful) API DocumentationRouven Weßling
This document discusses automatically testing RESTful API documentation by:
1) Describing API Blueprint, a language for describing web API specifications that can be tested.
2) Introducing Dredd, a tool for testing API documentation against a live API.
3) Providing examples of using Dredd hooks to mutate data, add delays, and make assertions during testing.
The document discusses the future of server-side JavaScript. It covers various Node.js frameworks and libraries that support both synchronous and asynchronous programming styles. CommonJS aims to provide interoperability across platforms by implementing synchronous proposals using fibers. Examples demonstrate how CommonJS allows for synchronous-like code while maintaining asynchronous behavior under the hood. Benchmarks show it has comparable performance to Node.js. The author advocates for toolkits over frameworks and continuing development of common standards and packages.
This document provides an overview of Node.js and how to build web applications with it. It discusses asynchronous and synchronous reading and writing of files using the fs module. It also covers creating HTTP servers and clients to handle network requests, as well as using common Node modules like net, os, and path. The document demonstrates building a basic web server with Express to handle GET and POST requests, and routing requests to different handler functions based on the request path and method.
SOAP Web Services have a well established role in the enterprise, but aside from the many benefits of the WS-* standards, SOAP and XML also carry additional baggage for developers. Consequently, REST Web Services are gaining tremendous popularity within the developer community. This session will begin by comparing and contrasting the basic concepts of both SOAP and REST Web Services. Building on that foundation, Sam Brannen will show attendees how to implement SOAP-based applications using Spring-WS 2.0. He will then demonstrate how to build a similar REST-ful application using Spring MVC 3.0. The session will conclude with an in-depth look at both server-side and client-side development as well as efficient integration testing of Web Services using the Spring Framework.
Mark Thomas gave a presentation on Tomcat 7 and the new features in Servlet 3.0. Some of the major changes covered included support for asynchronous processing, web fragments, dynamic configuration through programmatic additions of servlets and filters, and additional annotations. The timeline for finalizing Servlet 3.0 was discussed, as well as the current status of Tomcat 7 development to support the new specification.
"Service Worker: Let Your Web App Feel Like a Native "FDConf
Service workers allow web applications to work offline by intercepting network requests, caching responses, and serving cached resources when there is no network connection. They also handle background synchronization and push notifications. Key capabilities include making apps available offline, controlling the cache and network requests, and subscribing to push notifications. Service workers operate separately from the main thread of the page, intercepting and modifying fetch events to return cached responses when available.
Rack is a Ruby web server interface that provides a minimal interface between web servers and Ruby frameworks like Rails. It allows web applications to be written as Ruby objects that respond to the call method. Rack applications take a request environment hash and return a status, headers, and response body array. Rack allows modularity through middlewares that act as filters on requests. Rails itself is built with Rack and exposes its middleware stack.
Nordic APIs - Automatic Testing of (RESTful) API DocumentationRouven Weßling
Learn how to automatically test your API's documentation by using API Blueprints and dredd.
Presented at the Nordic APIs Platform Summit on October 25, 2016
Richard Lee is an iOS, Ruby, and JavaScript developer and co-founder of Polydice, Inc. He gave an introduction to Node.js, an event-driven I/O framework for building scalable network applications. Node.js uses an event loop model and non-blocking I/O, making it fast and efficient for handling many concurrent connections. Common uses include building HTTP servers and implementing long polling or comet techniques. The community around Node.js is large and supportive, with many online resources and books available.
Similar to Sharding and Load Balancing in Scala - Twitter's Finagle (20)
Highly Accurate Alignment of Data from Measurement Trains: the Challenges o...Geoff Ballinger
The accurate alignment we provide via our cloud APIs allows customers to automatically reason about how their infrastructure is changing over time.
It allows the practical deployment of predictive maintenance which has simply not been possible at scale up to this point.
How docker swarm helped us with a deployment of a precise and trusted localisation stack to the Network Rail New Measurement Train presented at the Edinburgh Docker Meetup 6th birthday bash.
Geoff Ballinger discussed how DeltaDNA used HAProxy load balancers to handle traffic to their analytics APIs and customer portal. As traffic grew, they implemented a two-layer HAProxy configuration to better utilize modern multi-core servers. However, the newer experimental multi-threaded mode in HAProxy v1.8 provided a better solution by removing bottlenecks. Ballinger concluded the load balancer acts as the "front door" where systems meet the world, and is worth understanding in detail to optimize services and keep up to date.
Conversation is a powerful and appropriate mode of interaction on mobile, and there are some simple technologies we tend to forget that can give your service access to a very wide audience indeed.
Short talk I gave as part of the December 2016 Mobile Monday Edinburgh.
My presentation from Mobile Scotland 2016 - http://www.mobile-scotland.com/.
Is mobile anything special any more? What is it anyway, the devices, the network, or a context? Challenges and opportunities.
A somewhat "glass half empty" take on IoT.
Expanded version of my earlier MoMoEdi talk given at the Mobile Monday Global Pow Wow at Mobikon in Frankfurt on May 11th 2015
The “other side” of MWC: IoT’s turn for the Kool-Aid?Geoff Ballinger
This document discusses issues around defining and securing the Internet of Things (IoT). It notes differing definitions of IoT and questions who or what IoT refers to. Concerns are raised about the security challenges of connecting large numbers of low-power devices for many years without updates. The potential end of privacy and importance of security is highlighted. Finally, it questions how various entities like telecom companies and IoT companies will relate to one another.
Introductory slides for the June 2014 Mobile Monday Edinburgh event focussed on using mobile app frameworks to allow rapid prototyping and delivery of early product iterations in startups.
For links to the rest of the presentations see https://groups.google.com/forum/#!forum/momoedinburgh
Slides from Mobile Monday Edinburgh's joint event with the Edinburgh Entrepreneurship Club on Monday 20th January 2014.
Joint effort between:
Geoff Ballinger, @geoffballinger
Ronnie Forbes, QikServe, @QikServe
Nadine Pierce, @chefrUK
Overview of the mobile platform and development environment landscape in light of the recent announcements during and around MWC 2011.
Presented at the March 2011 Mobile Monday Edinburgh.
Connecting the real world with your mobile - or how to ask "What's that?"Geoff Ballinger
The document discusses how mobile devices can connect the real world to the internet through various technologies like barcodes, visual recognition, location services, and tags. It describes how retailers and brands are using mobile apps to identify products in stores through these methods. The company discussed provides leading barcode reading and visual search capabilities to match images of products with online databases. Their technology allows mobile devices to bridge the physical and digital worlds.
Ignite style presentation given at Barcamp Glasgow 2010 intended to inspire people to build mobile apps and services that real people want to and can use! Note slides intended to advance automatically every 15 seconds.
Wide ranging talk on visually interactive things for mobile given at Over The Air 2009. The related video clips are linked from:
http://blog.geoffballinger.co.uk/2009/09/visual-interactivity-at-over-air-2009.html
BarCampScotland: What Is Visual Interactivity?Geoff Ballinger
This document discusses mobile interactive services and their potential uses. It notes that camera phones are now ubiquitous, with over 90% of handsets having cameras. Examples of interactive mobile applications are given, such as using photos for image recognition, zoning images to interact with events, inserting faces into videos, and visual search. The future potential of mobile interactivity is large, including connecting to live events, 3D products, and using photos as a visual search tool.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Sharding and Load Balancing in Scala - Twitter's Finagle
1. Sharding and Load Balancing in Scala
Twitter's Finagle
Geoff Ballinger
Technical Advisor at Mobile Acuity Ltd.
2. • some ML and Lisp in the early 90s
• C, C++ and Java since – embedded and server
• apps on BB, Android and iOS
• Mobile
• Startups
• Scaling
• Integration
• Deployment & Ops
>>> Background
4. • Multiple HTTP workers – part of the result
• Each shard is one or more identical workers
• Sharder scatters requests to the shards and
gathers the results
• Load balance between workers
• Fault tolerant
• Chance to play w/ Scala in anger!
• (Simple rational reconstruction)
>>> A simple sharder?
5. object Worker extends App {
try {
// Collect args
val port = Integer.parseInt(args(0))
val value = args(1)
// Define our service - just return the value provided!
val service = new Service[HttpRequest, HttpResponse] {
def apply(req: HttpRequest) = {
val buffer = ChannelBuffers.copiedBuffer(value, Charset.forName("UTF-8"))
val response = new DefaultHttpResponse(req.getProtocolVersion, HttpResponseStatus.OK)
response.setHeader(HttpHeaders.Names.CONTENT_TYPE, "text/plain")
response.setHeader(HttpHeaders.Names.CONTENT_LENGTH, buffer.readableBytes())
response.setContent(buffer)
Future.value(response)
}
}
>>> Worker (1)
6. // Run this worker over the required port
val server = ServerBuilder()
.codec(Http())
.bindTo(new InetSocketAddress(port))
.name("Shard")
.build(service)
} catch {
case t: Throwable => {
System.err.println(t.getMessage())
System.err.println("Usage: Worker <port> <value>")
}
}
}
>>> Worker (2)
7. // Collect port arg
val port = Integer.parseInt(args(0))
// Build up shards from host specs on remaining command line
val shards = args.tail.map(spec => {
ClientBuilder()
.codec(Http())
.hosts(spec)
.hostConnectionLimit(10)
.retryPolicy(policy)
.build()
})
>>> Sharder (setup)
8. // Define our service - scatter to the shards and gather the results
val service = new Service[HttpRequest, HttpResponse] {
def apply(req: HttpRequest) = {
Future.collect(shards.map(shard => { // Scatter
shard(req).map(resp => resp.getContent().toString(CHARSET))
}))
.map(resps => { // Gather
val bf = ChannelBuffers.copiedBuffer(resps.reduceLeft(_+":"+_), CHARSET)
val resp = new DefaultHttpResponse(req.getProtocolVersion, HttpResponseStatus.OK)
resp.setHeader(HttpHeaders.Names.CONTENT_TYPE, "text/plain")
resp.setHeader(HttpHeaders.Names.CONTENT_LENGTH, bf.readableBytes())
resp.setContent(bf)
resp
})
}
}
>>> Sharder (service)
10. >>> Reflections and Opinions
• Concise and expressive
• Shoulders of giants
• Poorly documented
• Exposes too many lower APIs
• Twitter vs Scala vs Akka Futures!