This document discusses using APEX Nitro to improve the APEX development process. APEX Nitro allows developers to write CSS and JavaScript locally and have changes automatically synced to their APEX application. It provides features like error handling, minification, concatenation, and preprocessing to boost performance and maintainability. The document reviews how to install, configure, and use APEX Nitro to enhance the front-end development experience.
Speed Up Your APEX Apps with JSON and HandlebarsMarko Gorički
The document discusses various methods for generating JSON from SQL queries in Oracle APEX applications. It compares manually concatenating strings, using the apex_util.json_from_* procedures, the PL/JSON library, the APEX_JSON API package, and Oracle REST Data Services (ORDS). The APEX_JSON package is recommended for most cases as it supports generation and parsing, can be used standalone, has a light footprint, and makes conversion from XML easy. Using a templating engine like Handlebars.js with JSON is also presented as a way to dynamically render HTML from database queries.
Site search is one of the core functionality of any website. This talk provides an overview of internal workings of CQ5 search, its limitations for implementing site search functionality and discusses design patterns & challenges for integrating various 3rd party search providers with CQ5/AEM.
Cloud Security Monitoring and Spark Analyticsamesar0
This document summarizes a presentation about Threat Stack's use of Spark analytics to process security event data from their cloud monitoring platform. Key points:
- Threat Stack uses Spark to perform rollups and aggregations on streaming security event data from their customers' cloud environments to detect threats and monitor compliance.
- The event data is consumed from RabbitMQ by an "Event Writer" process and written to S3 in batches, where it is then processed by Spark jobs running every 10 minutes.
- Spark analytics provides scalable rollups of event counts and other metrics that are written to Postgres. This replaced less scalable homegrown solutions and Elasticsearch facets.
- Ongoing work includes optimizing
The document discusses various features that are important for a robust REST API beyond basic REST principles. These include data modeling, error handling, paging, querying, and batch processing. It also covers API manageability topics like security, rate limiting, analytics, and monitoring. Finally, it provides an overview of REST principles and compares REST to other API styles.
This are the slides of my talk: "Building a SPA in 30 min" given at NoSQL Matters CGN 2014.
It is about the creation of a backend for a Single Page Web Application build in AngularJS. The Backend is build in Foxx on top of ArangoDB, a framework to create a RESTful backend with only a few lines of Code.
This document discusses using APEX Nitro to improve the APEX development process. APEX Nitro allows developers to write CSS and JavaScript locally and have changes automatically synced to their APEX application. It provides features like error handling, minification, concatenation, and preprocessing to boost performance and maintainability. The document reviews how to install, configure, and use APEX Nitro to enhance the front-end development experience.
Speed Up Your APEX Apps with JSON and HandlebarsMarko Gorički
The document discusses various methods for generating JSON from SQL queries in Oracle APEX applications. It compares manually concatenating strings, using the apex_util.json_from_* procedures, the PL/JSON library, the APEX_JSON API package, and Oracle REST Data Services (ORDS). The APEX_JSON package is recommended for most cases as it supports generation and parsing, can be used standalone, has a light footprint, and makes conversion from XML easy. Using a templating engine like Handlebars.js with JSON is also presented as a way to dynamically render HTML from database queries.
Site search is one of the core functionality of any website. This talk provides an overview of internal workings of CQ5 search, its limitations for implementing site search functionality and discusses design patterns & challenges for integrating various 3rd party search providers with CQ5/AEM.
Cloud Security Monitoring and Spark Analyticsamesar0
This document summarizes a presentation about Threat Stack's use of Spark analytics to process security event data from their cloud monitoring platform. Key points:
- Threat Stack uses Spark to perform rollups and aggregations on streaming security event data from their customers' cloud environments to detect threats and monitor compliance.
- The event data is consumed from RabbitMQ by an "Event Writer" process and written to S3 in batches, where it is then processed by Spark jobs running every 10 minutes.
- Spark analytics provides scalable rollups of event counts and other metrics that are written to Postgres. This replaced less scalable homegrown solutions and Elasticsearch facets.
- Ongoing work includes optimizing
The document discusses various features that are important for a robust REST API beyond basic REST principles. These include data modeling, error handling, paging, querying, and batch processing. It also covers API manageability topics like security, rate limiting, analytics, and monitoring. Finally, it provides an overview of REST principles and compares REST to other API styles.
This are the slides of my talk: "Building a SPA in 30 min" given at NoSQL Matters CGN 2014.
It is about the creation of a backend for a Single Page Web Application build in AngularJS. The Backend is build in Foxx on top of ArangoDB, a framework to create a RESTful backend with only a few lines of Code.
Apache Cayenne is a mature full-featured Java ORM. The presentation will discuss Cayenne approach to object persistence, including overall philosophy and the differences with JPA/Hibernate. It will highlight things like transaction management, mapping workflow, as well as the new APIs in the latest Cayenne 4.0. Full presentation video: https://www.youtube.com/watch?v=56xkN3P_zW8&list=PLhN6VJHsM3TPca_ksylFQqr_6qG5GnUWa&index=2
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConSPTechCon
Christina Wheeler gave a presentation on the Content Query Web Part (CQWP) in SharePoint. The CQWP aggregates content from lists and libraries to display on pages. It allows filtering, adding columns, and custom styling. New features in SharePoint 2010 include dynamic filters based on page fields and passing additional fields to the XSLT for rendering. The presentation covered building queries, controlling presentation, and resources for working with CAML.
APEX HROUG 2019 - Universal Theme: Tips and TweaksMarko Gorički
Universal Theme is one of the top APEX features because it enables developers to work on the data models and business logic instead of dealing with UI problems.
Universal Theme is like playing with Legos. Just pick your blocks and be creative. It consists of many ready to use components that can easily be customized by changing declarative properties.
What if you want to customize it to fit your company's brand? Where to start? By developing a custom theme or by customizing Universal Theme? What are the possible problems?
Answers to these and many other questions will be answered during this presentation.
Sightly - AEM6 UI Development using JS and JAVAYash Mody
Sightly is an HTML templating language used for building templates in AEM. It uses expression language, data attributes, and includes to build templates with dynamic content. Tools like Brackets and Eclipse plugins can be used to develop Sightly templates, which are HTML files that make use of expression language, data attributes, and includes to insert dynamic content. Sightly templates also leverage the WCMUse API to interact with the AEM page manager, properties, and other core features.
Manage and monitor your Oracle Database securely with Oracle REST Data Services and our Database API. These slides will show how to configure the feature and demonstrate a simple report and kicking off a Data Pump export job.
Brett Meyer gave an overview of Hibernate ORM and JPA. He discussed that ORM maps Java objects to relational databases for persistence beyond the life of a program. JPA is the Java standard for ORM that provides portability, while Hibernate is a full-featured JPA implementation with additional native features. Hibernate allows focusing on business logic rather than data access details and provides performance, concurrency, and extensibility benefits over traditional JDBC usage.
Object-relational mapping (ORM) tools address the impedance mismatch between object-oriented programming and relational databases. Hibernate is a popular open-source Java ORM that uses object mapping files to define object-database relationships. It provides an object persistence mechanism and query language to retrieve and manipulate objects while insulating developers from vendor-specific SQL. Hibernate supports inheritance, caching, and concurrency control to improve performance but can introduce complexity.
The document discusses using MongoDB as the data store for the "Potential Match Generator" component of an online dating service called eHarmony. Some key benefits of MongoDB cited include its scalability, built-in sharding and replication, and flexible schema. The document provides some tips for using MongoDB effectively, such as using real queries and data during testing, minimizing property names, using appropriate indexes, and considering how to shard data.
Java Persistence API (JPA) - A Brief OverviewCraig Dickson
This is a lightning presentation given by Scott Rabon, a member of my development team. He presents a high level overview of the JPA based on his first exposure to it.
APEX Office Hours Interactive Grid Deep DiveJohnSnyders
This document provides a summary of an "Interactive Grid Deep Dive" presentation. It begins with an introduction of the presenter and an overview of the agenda. The presentation then discusses how the Interactive Grid can be used out of the box with declarative functionality and no code needed. It also demonstrates the Interactive Grid. The presentation describes how the Interactive Grid can be customized through declarative attributes as well as advanced JavaScript. It provides resources for further customizing the Interactive Grid. Finally, it discusses the architecture of the Interactive Grid including its modular design, separate model and view layers, and data exchange between the client and server.
RESTful design rules promote best practices for building scalable APIs. The rules encourage contract-first design, establish standards, and reduce support costs. Key rules include using a uniform interface with URIs to identify resources, caching to improve performance, and making services stateless. Resources should have self-descriptive representations and link to related resources to allow navigation without hard-coded URIs. Common HTTP methods like GET, POST, PUT and DELETE should map to standard CRUD operations, and status codes indicate request outcomes.
Design patterns are not only cool but represent the collective wisdom of many developers. Since the publication of Design Patterns: Elements of Reusable Object-Oriented Software by GoF many new concepts have extended the coverage of these design patterns, and now Java EE provide out of the box implementations of many of the most well known patterns. This talk will show how, by taking advantage of Java EE features such as CDI and the smart use of annotations, traditional design patterns can be implemented in a much cleaner and quicker way. Among the design patterns discuss there will be Singleton, Façade, Observer, Factory, Dependency Injection, Decorator and more.
An overview of ORDS for building RESTful Web Services and your Oracle Database with BEER examples!
Thanks and credit to the POUG organization for making this possible.
Automating SQL Server Database Creation for SharePointTalbott Crowell
This document discusses automating SQL Server database creation for SharePoint. It covers planning for document storage, including structuring data across site collections and content databases. A sample solution is presented that partitions data by year into separate content databases to optimize manageability. Other considerations for large-scale document storage with SharePoint like search indexing, backups, and future tools are also covered.
This document provides an overview of using Fluxible to create isomorphic JavaScript applications. It defines what an isomorphic app is, discusses React and Flux, and then introduces Fluxible. Key points about Fluxible include that it is an implementation of Flux, has a vibrant community, and includes tools like provideContext and connectToStores to help build React components. The document demonstrates building a simple Fluxible app with files for the server, client, app, components, actions and stores. It also discusses routing and exporting/importing state between server and client.
Version 6 of Adobe Experience Manager (AEM 6) is a major release that introduces significant innovations. Sightly is a new template system to be used in place of (or together with) JSP. Along with Sling Models, SIghtly strongly improves the separation between the logic and presentation. The development effort is reduced because a Sightly template is an HTML 5 document, easily maintainable even by front-end developers.
The presentation provides an overview of the basic features of Sightly and introduces the fundamentals of the new development model with the support of tools released release together with AEM 6.
A Practical Guide To Hypermedia APIs - Philly.rbSmartLogic
This document provides a practical guide to building hypermedia APIs. It introduces hypermedia APIs and the Hypertext Application Language (HAL) format. It discusses building representations of resources with links using serializers, and building clients that can traverse links and perform actions by loading and updating data through services. Helpful resources and gems for building APIs are also listed.
Lukas Vlcek built a search app for public mailing lists in 15 minutes using ElasticSearch. The app allows users to search mailing lists, filter results by facets like date and author, and view document previews with highlighted search terms. Key challenges included parsing email structure and content, normalizing complex email subjects, identifying conversation threads, and determining how to handle quoted content and author disambiguation. The search application and a monitoring tool for ElasticSearch called BigDesk will be made available on GitHub.
External search platforms can be leveraged to improve AEM search capabilities by allowing the search infrastructure to scale independently, provide additional features, and index multiple data sources. The EASE framework simplifies integrating AEM content with external search platforms like Apache Solr by generating a structured index on a push model triggered by AEM replication. Sample implementations demonstrate full-text, faceted, geospatial, and personalized search capabilities using an external index. Real-world considerations include handling aggregated content and permission-sensitive search.
The document discusses how to design flexible and discoverable REST APIs using the Hypertext Application Language (HAL) format and web API design principles. It outlines how HAL embeds links and relationships between resources to allow client-side navigation without pre-defined endpoints. The document also discusses best practices for REST API design, such as embedding related resources to optimize caching and network requests. Finally, it covers challenges with HAL implementation, such as naming relationships and collection representation, and alternatives like Siren and AtomPub.
This document discusses using HATEOAS (Hypermedia as the Engine of Application State) with the ExtJS JavaScript framework. It defines HATEOAS and common media types like HAL and Siren. HATEOAS reduces client-server coupling by having the client discover available state transitions from resource representations instead of having hardcoded URLs. The document explains how to extend ExtJS models and proxies to consume HAL responses and handle state transitions based on the link relations in HAL documents. Live coding examples demonstrate implementing this with the Sencha HAL package.
Apache Cayenne is a mature full-featured Java ORM. The presentation will discuss Cayenne approach to object persistence, including overall philosophy and the differences with JPA/Hibernate. It will highlight things like transaction management, mapping workflow, as well as the new APIs in the latest Cayenne 4.0. Full presentation video: https://www.youtube.com/watch?v=56xkN3P_zW8&list=PLhN6VJHsM3TPca_ksylFQqr_6qG5GnUWa&index=2
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConSPTechCon
Christina Wheeler gave a presentation on the Content Query Web Part (CQWP) in SharePoint. The CQWP aggregates content from lists and libraries to display on pages. It allows filtering, adding columns, and custom styling. New features in SharePoint 2010 include dynamic filters based on page fields and passing additional fields to the XSLT for rendering. The presentation covered building queries, controlling presentation, and resources for working with CAML.
APEX HROUG 2019 - Universal Theme: Tips and TweaksMarko Gorički
Universal Theme is one of the top APEX features because it enables developers to work on the data models and business logic instead of dealing with UI problems.
Universal Theme is like playing with Legos. Just pick your blocks and be creative. It consists of many ready to use components that can easily be customized by changing declarative properties.
What if you want to customize it to fit your company's brand? Where to start? By developing a custom theme or by customizing Universal Theme? What are the possible problems?
Answers to these and many other questions will be answered during this presentation.
Sightly - AEM6 UI Development using JS and JAVAYash Mody
Sightly is an HTML templating language used for building templates in AEM. It uses expression language, data attributes, and includes to build templates with dynamic content. Tools like Brackets and Eclipse plugins can be used to develop Sightly templates, which are HTML files that make use of expression language, data attributes, and includes to insert dynamic content. Sightly templates also leverage the WCMUse API to interact with the AEM page manager, properties, and other core features.
Manage and monitor your Oracle Database securely with Oracle REST Data Services and our Database API. These slides will show how to configure the feature and demonstrate a simple report and kicking off a Data Pump export job.
Brett Meyer gave an overview of Hibernate ORM and JPA. He discussed that ORM maps Java objects to relational databases for persistence beyond the life of a program. JPA is the Java standard for ORM that provides portability, while Hibernate is a full-featured JPA implementation with additional native features. Hibernate allows focusing on business logic rather than data access details and provides performance, concurrency, and extensibility benefits over traditional JDBC usage.
Object-relational mapping (ORM) tools address the impedance mismatch between object-oriented programming and relational databases. Hibernate is a popular open-source Java ORM that uses object mapping files to define object-database relationships. It provides an object persistence mechanism and query language to retrieve and manipulate objects while insulating developers from vendor-specific SQL. Hibernate supports inheritance, caching, and concurrency control to improve performance but can introduce complexity.
The document discusses using MongoDB as the data store for the "Potential Match Generator" component of an online dating service called eHarmony. Some key benefits of MongoDB cited include its scalability, built-in sharding and replication, and flexible schema. The document provides some tips for using MongoDB effectively, such as using real queries and data during testing, minimizing property names, using appropriate indexes, and considering how to shard data.
Java Persistence API (JPA) - A Brief OverviewCraig Dickson
This is a lightning presentation given by Scott Rabon, a member of my development team. He presents a high level overview of the JPA based on his first exposure to it.
APEX Office Hours Interactive Grid Deep DiveJohnSnyders
This document provides a summary of an "Interactive Grid Deep Dive" presentation. It begins with an introduction of the presenter and an overview of the agenda. The presentation then discusses how the Interactive Grid can be used out of the box with declarative functionality and no code needed. It also demonstrates the Interactive Grid. The presentation describes how the Interactive Grid can be customized through declarative attributes as well as advanced JavaScript. It provides resources for further customizing the Interactive Grid. Finally, it discusses the architecture of the Interactive Grid including its modular design, separate model and view layers, and data exchange between the client and server.
RESTful design rules promote best practices for building scalable APIs. The rules encourage contract-first design, establish standards, and reduce support costs. Key rules include using a uniform interface with URIs to identify resources, caching to improve performance, and making services stateless. Resources should have self-descriptive representations and link to related resources to allow navigation without hard-coded URIs. Common HTTP methods like GET, POST, PUT and DELETE should map to standard CRUD operations, and status codes indicate request outcomes.
Design patterns are not only cool but represent the collective wisdom of many developers. Since the publication of Design Patterns: Elements of Reusable Object-Oriented Software by GoF many new concepts have extended the coverage of these design patterns, and now Java EE provide out of the box implementations of many of the most well known patterns. This talk will show how, by taking advantage of Java EE features such as CDI and the smart use of annotations, traditional design patterns can be implemented in a much cleaner and quicker way. Among the design patterns discuss there will be Singleton, Façade, Observer, Factory, Dependency Injection, Decorator and more.
An overview of ORDS for building RESTful Web Services and your Oracle Database with BEER examples!
Thanks and credit to the POUG organization for making this possible.
Automating SQL Server Database Creation for SharePointTalbott Crowell
This document discusses automating SQL Server database creation for SharePoint. It covers planning for document storage, including structuring data across site collections and content databases. A sample solution is presented that partitions data by year into separate content databases to optimize manageability. Other considerations for large-scale document storage with SharePoint like search indexing, backups, and future tools are also covered.
This document provides an overview of using Fluxible to create isomorphic JavaScript applications. It defines what an isomorphic app is, discusses React and Flux, and then introduces Fluxible. Key points about Fluxible include that it is an implementation of Flux, has a vibrant community, and includes tools like provideContext and connectToStores to help build React components. The document demonstrates building a simple Fluxible app with files for the server, client, app, components, actions and stores. It also discusses routing and exporting/importing state between server and client.
Version 6 of Adobe Experience Manager (AEM 6) is a major release that introduces significant innovations. Sightly is a new template system to be used in place of (or together with) JSP. Along with Sling Models, SIghtly strongly improves the separation between the logic and presentation. The development effort is reduced because a Sightly template is an HTML 5 document, easily maintainable even by front-end developers.
The presentation provides an overview of the basic features of Sightly and introduces the fundamentals of the new development model with the support of tools released release together with AEM 6.
A Practical Guide To Hypermedia APIs - Philly.rbSmartLogic
This document provides a practical guide to building hypermedia APIs. It introduces hypermedia APIs and the Hypertext Application Language (HAL) format. It discusses building representations of resources with links using serializers, and building clients that can traverse links and perform actions by loading and updating data through services. Helpful resources and gems for building APIs are also listed.
Lukas Vlcek built a search app for public mailing lists in 15 minutes using ElasticSearch. The app allows users to search mailing lists, filter results by facets like date and author, and view document previews with highlighted search terms. Key challenges included parsing email structure and content, normalizing complex email subjects, identifying conversation threads, and determining how to handle quoted content and author disambiguation. The search application and a monitoring tool for ElasticSearch called BigDesk will be made available on GitHub.
External search platforms can be leveraged to improve AEM search capabilities by allowing the search infrastructure to scale independently, provide additional features, and index multiple data sources. The EASE framework simplifies integrating AEM content with external search platforms like Apache Solr by generating a structured index on a push model triggered by AEM replication. Sample implementations demonstrate full-text, faceted, geospatial, and personalized search capabilities using an external index. Real-world considerations include handling aggregated content and permission-sensitive search.
The document discusses how to design flexible and discoverable REST APIs using the Hypertext Application Language (HAL) format and web API design principles. It outlines how HAL embeds links and relationships between resources to allow client-side navigation without pre-defined endpoints. The document also discusses best practices for REST API design, such as embedding related resources to optimize caching and network requests. Finally, it covers challenges with HAL implementation, such as naming relationships and collection representation, and alternatives like Siren and AtomPub.
This document discusses using HATEOAS (Hypermedia as the Engine of Application State) with the ExtJS JavaScript framework. It defines HATEOAS and common media types like HAL and Siren. HATEOAS reduces client-server coupling by having the client discover available state transitions from resource representations instead of having hardcoded URLs. The document explains how to extend ExtJS models and proxies to consume HAL responses and handle state transitions based on the link relations in HAL documents. Live coding examples demonstrate implementing this with the Sencha HAL package.
The web has changed! Users spend more time on mobile than on desktops and expect to have an amazing user experience on both. APIs are the heart of the new web as the central point of access data, encapsulating logic and providing the same data and same features for desktops and mobiles. In this workshop, Antonio will show you how to create complex APIs in an easy and quick way using API Platform built on Symfony.
This document provides an introduction to RESTful web services. It defines REST and its architectural principles including addressing resources with URIs, using a uniform and constrained interface, focusing on representations of resources, stateless communication, and hypermedia as the engine of application state. It discusses implementing RESTful services with Java using JAX-RS annotations and frameworks like Jersey and CXF. It also covers testing REST APIs, content negotiation, error handling, versioning, and security considerations.
Fhir dev days 2017 fhir profiling - overview and introduction v07DevDays
This document provides an overview of FHIR profiling and introduces some key concepts:
1. Profiling is needed to adapt FHIR resources to specific contexts and local requirements. Profiles constrain elements and extensions to describe how FHIR is used.
2. Conformance resources like StructureDefinition, OperationDefinition, and CapabilityStatement define profiles, operations, and server capabilities. Profiles are published to repositories and drive validation, code generation, and more.
3. Extensions allow custom elements to be introduced where needed. Extensions and how they can be used in profiles and resources are described.
4. Implementation guides combine related artifacts like profiles and page content into conformance packages for sharing implementations.
This document discusses Representational State Transfer (REST) architectural styles and principles for designing web services. It describes how REST uses common HTTP verbs like GET, POST, PUT, and DELETE to transmit data in requests and standardized methods for returning successful responses and error messages. Key REST concepts covered include using URLs to identify resources and collections, supporting multiple representation formats like JSON or XML, and enabling caching for GET requests to improve performance.
Building Self Documenting HTTP APIs with CQRSDerek Comartin
Does your HTTP API expose your database structure?
HTTP endpoints that represent your database entities couples your consuming clients to the internals of your application. Making it much harder to change your API.
Go beyond serializing a database row into json by leveraging CQRS.
Start designing an HTTP API like a regular HTML website. Bringing the concepts of HTML links and forms to your API allows your clients to consume it with ease.
Attendees will learn how to design an HTTP API by leveraging CQRS and hypermedia to decouple their core application from their HTTP API.
This document provides a practical guide to building hypermedia APIs. It discusses hypermedia basics like resources not equating to models and using HTTP methods and status codes. It presents a sample HAL response and describes building server-side controllers, models, and serializers. On the client-side, it discusses using Faraday and integrating with Rails. It lists problems like lack of ids and speed issues. Resources provided include guides on creating hypermedia clients and abusing ActiveModel::Serializers for HAL representation. Useful testing gems are also listed.
This document discusses integrating AngularJS, ASP.NET Web API, SignalR, and Entity Framework. It begins with an overview of object-relational mapping and Entity Framework. It then demonstrates how to develop an ASP.NET Web API with Entity Framework using Code First migrations to initialize and seed a database. Different data loading strategies like eager, lazy, and explicit loading are explained. Issues with navigation properties and circular references are addressed. The document also covers creating DTOs, mapping entities to DTOs with LINQ and AutoMapper, and integrating everything into a real-time dashboard using SignalR with Entity Framework backend.
At the Devoxx 2015 conference in Belgium, Guillaume Laforge, Product Ninja & Advocate at Restlet, presented about the never-ending REST API design debate, covering many topics like HTTP status codes, Hypermedia APIs, pagination/searching/filtering, and more.
The document discusses REST (REpresentational State Transfer), the architectural style for distributed hypermedia systems. It covers the six constraints of REST - uniform interface, stateless, cacheable, client-server, layered system, and code-on-demand. Other topics include uniform interfaces using resources and HTTP verbs, hypermedia and HATEOAS, versioning, media types, HTTP response codes, and best practices for building RESTful APIs. Roy Fielding's dissertation on REST architecture is cited as the origin of the REST concepts.
Resting on your laurels will get you pownedDinis Cruz
Presentation delivered at BlackHat 2013. See these posts for more details on the Demos: http://blog.diniscruz.com/2013/08/using-xmldecoder-to-execute-server-side.html ., http://blog.diniscruz.com/2013/08/neo4j-csrf-payload-to-start-processes.html
The document provides an overview of Apache Atlas, a metadata management and governance solution for Hadoop data lakes. It discusses Atlas' architecture, which uses a graph database to store types and instances. Atlas also includes search capabilities and integration with Hadoop components like Hive to capture lineage metadata. The remainder of the document outlines Atlas' roadmap, with goals of adding additional component connectors, a governance certification program, and generally moving towards a production release.
Kasabi, an online data market based on linked data principles, offers data publishers an easy way to publish, link and monetise data, while giving developers of data-centric applications access to this data in different formats and through a number of different interfaces.
Harnessing Free Content with Web Service APIsALATechSource
This document provides an overview of APIs and their use for libraries. It discusses how APIs allow different systems and services to communicate with each other on the web. The document outlines several real-world examples of how libraries can use APIs, including to retrieve tweets, videos, photos and reviews to enhance their catalogs and services. It also lists many specific APIs that libraries could potentially utilize and provides resources for API development.
This document discusses scaling applications and services. It recommends taking a vertical approach by breaking monolithic applications into microservices that communicate through APIs. The Swagger framework is presented as a way to document and test APIs. Swagger can generate client libraries and helps services scale by enabling asynchronous communication through websockets. Taking this vertical, microservices approach with Swagger improves scalability by allowing dedicated teams to own individual services and improves performance through asynchronous communication protocols.
This document discusses RESTful web services using Swagger. It defines REST architectural concepts like resources, representations, and uniform interfaces. It explains how Swagger can be used to specify REST APIs with formats like RAML and how code can be generated from Swagger specifications. REST constraints like client-server, statelessness and layered systems are covered. The relationship between URLs and HTTP methods for collections and elements is outlined.
Solr + Hadoop: Interactive Search for Hadoopgregchanan
This document discusses Cloudera Search, which integrates Apache Solr with Cloudera's distribution of Apache Hadoop (CDH) to provide interactive search capabilities. It describes the architecture of Cloudera Search, including components like Solr, SolrCloud, and Morphlines for extraction and transformation. Methods for indexing data in real-time using Flume or batch using MapReduce are presented. The document also covers querying, security features like Kerberos authentication and collection-level authorization using Sentry, and concludes by describing how to obtain Cloudera Search.
The document provides an overview of RAML (RESTful API Modeling Language) including its key components and how to define them. It explains that RAML aims to help manage the full API lifecycle from design to sharing. The main sections covered include the root, resources, methods, URI parameters, query parameters, and responses. It provides examples of how to define each of these components in the RAML specification.
The document provides guidelines for building APIs that comply with the JSON API specification. It discusses best practices for document structure, fetching resources, CRUD operations, error handling, and caching. Some key recommendations include having a flat resource structure, paginating every endpoint, returning the full resource on POST creates, using custom actions for non-idempotent operations, and separating application concerns into different classes.
Making ember-wormhole work with FastbootCory Forsyth
The document discusses how the ember-wormhole component works and the issues that arise when using it with Fastboot, Ember's server-side rendering technology. It explains that ember-wormhole moves DOM nodes between elements on page load, but Fastboot lacks the necessary component hooks. The solution was to move the node relocation logic from didInsertElement to willRender and manually handle node positioning without this.element. A demo is provided.
This document discusses common misconceptions about OAuth 2.0. It clarifies that while OAuth 2.0 is an authorization framework, it does not directly provide authentication. It also explains differences between access tokens and refresh tokens, and notes that bearer tokens issued to different clients are not equal. Additionally, it clarifies the differences between authorization code flow and implicit grant flow.
Ember Authentication and Authorization with ToriiCory Forsyth
This document discusses authentication and authorization in Ember applications using the Torii library. It begins with an overview of authentication and authorization concepts. It then introduces Torii as a library that simplifies obtaining OAuth credentials from third-party providers and managing authentication state. The document provides examples of using Torii to handle the OAuth implicit grant flow, authorization code flow, and social login flows. It also discusses Torii's use of providers, adapters, and sessions to manage authentication.
Explaining ES6: JavaScript History and What is to ComeCory Forsyth
An overview of some of the history of JavaScript, how it became ECMAScript (and what Ecma is), as well as highlights of the new features and syntax in ES6 aka ES2015.
Originally presented to the New York Public Library on June 4 2015.
Ember testing internals with ember cliCory Forsyth
The document discusses Ember testing internals with Ember-CLI. It describes the Ember-CLI test harness which generates tests/index.html and includes vendor JS, test support code, and test modules. It explains how Ember-CLI generates different types of tests and the boilerplate used. It also details how Ember's moduleFor and test functions work to set up isolated containers and handle asynchronous behavior in tests.
Stackup New Languages Talk: Ember is for EverybodyCory Forsyth
This document discusses Ember.js and its growing popularity and maturity as a front-end framework. It provides an overview of Ember's core capabilities like data binding, computed properties, routes, and testing support. It also introduces related tools like Ember CLI and Ember Inspector that improve the development experience. Code examples demonstrate key Ember features in action. The document argues that Ember is now ready for mainstream usage and provides a robust environment for building large single-page applications.
This document discusses single page applications (SPAs) and the Ember framework for building SPAs. It provides an overview of why developers build SPAs, describes key features of Ember like data binding and components, and demonstrates how Ember enables predictable and productive development. The presentation concludes by sharing examples of companies using Ember and encouraging the audience to try it.
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0Cory Forsyth
This document summarizes the evolution of HTTP from versions 0.9 to 2. It discusses key aspects of HTTP/1.0 and HTTP/1.1 such as persistent connections and pipelining. It also covers how these features were abused to optimize page load performance. Finally, it provides an overview of HTTP/2 and how it differs from previous versions through the use of binary format, header compression, and multiplexing requests over a single TCP connection.
Torii is an authentication service library for use with Ember.js for managing client-side login flows, specifically with third-party OAuth.
http://githbu.com/vestorly/torii
Securing BGP: Operational Strategies and Best Practices for Network Defenders...APNIC
Md. Zobair Khan,
Network Analyst and Technical Trainer at APNIC, presented 'Securing BGP: Operational Strategies and Best Practices for Network Defenders' at the Phoenix Summit held in Dhaka, Bangladesh from 23 to 24 May 2024.
HijackLoader Evolution: Interactive Process HollowingDonato Onofri
CrowdStrike researchers have identified a HijackLoader (aka IDAT Loader) sample that employs sophisticated evasion techniques to enhance the complexity of the threat. HijackLoader, an increasingly popular tool among adversaries for deploying additional payloads and tooling, continues to evolve as its developers experiment and enhance its capabilities.
In their analysis of a recent HijackLoader sample, CrowdStrike researchers discovered new techniques designed to increase the defense evasion capabilities of the loader. The malware developer used a standard process hollowing technique coupled with an additional trigger that was activated by the parent process writing to a pipe. This new approach, called "Interactive Process Hollowing", has the potential to make defense evasion stealthier.
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...APNIC
Adli Wahid, Senior Internet Security Specialist at APNIC, delivered a presentation titled 'Honeypots Unveiled: Proactive Defense Tactics for Cyber Security' at the Phoenix Summit held in Dhaka, Bangladesh from 23 to 24 May 2024.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
5. What is a Hypermedia API?
• Verb-oriented
• HATEOAS
• Client “drives” state changes taking actions
(aka following links) that the API provides
• JSON API is also a Hypermedia API
6. What is HAL?
• Optimized for developer on-boarding
• Built for machines, but human-friendly
15. HAL Example
{
count: 2,
_embedded: {
users: [{
id: 1,
name: 'Cory'
}, {
id: 2,
name: 'Bob'
}]
}
}
Users collection
Info about the resource
collection. (Metadata)
16. HAL Example
{
id: 1,
name: 'Cory',
_links: {
self: { href: '/' },
pets: { href: '/users/1/pets'}
}
}
Single User Resource _links
17. HAL Example
{
id: 1,
name: 'Cory',
_links: {
self: { href: '/' },
pets: { href: '/users/1/pets'}
}
}
Single User Resource _links
Follow this link to get my pets
18. The HAL Model
Resources and Links
• Resources have
• links to URIs
• embedded
resources
• state (aka data)
• Links have
• Target URI
• Relation
name (“self”,
“pets”, etc)
• (Some other
properties)
20. HAL vs JSON API
• HAL
• Serialization
spec (only)
• Minimal
• Arbitrary
nesting
• “Discoverable”
• JSON API
• Serialization
and upload
• Comprehensive
• “Side-loading” /
Flat structure
21. HAL and JSON API
• HAL
• Has links concept
• Is a Hypermedia API
• JSON API
• Has links concept
• Is a Hypermedia API
22. HAL vs Ember Data
• Ember Data Adapter
• builds URLs
• uses serializer to
generate request
payloads
• uses serializer to map
response payloads to
model instances
• Ember Data Serializer
• Normalizes payload into
objects that can be
`push`-ed to the store
• Extracts single/array,
`push`-ing results into
store
• Extracts metadata
23. HAL vs Ember Data
• ED’s store has its own expected JSON format
• ED will use links if they are in its expected format
• ED has ‘meta’ concept, HAL does not
24. ember-data-hal-9000
• No adapter (ironic)
• Serializer restructures payloads from
HAL style to ember-data’s expected
format
• Un-nests _embedded values into side
loads
• HAL has no formal metadata concept
• hal-9000 uses a heuristic to derive
metadata
26. ember-data-hal-9000
• Restructure and un-nest _embeddeds
• override `normalize` to rewrite “_links” ->
“links”
• override `extractSingle`, `extractArray` to
un-nest _embedded values, replacing with
ids and sideloading
27. ember-data-hal-9000
{
user: {
id: 1,
name: 'Cory',
pet: 2
},
pets: [{
id: 2,
name: 'Fido'
}]
}
{
id: 1,
name: 'Cory',
_embedded: {
pet: {
id: 2,
name: 'Fido'
}
}
}
HAL Format Store Format
28. ember-data-hal-9000
• HAL has no formal concept of metadata,
• but it has collection resource properties
• hal-9000 presumes these are metadata
Metadata
33. Cory Forsyth
@bantic
• Slides: http://bit.ly/ember-data-hal-slides
• ember-data-hal-9000 Ember Data Adapter
• Hypermedia APIS JavasScript Jabber
• HAL Discuss Google Group
• Designing Hypermedia APIs (Youtube)
• HAL Spec @ Stateless
• HAL Primer
• Interview with Mike Kelly
• HAL Explorer
• HAL Spec @ IETF
• aptible.com
Links
Photo credits
http://stateless.co/hal_specification.html