Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018UX Antwerp Meetup
UX Antwerp Meetup, 30th of January, 2018 - organised by UXprobe https://www.uxpro.be/
Kristiaan De Roeck, senior IT architect and consultant at IBM
"How IOT, Cloud and Cognitive technology interconnect "
This talk positions "cloud", Internet of Things (IOT) and data analysis to each other. After generating massive amounts of information from the IOT, data is collected, stored and formatted in the Cloud. Then, based on Cognitive technology, data is analyzed with the goal of showing some unexpected outcome. This analysis can be used for any UX-oriented development, and generate insights for new UX perspectives. Kristiaan will describe some case studies; each of the subjects' first "stand alone" analysis, then combined in a bigger context to understand their dependencies.
Bio: Kristiaan De Roeck is a senior IT architect and consultant with 36 years of experienced in solution design, system architecture, information management, service management, and digital transformation projects. Kristiaan works for IBM.
Everybody knows Javascript is single-threaded and that it shares this same thread with other browser-related processes such as painting and compositing. There are several techniques to implement pseudo multithreading in JavaScript; however, during this talk we will focus our attention on how to use and debug the Service Worker API. Our end goal is to explore practical use cases in order to simplify the process to render complex user interfaces and transitions in a browser.
Many developers don't like the idea of low or no code, yet they use tooling to dramatically lower the amount of code they need to write.
This presentation covers what low code is, strengths and weaknesses and the future: what will make them successful and why developers should embrace these tools.
*MuleSoft’s Architecture Themes
- Mule ESB – Enterprise Service Bus
- Event Based Model
- API Centered Design
- Anypoint Studio – Visual Design
*Languages Used
*Mule as an Open Source project
*Mule Flows
Microservices architecture is garnering attention as a modern pattern for building application that scale well, deploy often, have better fault tolerance and can be built out of multiple technologies. We will go through the advantages and drawbacks of going Microservices way and when the pattern is a good fit. We will also touch on Docker, yet another buzzword, strongly emerging as a Microservices delivery mechanism for Linux based systems. If you are looking to refactor your monolithic application, to build a new cloud native application or simply to get your geek on this session is for you.
Enabling High Level Application Development In The Internet Of ThingsPankesh Patel
The Internet of Things (IoT) combines Wireless Sensor and Actuation Networks (WSANs), Pervasive
computing, and the elements of the \\traditional" Internet such as Web and database servers. This leads to
the dual challenges of scale and heterogeneity in these systems, which comprise a large number of devices of
dierent characteristics. In view of the above, developing IoT applications is challenging because it involves
dealing with a wide range of related issues, such as lack of separation of concerns, need for domain experts to
write low level code, and lack of specialized domain specic languages (DSLs). Existing software engineering
approaches only cover a limited subset of the above-mentioned challenges.
In this work, we propose an application development process for the IoT that aims to comprehensively
address the above challenges. We rst present the semantic model of the IoT, based on which we identify
the roles of the various stakeholders in the development process, viz., domain expert, software designer,
application developer, device developer, and network manager, along with their skills and responsibilities.
To aid them in their tasks, we propose a model-driven development approach which uses customized lan-
guages for each stage of the development process: Srijan Vocabulary Language (SVL) for specifying the
domain vocabulary, Srijan Architecture Language (SAL) for specifying the architecture of the application,
and Srijan Network Language (SNL) for expressing the properties of the network on which the application
will execute; each customized to the skill level and area of expertise of the relevant stakeholder. For the
application developer specifying the internal details of each software component, we propose the use of a
customized generated framework using a language such as Java. Our DSL-based approach is supported by
code generation and task-mapping techniques in an application development tool developed by us. Our
initial evaluation based on two realistic scenarios shows that the use of our techniques/framework succeeds
in improving productivity while developing IoT applications.
Assessing Feedback for Indirect Shared InteractionJorge Cardoso
Just skyped this presentation to OTM-MONET in Greece, about the paper:
http://www.mendeley.com/research/assessing-feedback-indirect-shared-interaction/
From JavaSpaces, JINI and GigaSpaces to SpringBoot, Akka – reactive and microservice pitfalls.
http://blog.mitemitreski.com/2014/11/java2days-2014-from-javaspaces-jini-and.html#.VHPK7x9jOCg
Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...Jorge Cardoso
Slides for the Summer University 2019 - University of Coimbra, about using A-Frame for creating a Web-based VR experience. This year, I'm using Cubecraft images to show how to recreate the 3D Cubecraft figures.
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018UX Antwerp Meetup
UX Antwerp Meetup, 30th of January, 2018 - organised by UXprobe https://www.uxpro.be/
Kristiaan De Roeck, senior IT architect and consultant at IBM
"How IOT, Cloud and Cognitive technology interconnect "
This talk positions "cloud", Internet of Things (IOT) and data analysis to each other. After generating massive amounts of information from the IOT, data is collected, stored and formatted in the Cloud. Then, based on Cognitive technology, data is analyzed with the goal of showing some unexpected outcome. This analysis can be used for any UX-oriented development, and generate insights for new UX perspectives. Kristiaan will describe some case studies; each of the subjects' first "stand alone" analysis, then combined in a bigger context to understand their dependencies.
Bio: Kristiaan De Roeck is a senior IT architect and consultant with 36 years of experienced in solution design, system architecture, information management, service management, and digital transformation projects. Kristiaan works for IBM.
Everybody knows Javascript is single-threaded and that it shares this same thread with other browser-related processes such as painting and compositing. There are several techniques to implement pseudo multithreading in JavaScript; however, during this talk we will focus our attention on how to use and debug the Service Worker API. Our end goal is to explore practical use cases in order to simplify the process to render complex user interfaces and transitions in a browser.
Many developers don't like the idea of low or no code, yet they use tooling to dramatically lower the amount of code they need to write.
This presentation covers what low code is, strengths and weaknesses and the future: what will make them successful and why developers should embrace these tools.
*MuleSoft’s Architecture Themes
- Mule ESB – Enterprise Service Bus
- Event Based Model
- API Centered Design
- Anypoint Studio – Visual Design
*Languages Used
*Mule as an Open Source project
*Mule Flows
Microservices architecture is garnering attention as a modern pattern for building application that scale well, deploy often, have better fault tolerance and can be built out of multiple technologies. We will go through the advantages and drawbacks of going Microservices way and when the pattern is a good fit. We will also touch on Docker, yet another buzzword, strongly emerging as a Microservices delivery mechanism for Linux based systems. If you are looking to refactor your monolithic application, to build a new cloud native application or simply to get your geek on this session is for you.
Enabling High Level Application Development In The Internet Of ThingsPankesh Patel
The Internet of Things (IoT) combines Wireless Sensor and Actuation Networks (WSANs), Pervasive
computing, and the elements of the \\traditional" Internet such as Web and database servers. This leads to
the dual challenges of scale and heterogeneity in these systems, which comprise a large number of devices of
dierent characteristics. In view of the above, developing IoT applications is challenging because it involves
dealing with a wide range of related issues, such as lack of separation of concerns, need for domain experts to
write low level code, and lack of specialized domain specic languages (DSLs). Existing software engineering
approaches only cover a limited subset of the above-mentioned challenges.
In this work, we propose an application development process for the IoT that aims to comprehensively
address the above challenges. We rst present the semantic model of the IoT, based on which we identify
the roles of the various stakeholders in the development process, viz., domain expert, software designer,
application developer, device developer, and network manager, along with their skills and responsibilities.
To aid them in their tasks, we propose a model-driven development approach which uses customized lan-
guages for each stage of the development process: Srijan Vocabulary Language (SVL) for specifying the
domain vocabulary, Srijan Architecture Language (SAL) for specifying the architecture of the application,
and Srijan Network Language (SNL) for expressing the properties of the network on which the application
will execute; each customized to the skill level and area of expertise of the relevant stakeholder. For the
application developer specifying the internal details of each software component, we propose the use of a
customized generated framework using a language such as Java. Our DSL-based approach is supported by
code generation and task-mapping techniques in an application development tool developed by us. Our
initial evaluation based on two realistic scenarios shows that the use of our techniques/framework succeeds
in improving productivity while developing IoT applications.
Assessing Feedback for Indirect Shared InteractionJorge Cardoso
Just skyped this presentation to OTM-MONET in Greece, about the paper:
http://www.mendeley.com/research/assessing-feedback-indirect-shared-interaction/
From JavaSpaces, JINI and GigaSpaces to SpringBoot, Akka – reactive and microservice pitfalls.
http://blog.mitemitreski.com/2014/11/java2days-2014-from-javaspaces-jini-and.html#.VHPK7x9jOCg
Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...Jorge Cardoso
Slides for the Summer University 2019 - University of Coimbra, about using A-Frame for creating a Web-based VR experience. This year, I'm using Cubecraft images to show how to recreate the 3D Cubecraft figures.
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic AugmentationJorge Cardoso
Presentation for the paper "Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation" at the 16th EUROGRAPHICS Workshop on Graphics and Cultural Heritage (EG GCH), Vienna, Austria, 2018.
Digital tools for exploring roman mosaicJorge Cardoso
Presentation for the CREATOUR 2nd International Conference - Emerging and Future Trends in Creative Tourism, 7, 8 and 9th June 2018.
Part of the Project "Mosaico – Conímbriga and Sicó"
Slides do segundo dia do Workshop (intensivo :) ) sobre Introdução à Programação de Dispositivos Móveis (Google Android, Apple iPhone, iPod Touch e iPad)
Slides do segundo dia do Workshop (intensivo :) ) sobre Introdução à Programação de Dispositivos Móveis (Google Android, Apple iPhone, iPod Touch e iPad)
Slides do primeiro dia do Workshop (intensivo :) ) sobre Introdução à Programação de Dispositivos Móveis (Google Android, Apple iPhone, iPod Touch e iPad)
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...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.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
3. Mo6va6on
Complexity
of
incorpora6ng
interac6ve
features
in
public
display
applica6ons.
Too
many
things
to
answer
when
designing
the
interac6on
for
a
public
display
applica6on:
• What
controls
can
we
use
to
offer
interac6ve
features
to
users?
– No
standard
interac6ve
controls
for
public
displays
• What
interac6on
mechanisms
can
be
used
to
provide
those
features?
– Various
possible
interac6on
mechanisms
(SMS,
BT
naming,
OBEX,
Email,
IM,
mobile
app,
desktop,
QR
codes,
touch,
etc.)
– Different
loca6ons
may
have
different
interac6on
resources
• How
will
those
features
work?
– Desktop
interac6on
paradigm
does
not
generally
apply
– Applica6ons
may
not
always
be
visible
• How
can
the
applica6on
react
to
different
users?
– The
interac6on
environment
is
mul6-‐user
– We
need
to
iden6fy/differen6ate
users
• How
can
users
tell
what
they
can
do
with
the
applica6on?
– Where
are
the
features
presented?
3
4. Mo6va6on
We
can
solve
all
those
ques6ons
for
ad
hoc
applica6ons,
but
• This
means
wasted
effort
in
developing
applica6ons
– Programmers
must
deal
with
issues
extraneous
to
the
main
applica6on
logic
• Will
certainly
lead
to
inconsistencies
in
the
interac6on
model
– Each
solu6on
will
behave
slightly
differently
– Will
confuse
users
We
need
a
programming
toolkit
for
interac6ve
public
display
applica6ons!
4
5. Toolkit
• The
toolkit
should
provide
a
consistent
model
for
user
interac6on
and
applica6on
development
– But
s6ll
allow
some
diversity
in
solu6ons
5
6. PuReWidgets
• PuReWidgets
tries
to
solve
these
problems.
• To
make
sure
it
covers
a
wide
range
of
applica6ons,
we
looked
at
various
interac6ve
public
display
systems
to
learn
– General
requirements
– Types
of
controls
– Types
of
input
mechanisms
6
7. PuReWidgets
Widget-‐based
toolkit.
• A
widget
represents
an
interac6ve
feature.
• Is
represented
by
class
in
an
object-‐oriented
programming
model.
• Applica6ons
instan6ate
widgets,
define
a
callback,
and
receive
interac6on
event
through
the
callback
• Main
features
– Mul6ple,
extensible,
controls
– Independence
of
input
mechanisms
and
modali6es
– Automa6cally
generated
graphical
interfaces
– Asynchronous
interac6on
– Concurrent
interac6on
– Graphical
affordances
– Server
&
client
libraries
7
8. Features
Mul6ple,
extensible,
controls.
• Allows
developers
to
create
rich
interac6ve
applica6ons.
Controls
can
be
extended
with
custom
func6onality.
• We
studied
various
interac6ve
display
systems
to
define
a
set
of
basic
interac6ve
controls,
common
to
the
majority
of
applica6ons:
• Ac6on
bugon
– Trigger
an
ac6on
in
the
applica6on,
e.g.,
play
a
video
• Op6on
selec6on
– Selects
among
a
set
of
op6ons,
e.g.,
to
vote
• Text
entry
– Sends
text
to
the
applica6on,
e.g.,
a
comment,
tag,
search
keyword
• Download
– Receives
a
media
file
from
the
applica6on,
e.g.,
download
poster
• Upload
– Uploads
a
media
file
to
the
applica6on,
e.g.,
a
photo
to
be
displayed
• Check-‐in
– Says
“I’m
here”
8
9. Features
Independence
of
input
mechanisms
and
modali6es.
• Allows
developers
to
focus
on
the
core
applica6on
func6onality
and
not
on
the
low-‐level
interac6on
details.
• Allows
applica6ons
to
work
in
heterogeneous
loca6ons,
with
different
mechanism
• Interac6on
can
be
accomplished
with
various
mechanisms
(SMS,
Bluetooth
naming,
QR
codes,
and
automa6cally
generated
graphical
interfaces).
9
10. Features
Automa6cally
generated
graphical
interfaces.
• Provide
a
richer
interac6on
for
desktop
and
mobile
devices.
• PuReWidgets
generates
web-‐based
interfaces
for
each
applica6on.
• It
also
generates
QR
codes
for
each
applica6on's
feature
10
11. Features
Asynchronous
interac6on.
• Allows
applica6ons
to
receive
input
events
that
were
generated
when
the
applica6on
was
not
listening.
• PuReWidgets
provides
a
persistent
input
queue
for
each
applica6on
• Applica6ons
can
request
past
input
at
any
6me
11
12. Features
Concurrent
interac6on.
• Allows
various
users
to
interact
at
the
same
6me,
while
providing
applica6ons
with
iden6ty
informa6on
that
allows
them
to
differen6ate
users.
• Every
input
event
carries
a
user
id
(if
available)
– Where
possible,
anonymous
interac6ons
are
s6ll
“iden6fied”
(more
on
this
later)
12
13. Features
Graphical
affordances.
• Allows
users
to
immediately
recognize
interac6ve
features
and
input
feedback.
• Controls
have
an
op6onal
graphical
representa6on
that
can
be
used
on
the
public
display
interface.
– Applica6ons
may
not
show
the
features
on
the
public
display,
but
they
will
s6ll
be
available
• Input
feedback
is
also
(op6onally)
displayed
on
the
public
display.
13
14. Features
Server
&
client
libraries.
• Programmers
can
choose
to
use
just
the
server,
just
the
client,
or
both
libraries
together.
• Allows
developers
to
choose
the
best
applica6on
model.
14
16. Interac6on
services
• PuReWidgets
service
– Keeps
informa6on
about
every
widget
– Generates
graphical
interfaces
for
desktop,
mobile,
touch
plaporms
• These
allow
anonymous
interac6ons,
but
they
generate
persistent
cookie-‐based
random
ids.
– Generates
QR
codes
for
every
widget
– Generates
unique
textural
reference
codes
for
data-‐based
interac6ons
(SMS,
BT
naming,
OBEX,
etc.)
• IO
infrastructure
– (from
Instant
places)
– Provides
low-‐level
data-‐based
interac6on
16
17. PuReWidgets
library
• Provides
an
object-‐oriented
library
of
widgets
• Hides
the
communica6on
details
with
the
PuReWidgets
service
• Provides
other
features,
unrelated
to
interac6on,
such
as
– Applica6on
“place-‐aware”
storage
• PuReWidgets
provides
a
name-‐value
server
datastore
for
easy
storage
of
place-‐specific
seqngs/state
– Skeleton
admin
interface
for
place-‐owners
• To
configure
place-‐specific
seqngs
17
19. Local
applica6on
model
• Applica6on
logic
on
the
public
display
(player)
– Subject
to
the
schedule
6mings
• May
not
be
able
to
react
(or
update
data
structures)
immediately
when
user
interacts
– But
will
eventually
(when
it
is
displayed
again)
• When
displayed,
the
toolkit
periodically
asks
the
service
for
input
events
– And
triggers
the
appropriate
widget
event
19
21. Remote
applica6on
model
• Applica6on
logic
on
the
server
• Can
react
(or
update
data
structures)
immediately
to
user
input
– Even
if
not
on
the
public
display,
the
reac6on
can
be
visible
on
other
channels
• The
toolkit
periodically
asks
the
service
for
input
events
– And
triggers
the
appropriate
widget
event
21
22. PuReWidgets
Implementa6on
• Google
Appengine
(server)
• Google
Web
Toolkit
–
GWT
(client)
• Overview
of
the
library
22
24. Ini6al
Evalua6on/Development
process
• Two
applica6ons
developed
so
far
(ignore
the
“graphic
design”,
please)
– Youtube
player,
media
intensive,
complex
graphical
components
(several
panels
that
change
over
6me),
local
applica6on
model
– Everybody
votes,
based
on
display
owner
created
content,
simpler
graphical
component,
combines
remote
and
local
applica6on
models
24
25. Ini6al
Evalua6on/Development
process
• Con6nuous
refinement
– Develop
interac6ve
public
display
applica6ons
– Gain
more
insight
about
the
difficul6es
– Refine
the
toolkit
to
address
the
iden6fied
problems
– Refactor
the
applica6ons
to
include
the
toolkit
changes
25
26. Summary
• PuReWidgets
facilitates
applica6on
development
– Provides
ready-‐to-‐use
interac6ve
controls
– Integrates
various
input
mechanisms
via
an
I/O
infrastructure
– Generates
applica6on
interfaces
for
desktop,
mobile,
and
QR
codes
– Provides
client
and
server
applica6on
development
models
26