The document discusses a presentation on the Lift web framework and the real-time web. The presentation covers an overview of Scala, Lift's rationale, features of the real-time web, Lift's feature set, and how Scala enables Lift. Key features of Scala discussed include immutability, case classes, traits, pattern matching, and actors. Lift is introduced as a web framework that leverages Scala and takes the best ideas from other frameworks to make real-time web applications accessible.
Remotely is an elegant, purely functional machine-to-machine communication library developed in Scala at Verizon. Remotely is fast, lightweight, and models network operations as a monad. It features compositional, reusable protocols and codecs, where the compatibility between client and server is enforced using Scala's type system. It has support for TCP endpoints, with combinators for encryption, circuit-breaking, and load-balancing. In this talk we describe the API of Remotely, and delve into its design and implementation.
Large-scale Infrastructure Automation at VerizonTimothy Perrett
As a company, Verizon networks and infrastructure touch nearly 70% of global internet traffic every single day. The many datacenters that support this - and many other large-scale Verizon services - are our lifeblood. This talk provides a glimpse into the work being done to reimagine the way in which we design and operate the software that runs our internal computing grids, and how we enable a large body of development staff to ship jobs and services to the grid every single day. We’ll cover how Consul and Vault make for invaluable building blocks in modern distributed systems, and highlight the importance of empowering teams through well designed infrastructure systems.
Verizon Labs is home to one of the largest Scala-based functional programming teams in North America, and in this talk Timothy Perrett provides an insight into the work of his infrastructure engineering team, in driving adoption of pure-functional programming in a fortune 15 company: from language education and proliferation within the team, to the specific positives and negatives of purely functional programming, when applied at massive scale
The Real-Time Web is rapidly growing and as a consequence an increasing number of applications require soft-real time interactions with the server-side as well as with peer web applications. In addition, real-time web technologies are experiencing swift adoption in traditional systems as a means of providing portable and ubiquitously accessible thin client applications.
In spite of this trend, few high level communication frameworks exist that allow efficient and timely data exchange between web applications as well as with the server-side and the back-end system. Vortex Web is one of the first technologies to bring the powerful OMG Data Distribution Service (DDS) abstractions to the world of HTML5 / JavaScript applications. With Vortex Web, HTML5 / JavaScript applications can seamlessly and efficiently share data in a timely manner amongst themselves as well as with any other kind of device or system that supports the standard DDS Interoperability wire protocol (DDSI).
This presentation will (1) introduce the key abstractions provided by Vortex Web, (2) provide an overview of its architecture and explain how Vortex Web uses Web Sockets and Web Workers to provide low latency and high throughput, and (3) get you started developing real-time web applications.
Building Real-Time Web Applications with Vortex-WebAngelo Corsaro
The Real-Time Web is rapidly growing and as a consequence an increasing number of applications require soft-real time interactions with the server-side as well as with peer web applications. In addition, real-time web technologies are experiencing swift adoption in traditional systems as a means of providing portable and ubiquitously accessible thin client applications.
In spite of this trend, few high level communication frameworks exist that allow efficient and timely data exchange between web applications as well as with the server-side and the back-end system. Vortex Web is one of the first technologies to bring the powerful OMG Data Distribution Service (DDS) abstractions to the world of HTML5 / JavaScript applications. With Vortex Web, HTML5 / JavaScript applications can seamlessly and efficiently share data in a timely manner amongst themselves as well as with any other kind of device or system that supports the standard DDS Interoperability wire protocol (DDSI).
This presentation will (1) introduce the key abstractions provided by Vortex Web, (2) provide an overview of its architecture and explain how Vortex Web uses Web Sockets and Web Workers to provide low latency and high throughput, and (3) get you started developing real-time web applications.
Remotely is an elegant, purely functional machine-to-machine communication library developed in Scala at Verizon. Remotely is fast, lightweight, and models network operations as a monad. It features compositional, reusable protocols and codecs, where the compatibility between client and server is enforced using Scala's type system. It has support for TCP endpoints, with combinators for encryption, circuit-breaking, and load-balancing. In this talk we describe the API of Remotely, and delve into its design and implementation.
Large-scale Infrastructure Automation at VerizonTimothy Perrett
As a company, Verizon networks and infrastructure touch nearly 70% of global internet traffic every single day. The many datacenters that support this - and many other large-scale Verizon services - are our lifeblood. This talk provides a glimpse into the work being done to reimagine the way in which we design and operate the software that runs our internal computing grids, and how we enable a large body of development staff to ship jobs and services to the grid every single day. We’ll cover how Consul and Vault make for invaluable building blocks in modern distributed systems, and highlight the importance of empowering teams through well designed infrastructure systems.
Verizon Labs is home to one of the largest Scala-based functional programming teams in North America, and in this talk Timothy Perrett provides an insight into the work of his infrastructure engineering team, in driving adoption of pure-functional programming in a fortune 15 company: from language education and proliferation within the team, to the specific positives and negatives of purely functional programming, when applied at massive scale
The Real-Time Web is rapidly growing and as a consequence an increasing number of applications require soft-real time interactions with the server-side as well as with peer web applications. In addition, real-time web technologies are experiencing swift adoption in traditional systems as a means of providing portable and ubiquitously accessible thin client applications.
In spite of this trend, few high level communication frameworks exist that allow efficient and timely data exchange between web applications as well as with the server-side and the back-end system. Vortex Web is one of the first technologies to bring the powerful OMG Data Distribution Service (DDS) abstractions to the world of HTML5 / JavaScript applications. With Vortex Web, HTML5 / JavaScript applications can seamlessly and efficiently share data in a timely manner amongst themselves as well as with any other kind of device or system that supports the standard DDS Interoperability wire protocol (DDSI).
This presentation will (1) introduce the key abstractions provided by Vortex Web, (2) provide an overview of its architecture and explain how Vortex Web uses Web Sockets and Web Workers to provide low latency and high throughput, and (3) get you started developing real-time web applications.
Building Real-Time Web Applications with Vortex-WebAngelo Corsaro
The Real-Time Web is rapidly growing and as a consequence an increasing number of applications require soft-real time interactions with the server-side as well as with peer web applications. In addition, real-time web technologies are experiencing swift adoption in traditional systems as a means of providing portable and ubiquitously accessible thin client applications.
In spite of this trend, few high level communication frameworks exist that allow efficient and timely data exchange between web applications as well as with the server-side and the back-end system. Vortex Web is one of the first technologies to bring the powerful OMG Data Distribution Service (DDS) abstractions to the world of HTML5 / JavaScript applications. With Vortex Web, HTML5 / JavaScript applications can seamlessly and efficiently share data in a timely manner amongst themselves as well as with any other kind of device or system that supports the standard DDS Interoperability wire protocol (DDSI).
This presentation will (1) introduce the key abstractions provided by Vortex Web, (2) provide an overview of its architecture and explain how Vortex Web uses Web Sockets and Web Workers to provide low latency and high throughput, and (3) get you started developing real-time web applications.
The design, architecture, and tradeoffs of FluidDBTerry Jones
Slides from a talk given on May 22, 2009 at PGCon in Ottawa. Abstract and more details at http://www.pgcon.org/2009/schedule/events/176.en.html
Video available shortly.
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Claus Ibsen
In this session, we'll focus on:
Camel 3: Demos of how Camel 3, Camel K and Camel Quarkus all work together, and will provide insights into Camel’s role in the next major release of Red Hat Integration products.
Camel K: This serverless integration platform provides low-code/no-code capabilities, where integrations can be snapped together quickly using the powers from integration patterns and Camel’s extensive set of connectors.
Camel Quarkus: Using Knative (the fast runtime of Quarkus) and Camel K brings awesome serverless features, such as auto-scaling, scaling to zero, and event-based communication, with great integration capabilities from Apache Camel.
You will also hear about the latest Camel sub-project Camel Kafka Connectors which makes it possible to use all the Camel components as Kafka Connect connectors.
Finally we bring details of the roadmap for what is coming up in the Camel projects.
FOXX - a Javascript application framework on top of ArangoDBArangoDB Database
Foxx allows you to build APIs directly on top of the database ArangoDB in Javascript and therefore skip the middleman (Rails, Django, Symfony or whatever your favorite web framework is). Foxx is designed with simplicity and the specific use case of modern client-side MVC frameworks in mind.
I prepared this presentation to introduce Ruby on Rails to
a group of students at Università di Catania.
It is not enough to get a good grasp of Rails, the
presentation in fact was supported by live coding, where
I started created a Phrasalbook (no more blog engine
please :) )
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/28XnVtb.
Felix Klock describe the core concepts of the Rust language (ownership, borrowing, and lifetimes), as well as the tools beyond the compiler for open source software component distribution (cargo, crates.io). Filmed at qconlondon.com.
Felix Klock is a research engineer at Mozilla, where he works on the Rust compiler, runtime libraries, and language design. He previously worked on the ActionScript Virtual Machine for the Adobe Flash runtime. Klock is one of the developers of the Larceny Scheme language runtime.
Phoenix Contexts were introduced 4 years ago with the intention to help us to step out of the basic set of entities offered by the MVC pattern. Yet they still cause confusion to the beginners and experienced developers alike. In this brief presentation, we will look into the rationale for introducing Contexts, the most spread pitfall when using them, and will try to build an overall understanding of how to avoid it.
Nelson: Rigorous Deployment for a Functional WorldTimothy Perrett
Functional programming finds its roots in mathematics - the pursuit of purity and completeness. We functional programmers look to formalize system behaviors in an algebraic and total manner. Despite this, when it comes time to deploy ones beautiful monadic ivory towers to production, most organizations cast caution to the wind and use a myriad of bash scripts and sticky tape to get the job done. In this talk, the speaker will introduce you to Nelson, an open-source project from Verizon that looks to provide rigor to your large distributed system, whilst offering best-in-class security, runtime traffic shifting and a fully immutable approach to application lifecycle. Nelson itself is entirely composed of free algebras and coproducts, and the speaker will show not only how this has enabled development, but also how it provided a frame with which to reason about solutions to fundamental operational problems.
Online Experimentation with Immutable InfrastructureTimothy Perrett
Immutable infrastructure has changed the way we think about system lifecycle: compute machines live for days instead of months or years, and applications live for hours or less. With the proliferation of CI/CD systems, and infrastructure as a service, the increased churn in production systems has hastened the immediate need for tools that prioritize experimentation - is your next development iteration really better than the last? In such a volatile world, traditional notions of compute “environments” and mutable approaches to experimentation can be found lacking. In large systems, emergent behaviors are near impossible to replicate in isolation, so experimenting in production systems is the only way to effectively measure hypothesis. This session covers different schemes for experimentation and the primitives required to make converged infrastructure work for real systems.
The design, architecture, and tradeoffs of FluidDBTerry Jones
Slides from a talk given on May 22, 2009 at PGCon in Ottawa. Abstract and more details at http://www.pgcon.org/2009/schedule/events/176.en.html
Video available shortly.
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Claus Ibsen
In this session, we'll focus on:
Camel 3: Demos of how Camel 3, Camel K and Camel Quarkus all work together, and will provide insights into Camel’s role in the next major release of Red Hat Integration products.
Camel K: This serverless integration platform provides low-code/no-code capabilities, where integrations can be snapped together quickly using the powers from integration patterns and Camel’s extensive set of connectors.
Camel Quarkus: Using Knative (the fast runtime of Quarkus) and Camel K brings awesome serverless features, such as auto-scaling, scaling to zero, and event-based communication, with great integration capabilities from Apache Camel.
You will also hear about the latest Camel sub-project Camel Kafka Connectors which makes it possible to use all the Camel components as Kafka Connect connectors.
Finally we bring details of the roadmap for what is coming up in the Camel projects.
FOXX - a Javascript application framework on top of ArangoDBArangoDB Database
Foxx allows you to build APIs directly on top of the database ArangoDB in Javascript and therefore skip the middleman (Rails, Django, Symfony or whatever your favorite web framework is). Foxx is designed with simplicity and the specific use case of modern client-side MVC frameworks in mind.
I prepared this presentation to introduce Ruby on Rails to
a group of students at Università di Catania.
It is not enough to get a good grasp of Rails, the
presentation in fact was supported by live coding, where
I started created a Phrasalbook (no more blog engine
please :) )
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/28XnVtb.
Felix Klock describe the core concepts of the Rust language (ownership, borrowing, and lifetimes), as well as the tools beyond the compiler for open source software component distribution (cargo, crates.io). Filmed at qconlondon.com.
Felix Klock is a research engineer at Mozilla, where he works on the Rust compiler, runtime libraries, and language design. He previously worked on the ActionScript Virtual Machine for the Adobe Flash runtime. Klock is one of the developers of the Larceny Scheme language runtime.
Phoenix Contexts were introduced 4 years ago with the intention to help us to step out of the basic set of entities offered by the MVC pattern. Yet they still cause confusion to the beginners and experienced developers alike. In this brief presentation, we will look into the rationale for introducing Contexts, the most spread pitfall when using them, and will try to build an overall understanding of how to avoid it.
Nelson: Rigorous Deployment for a Functional WorldTimothy Perrett
Functional programming finds its roots in mathematics - the pursuit of purity and completeness. We functional programmers look to formalize system behaviors in an algebraic and total manner. Despite this, when it comes time to deploy ones beautiful monadic ivory towers to production, most organizations cast caution to the wind and use a myriad of bash scripts and sticky tape to get the job done. In this talk, the speaker will introduce you to Nelson, an open-source project from Verizon that looks to provide rigor to your large distributed system, whilst offering best-in-class security, runtime traffic shifting and a fully immutable approach to application lifecycle. Nelson itself is entirely composed of free algebras and coproducts, and the speaker will show not only how this has enabled development, but also how it provided a frame with which to reason about solutions to fundamental operational problems.
Online Experimentation with Immutable InfrastructureTimothy Perrett
Immutable infrastructure has changed the way we think about system lifecycle: compute machines live for days instead of months or years, and applications live for hours or less. With the proliferation of CI/CD systems, and infrastructure as a service, the increased churn in production systems has hastened the immediate need for tools that prioritize experimentation - is your next development iteration really better than the last? In such a volatile world, traditional notions of compute “environments” and mutable approaches to experimentation can be found lacking. In large systems, emergent behaviors are near impossible to replicate in isolation, so experimenting in production systems is the only way to effectively measure hypothesis. This session covers different schemes for experimentation and the primitives required to make converged infrastructure work for real systems.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Monitoring Java Application Security with JDK Tools and JFR Events
Devoxx 2009: The Lift Framework
1.
2. Whistle-‐stop
tour
of
the
Li#
web
framework
and
demonstra:ng
why
the
real-‐:me
web
should
ma=er
to
you
www.devoxx.com
3. Agenda
! Overview
of
Scala
! Li#’s
Ra:onale
! The
real-‐:me
web
! Li#’s
awesome
feature
set
! Why
Scala
makes
Li#
possible
www.devoxx.com
4. About
Me
! Project
commi=er
on
Li#
! Manufacturing
and
marke:ng
automa:on
is
my
day-‐job
(industrial
systems)
! Whole
raH
of
experience
with
both
dynamic
and
sta:c
languages
! Desktop
and
Web
applica:on
development
www.devoxx.com
! Coding
Scala
and
LiH
since
end
of
2007
5. What
is
Scala?
(10,000
foot
view!)
! Scala
is
func:onal
! Scala
is
object
orientated
! Scala
is
mul:-‐paradigm!
OO
and
FP
hybrid...
! Designed
by
Mar:n
Odersky
(Java
generics)
! Runs
as
fast
as
na:ve
Java
code
! Fully
interoperable
with
exis:ng
Java
libraries
www.devoxx.com
! More
type-‐safe
than
Java
7. Scala
in
breif….
! What
follows
is
an
overview
of
core
Scala
language
features
www.devoxx.com
8. Immutability
val example = “Devoxx”
! Immutable
values
are
assigned
with
the
“val”
keyword
! Immutability
is
your
long-‐lost
friend:
!
No
need
to
synchronise
!
Never
need
to
copy
vars
“just
in
case”
!
Great
for
hash
keys
www.devoxx.com
! Be=er
for
garbage
collector
9. Case
Classes
case class Foo(bar: String, baz: List[Int])
! Func:onality
you
get
for
free:
!
“new”
keyword
is
redundant
!
bar
and
baz
proper:es
(immutable
by
default)
!
toString,
hashCode,
and
equals
et
al
!
Pa=ern
matching
with
parameter
extrac:on
www.devoxx.com
10. Singletons
object ChatServer extends Actor
! ChatServer
is
a
singleton
! One
instance
per
classloader
! Can
be
passed
as
parameter…
it’s
an
instance
www.devoxx.com
11. Composi:on
with
Traits
! Finely-‐grained
aggrega:on
of
func:onality
! Mul:ple-‐inheritance
without
diamond
problem[1]
! Extensively
used
in
Li#
object sally extends Person(“Sally”)
with Female
with Runner
def womansRun(who: Female with Runner)
www.devoxx.com
//=> womansRun(sally)
[1]
h=p://en.wikipedia.org/wiki/Diamond_problem
12. Func:on
Passing
! Encapsulates
logic
concisely
! Wildcard
shorthand
keeps
things
simple
! Func:ons
are
instances
that
can
be
passed
// make x a function that lower cases input
val x: (String) => String = (str) => str.toLowerCase
www.devoxx.com
// alter the request encoding
LiftRules.early { _.setCharacterEncoding(“UTF-8”) }
13. Pa=ern
Matching
! Match
against
case
classes
!
Parameter
extrac:on
!
Great
for
message
/
event
handling
!
Test
against
parameters:
case Person(name, 35) =>
! Declara:ve
expression
of
logic
case Messages(m) => msgs = m
www.devoxx.com
case s: String if s.length > 0 => msgs ::= s
14. XML
Literals
! XML
is
first-‐class
! Ripe
for
templa:ng
abuse!
! Very
handy
for
development
but
Li#
provides
strong
abstrac:ons
for
templates
val links = (“Link A”, http://…) ::
(“Link B”, “http://…”) :: (“Link C”, https://…) :: Nil
www.devoxx.com
val myLinkList =
<ul>{ links.flatMap({case (name,url) =>
<li><a href={url}>{name}</a></li>}) }
</ul>
15. Actors
! Being
“real-‐:me”
means
events
! Lightweight
concurrency
model
! With
very
nice
syntax
! Implemented
as
a
library!
object DevoxxActor extends Actor { …… }
case class Talk(name: String)
www.devoxx.com
// asyncronusly send the talk message to the actor
DevoxxActor ! Talk(“Lift web framework”)
16. What
is
LiH?
! Web
framework
wri=en
in
Scala
! 3
years
old,
founded
by
David
Pollak
! Leverages
the
best
of
Scala
language
features
! Takes
the
best
ideas
from
other
frameworks
! Makes
real-‐:me
web
applica:ons
accessible
! Massively
scalable
www.devoxx.com
17. Why
another
framework?
! Developers
needn't
be
plumbers
! Unifies
the
best
of
other
framework
concepts
!
Granular
sessions
and
security
a
la
Seaside
!
Flash-‐to-‐bang
produc:vity
a
la
Rails
!
Designer
friendly
templates
a
la
Wicket
! Advanced
features
like
comet
work
OOTB
www.devoxx.com
! Tough
to
be
truly
real-‐:me
with
exis:ng
tech
18. Web
Beginnings
! Very
person
-‐>
machine
affair
! Primary
uses:
!
Shopping
!
Banking
!
CRUD
opera:ons
! 56k
modems
(yikes!)
www.devoxx.com
19. Web
2.0
! Behaviour
shiH
-‐>
more
social
! Different
usage
models:
!
Person
-‐>
Machine
-‐>
Machine
(mashups)
!
Person
-‐>
Person
(Facebook,
Twi=er)
!
Machine
-‐>
Machine
-‐>
Person
(micro-‐formats)
! Internet
becomes
society
cornerstone
www.devoxx.com
20. Real
Time
Web
! Users
demand
instant
gra:fica:on
! Peer-‐to-‐peer
news
/
informa:on
streams
! Business
informa:on
in
constant
flux
! Online
interac:ve
games
! Real
Time
Web
is
the
next
evolu2onary
step...
www.devoxx.com
21.
22. View
First
! Its
not
MVC
! Your
typical
page
has
more
than
a
single
piece
of
dynamic
content
! Code
in
the
view
usually
means
some
“seep”
of
business
logic:
thus,
NO
code
in
the
view
! Only
well-‐formed
XHTML;
no
string
replacement
–
e.g.
{{myvar}}
www.devoxx.com
! Designer
friendly
dynamic
content
markup
23. Snippets
! A
“snippet”
in
Li#
represents
a
collec:on
of
applica:on
logic
! One
snippet
can
be
called
on
n
number
of
pages,
n
number
of
:mes
! A
snippet
is
a
normal
Scala
class
or
object:
there
is
no
black
magic
www.devoxx.com
! Lookup
via
reflec:on
or
manual
wiring
24. What
a
bind…
class Example {
def nameForm(xhtml: NodeSeq) = {
var name = “”
def doSubmit { println(“Submitted…”); }
bind("f", xhtml,
"name" -> SHtml.text(name, name = _),
"submit" -> SHtml.submit(doSubmit _)
)
}
}
<lift:example.name_form>
<p><f:name /></p>
www.devoxx.com
<p><f:submit /></p>
</lift:example.name_form>
25. Security
! Page
elements
have
session
specific
opaque
GUIDs
to
reference
server
components
(impossible
to
do
CSRF[1])
<input name=“F677071620957IFD” type=“text” />
! Callback
func:ons
also
use
similar
GUIDs
so
that
sensi:ve
IDs
etc
are
not
exposed
www.devoxx.com
/somepath?F677071620979LIK=_
[1]
h=p://en.wikipedia.org/wiki/Cross-‐site_request_forgery
26. Site
Map
!
Declara:ve
and
granular
defini:on
of
page
and
UI
access
rules
! Enforced
long
before
the
page
content
is
processed
or
rendered
–
its
very
fast.
! Can
generate
site
menus
even
with
complex
rules
on
what
different
users
see
www.devoxx.com
! Unified
access
control
model
27. Persistence
! Li#
includes
“Mapper”
which
is
a
lightweight
ORM
of
similar
design
to
Ac:veRecord
in
Rails
! Use
any
backend
persistence
system
you
want
(Hibernate,
JPA
etc)
! Write
custom
back-‐ends
using
Li#
Record
–
provides
OOTB
valida:on
and
CRUD
seman:cs;
you
provide
the
implementa:on
www.devoxx.com
28. REST
and
WebServices
! REST
via
state(full/less)
dispatching
! Declara:ve
rules
for
URI
-‐>
handler
dispatch
! LiH
has
awesome
support
for
JSON:
!
Slick
DSL
for
construc:on
/
parsing
!
~300
:mes
faster
than
Scala
JSON
parser
!
Faster
deseriliza:on
than
Java
www.devoxx.com
! Na:ve,
first-‐class
XML
support
in
Scala
30. Summary
! Scala’s
object
model
is
a
superset
of
Java’s
! Scala
traits:
powerful
and
granular
composi:on
! Scala
is
syntac:cally
simpler
than
Java
or
Ruby
! Scala’s
design
led
to
Li#’s
design
! Li#
makes
the
real-‐:me
web
simple
! Li#
is
the
culmina:on
of
many
great
ideas
www.devoxx.com