Scala with MongoDB
MongoDB is a document-oriented database management system designed for performance, horizontal scalability, high availability,open source NoSQL database(Schemaless or Non-relational) ,And advanced queryability. ➢ MongoDB is a document-based database system, and as a result, all records, or data, in MongoDB are documents.
Streaming Data Pipelines with MongoDB and Kafka at ao.comMongoDB
At AO.com, our team have been focussing on how we can develop new capabilities delivering business value whilst decoupling from legacy monolithic architectures. The problem is, our existing applications contain a lot of data that we care about.
Scala with MongoDB
MongoDB is a document-oriented database management system designed for performance, horizontal scalability, high availability,open source NoSQL database(Schemaless or Non-relational) ,And advanced queryability. ➢ MongoDB is a document-based database system, and as a result, all records, or data, in MongoDB are documents.
Streaming Data Pipelines with MongoDB and Kafka at ao.comMongoDB
At AO.com, our team have been focussing on how we can develop new capabilities delivering business value whilst decoupling from legacy monolithic architectures. The problem is, our existing applications contain a lot of data that we care about.
This is a full immersion in MongoDB, I talk about the MongoDB data model, when referencing and when embedding, how denormalize, how to use the aggregation framework of MongoDB
Going through an Amazon-clone using Mongoid ODM that uses the NoSQL database MongoDB. Presentation touches on BSON object, Associations in Mongoid, embedded documents and designing a rails app with an implicit schema.
JSONSchema with golang is about using JSONSchema to define configuration files' specification for your application and then the configuration files could be JSON/YAML.
With golang library called gojsonschema is pretty neat to handle validations.
Embark on a grand tour of all that is new in FME 2017 for databases both big and small. Learn what types of databases are best suited for each task and witness the amazing powers of the little databases (Geopackage, SQLite, Access).
Remote Sensing Data — Instant Home Delivery!Safe Software
Satellites are gathering new information every second — and you have access to it. The question: What will you do with it? Here’s how to pull in remote sensed data from several sources, plus a real example of this in action.
Take advantage of FME Server’s capabilities for real-time integration and change data capture. Learn about workflows for monitoring and updating your data as it changes. We’ll look at what data sources/systems are monitored out-of-the-box and how you can enable change data capture for other data sources/systems.
Go beyond spatial data and connect to a range of web and business formats. Plus, learn techniques for generating reports, dashboards, and analytics — whether you prefer Tableau, PDFs, spreadsheets, or web interfaces. We’ll look at what people have been doing to make their data more readable and how you can do it too.
Load testing of HELIDEM geo-portal: an OGC open standards interoperability ex...Massimiliano Cannata
This paper presents a load testing of the HELIDEM geo-portal, which is an example of interoperability between a numbers of standard geospatial services as defined by the Open Geospatial Consortium. The portal was developed within the European project HELIDEM (www.helidem.eu) with the aim of valorizing the main project output which is a cross-border digital terrain model. The portal aims at fostering its diffusion and usage trough easily accessible tools. The DTM covers the alpine area located between Southern Switzerland (Canton Ticino) and Northern Italy (Lombardy and Piedmont Regions). From a technological point of view, the server-side component of the portal is based on a Service Oriented Architecture implemented using the open source software Zoo-Project, GRASS GIS and Geoserver; the client-side component is a Web interface based on CSS3 and HTML5 trough the usage of the ExtJS framework and the OpenLayers software. The presented solution is a mix of technologies and software, some of which are considered, within the open source for geospatial community, mature and robust while others are considered promising but not sufficiently tested yet. For this reason this research conducted a load test over concurrent users in order to verify the robustness, quality and performance of the system and to identify eventual bottlenecks. Test results didn’t register any exception confirming the good quality of the implemented system and underlying software. Nevertheless, performance and response time exponentially degrades with increasing number of concurrent users, area of analysis and process complexity. Finally, the test confirms that system is robust, in fact no system failure was recorded during the analysis.
This is a full immersion in MongoDB, I talk about the MongoDB data model, when referencing and when embedding, how denormalize, how to use the aggregation framework of MongoDB
Going through an Amazon-clone using Mongoid ODM that uses the NoSQL database MongoDB. Presentation touches on BSON object, Associations in Mongoid, embedded documents and designing a rails app with an implicit schema.
JSONSchema with golang is about using JSONSchema to define configuration files' specification for your application and then the configuration files could be JSON/YAML.
With golang library called gojsonschema is pretty neat to handle validations.
Embark on a grand tour of all that is new in FME 2017 for databases both big and small. Learn what types of databases are best suited for each task and witness the amazing powers of the little databases (Geopackage, SQLite, Access).
Remote Sensing Data — Instant Home Delivery!Safe Software
Satellites are gathering new information every second — and you have access to it. The question: What will you do with it? Here’s how to pull in remote sensed data from several sources, plus a real example of this in action.
Take advantage of FME Server’s capabilities for real-time integration and change data capture. Learn about workflows for monitoring and updating your data as it changes. We’ll look at what data sources/systems are monitored out-of-the-box and how you can enable change data capture for other data sources/systems.
Go beyond spatial data and connect to a range of web and business formats. Plus, learn techniques for generating reports, dashboards, and analytics — whether you prefer Tableau, PDFs, spreadsheets, or web interfaces. We’ll look at what people have been doing to make their data more readable and how you can do it too.
Load testing of HELIDEM geo-portal: an OGC open standards interoperability ex...Massimiliano Cannata
This paper presents a load testing of the HELIDEM geo-portal, which is an example of interoperability between a numbers of standard geospatial services as defined by the Open Geospatial Consortium. The portal was developed within the European project HELIDEM (www.helidem.eu) with the aim of valorizing the main project output which is a cross-border digital terrain model. The portal aims at fostering its diffusion and usage trough easily accessible tools. The DTM covers the alpine area located between Southern Switzerland (Canton Ticino) and Northern Italy (Lombardy and Piedmont Regions). From a technological point of view, the server-side component of the portal is based on a Service Oriented Architecture implemented using the open source software Zoo-Project, GRASS GIS and Geoserver; the client-side component is a Web interface based on CSS3 and HTML5 trough the usage of the ExtJS framework and the OpenLayers software. The presented solution is a mix of technologies and software, some of which are considered, within the open source for geospatial community, mature and robust while others are considered promising but not sufficiently tested yet. For this reason this research conducted a load test over concurrent users in order to verify the robustness, quality and performance of the system and to identify eventual bottlenecks. Test results didn’t register any exception confirming the good quality of the implemented system and underlying software. Nevertheless, performance and response time exponentially degrades with increasing number of concurrent users, area of analysis and process complexity. Finally, the test confirms that system is robust, in fact no system failure was recorded during the analysis.
The JBossWS project is a working example of how the open source development model can lead to real innovation while delivering enterprise level software. JBossWS is a framework for providing webservice features on top of JBoss AS. Instead of just implementing functionalities from scratch, JBossWS provides an integration layer for running three supported open source ws stacks (including Apache CXF and Glassfish Metro) on JBoss Application Server. While this is of course possible thanks to the WS world being quite specified by standards, the whole architecture is interesting because of its ability to both act as a testing framework for the supported stacks as well as the field for delivering additional cross-stack features. I'm going to present in details the architecture layout as well as describe how it allows users to really have an open choice on what stack to run their services on, while getting benefits from common management, tooling, additional features etc. On the other side, I'll introduce and provide samples of how this development model also benefits the supported stacks' communities thanks to the collaboration with them.
Presentation to Munich JS on 2011-04-06: covers the Munich Chrome team's privacy efforts, and argues that IndexedDB is a better mechanism than localStorage for applications of any real complexity.
HTML version up at http://20110406-munichjs.appspot.com/
These are the presentation slides demonstratingseven versions of the UI of same HTML5 application using various libraries and frameworks. This application is described in detail in the O'Reilly book "Enterprise Web Development"
Going Native: Leveraging the New JSON Native Datatype in Oracle 21cJim Czuprynski
Need to incorporate JSON documents into existing Oracle database applications? The new native JSON datatype introduced in Oracle 21c makes it simple to store, access, traverse, and filter the complex data often found within JSON documents, often without any application code changes.
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptDave Stokes
The MySQL Shell has a JavaScript mode where you can use JS libraries to access you data and you can also write (and save) your own custom reports (or programs) for future use.
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Codemotion
Scala is the only language that can be used to produce code that can be "trans/compiled" for the JVM, in Javascript and in native binary. This allows to write libraries that are usable in JVM and JS using the power of functional programming (i.e. cats, scalaz), generic programming (i.e. shapeless) and macro/scalameta available in Scala. In this talk, we will see how to write a Scala application backend and a SPA (scala.js/scala-js-react) that share the same code as a business logic, datamodels and transparent API call (JVM/JS) in Scala (via autowire/akka-http/circe).
Our favorite language is now powering everything from event-driven servers to robots to Git clients to 3D games. The JavaScript package ecosystem has quickly outpaced past that of most other languages, allowing our vibrant community to showcase their talent. The front-end framework war has been taken to the next level, with heavy-hitters like Ember and Angular ushering in the new generation of long-lived, component-based web apps. The extensible web movement, spearheaded by the newly-reformed W3C Technical Architecture Group, has promised to place JavaScript squarely at the foundation of the web platform. Now, the language improvements of ES6 are slowly but surely making their way into the mainstream— witness the recent interest in using generators for async programming. And all the while, whispers of ES7 features are starting to circulate…
JavaScript has grown up. Now it's time to see how far it can go.
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.
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.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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.
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.
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!
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.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
7. … specified by XML Schemas
More than 50 Schemas
More than 100 individual versions
Over 8MB and 800 individual XSD files
7
8. OGC Web Services speak XML
GetCapabilities
<wfs:WFS_Capabilities …
/>
GetFeature
<wfs:FeatureCollection …
/>
Client WFS Server
8
9. JS Apps have a communication problem
JS App WFS Server
{”JS”:”ON”} ???
XSD
9
<x:ml/>
10. Jsonix provides a solution
Mapping
10
WFS Server
{”JS”:”ON”}
Jsonix
XSD
<x:ml/>
JS App
11. What is Jsonix?
Jsonix is a powerful Open-Source JavaScript library
for XML↔JS conversion
https://github.com/highsource/jsonix
Bidirectional, type-safe, strongly-structured
Driven by declarative XML↔JS mappings…
… which can be generated from XML schemas
automatically
11
12. Further Jsonix features
Works in browsers
Works in Node.js
Works with AMD, CommonJS and without (globals)
Namespace-aware
Supports almost all of the XML Schema simple types
(including binary types and QNames)
Supports xsi:type
And much more
12
14. Parsing with Jsonix - Code Walk-Through
var getCapabilitiesUrl = …;
// First we create a context for XLink and WMS mappings
var context = new Jsonix.Context([XLink_1_0, WMS_1_3_0], …);
// Then we create an unmarshaller (parser)
var unmarshaller = context.createUnmarshaller();
// And finally use this unmarshaller
// to parse an XML document from the given URL
unmarshaller.unmarshalURL(getCapabilitiesUrl, function(result) {
// We’ll get results in a callback function
$('#json').html(JSON.stringify(result, null, 2));
});
14
16. … and can serialize this JSON back to XML
// Create (or reuse) the Jsonix Context
var context = new Jsonix.Context([XLink_1_0, WMS_1_3_0], …);
// Create a marshaller (serializer)
var marshaller = context.createMarshaller();
// Serialize JSON as XML string or DOM node
$('#xml').text(marshaller.marshalString(result));
16
17. The same thing without Jsonix?
OpenLayers 3: ol.format.
WMSCapabilities
JSFiddle:
http://bit.do/jsonix-002
17
18. Let’s take a closer look into the OL3 code
ol.format.WMSCapabilities
ca. 28 kB, ca 0.8 KLoC
Type-safe
Strongly-structured
Only parsing
Written manually
Super exciting code
18
21. What does “strongly-structured” mean?
<WMS_Capabilities …
version="1.3.0"
updateSequence="163">
<Service> … </Service>
<Capability>
<Request> … </Request>
<Exception> … </Exception>
<Layer> …
<!-- Just one Layer element -->
<Layer queryable="1"> … </Layer>
</Layer>
</Capability>
</WMS_Capabilities>
How should the Layer element
be represented in JSON?
As a single element or as an array?
capability.layer.layer?
capability.layer.layer[0]?
You can’t decide it just based on
the XML instance
You have to know the schema
21
22. Jsonix is strongly-structured
Jsonix knows the structure of the XML from the mapping
… and respects the defined cardinalities, element orders,
properties, naming and so on
Jsonix always produces JSON and XML-structures which
respect the definitions from the mapping
22
23. Jsonix produces reliable structures
<WMS_Capabilities …
version="1.3.0"
updateSequence="163">
<Service> … </Service>
<Capability>
<Request> … </Request>
<Exception> … </Exception>
<Layer> …
<Layer queryable="1"> … </Layer>
</Layer>
</Capability>
</WMS_Capabilities>
layer is an array:
capability.layer.layer[0]
Because the mapping says so:
23
25. What does “type-safe” mean?
<WMS_Capabilities …
version="1.3.0"
updateSequence="163">
<Service> … </Service>
<Capability>
<Request> … </Request>
<Exception> … </Exception>
<Layer> …
<Layer queryable="1"> … </Layer>
</Layer>
</Capability>
</WMS_Capabilities>
Which type should
queryable=”1” have in JSON?
String? Number? Boolean?
You can’t decide it just based on
the XML instance
You have to know the schema
25
26. Jsonix is type-safe
Jsonix knows types of elements
and attributes from the mapping
… and converts strings from/to
these types automatically
Jsonix always produces values in
JSON and XML according to the
types defined in the mapping
26
27. Jsonix converts the types automatically
<WMS_Capabilities …
version="1.3.0"
updateSequence="163">
<Service> … </Service>
<Capability>
<Request> … </Request>
<Exception> … </Exception>
<Layer> …
<Layer queryable="1"> … </Layer>
</Layer>
</Capability>
</WMS_Capabilities>
queryable is a boolean:
{ "queryable" : true, … }
Because the mappings says so:
27
34. Experimental: Validate JSON against generated JSON Schemas
Using the great “Another JSON Schema Validator” AJV
// Load JSON Schemas
var ajv = new Ajv();
ajv.addSchema(XMLSchemaJsonSchema, … ); ajv.addSchema(JsonixJsonSchema, … );
ajv.addSchema(XLink_1_0JsonSchema, 'http://www.w3.org/1999/xlink');
// Compile the validation function and validate
var validate = ajv.compile(WMS_1_3_0JsonSchema);
if (!validate(capabilitiesElement)) { console.log(validate.errors); }
34
[{
keyword: 'required',
dataPath: '.value.capability.request.getCapabilities.dcpType['0'].http',
message: 'property .http is required'
}, … ]
35. Compiling XSDs into mappings is hard
35
By
Alex
E.
Proimos
(http://www.flickr.
com/photos/proimos/4199675334/)
[CC
BY
2.0
(http://creativecommons.org/licenses/by/2.0)],
via
Wikimedia
Commons
36. Compiling XSDs into mappings is hard
We’ve huge number of schemas with complex
interdependencies
Schemas sometimes have errors
We have to resolve naming collisions
We’re often forced to customize generation or even
patch schemas
36
37. (Unofficial) OGC Schemas Project
https://github.com/highsource/ogc-schemas
Pre-generated mapping for OGC Schemas:
JS↔XML: Jsonix mappings
Java↔XML: JAXB classes
Available via npmjs.org and Maven Central
37
38. (Unofficial) OGC Schemas Project
Compiles over 30 OGC Schemas
with more than 80 single versions
OWS, WMS, SLD, GML, Filter,
WFS, WPS, WCS, WMC, SWE,
SPS, SOS, OM, SensorML, KML,
ISO 19139, CSW, and many
more…
… ready-to-use with Jsonix
38
39. Using pre-generated mappings
var mappings = [XLink_1_0, SMIL_2_0, SMIL_2_0_Language,
GML_3_1_1, OWS_1_0_0, Filter_1_1_0, DC_1_1, DCT, CSW_2_0_2];
// Create a Jsonix context
var context = new Jsonix.Context(mappings, {
namespacePrefixes: {
"http://www.opengis.net/cat/csw/2.0.2": "csw",
"http://www.opengis.net/ogc": "ogc",
"http://www.opengis.net/gml": "gml"
}
});
JSFiddle:
http://bit.do/jsonix-007
39
40. Takeaway
Jsonix is a powerful Open-Source JavaScript library for
XML↔JS conversion
Works in browsers as well as Node.js
Bidirectional, strongly-structured and type-safe
Uses declarative XML↔JS mappings
Mappings can be generated from XML Schemas
The (unofficial) OGC Schemas Project provides ready-to-use
pre-generated mapping for many OGC Schemas
40
41. Jsonix can drastically simplify
XML processing in JavaScript apps
and thus save a lot of development effort
https://github.com/highsource/jsonix
41