Chris Rockwell, University of Michigan
Based on lessons learned, a presentation of some nifty techniques for expediting and automating content migration leveraging Ruby, Cucumber, Selenium, Capybara, CURB, and the SlingPostServlet
Do you need an external search platform for Adobe Experience Manager?therealgaston
Experience Manager provides some basic search capabilities out of the box. In this talk, we'll explore an external search platform for implementing an Experience Manager powered, search-driven site. As an example, we will use Apache Solr as a reference implementation and describe best practices for indexing content, exposing non-Experience Manager content via search, delivering search-driven experiences, and deploying the solution in a production setting.
Consuming External Content and Enriching Content with Apache Cameltherealgaston
This document discusses using Apache Camel as a document processing platform to enrich content from Adobe Experience Manager (AEM) before indexing it into a search engine like Solr. It presents the typical direct integration of AEM and search that has limitations, and proposes using Camel to offload processing and make the integration more fault tolerant. Key aspects covered include using Camel's enterprise integration patterns to extract content from AEM, transform and enrich it through multiple processing stages, and submit it to Solr. The presentation includes examples of how to model content as messages in Camel and build the integration using its Java DSL.
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 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.
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
<p>You've built a great site and spent a countless hours creating compelling content, but important questions remain. Can your visitors quickly find what they need on your site? Is your current search strategy helping visitors find information, or is it slowing them down?</p>
<p>Join Robert Douglass, Senior Drupal Advisor at Acquia and maintainer of the Apache Solr Search integration module, and Bryan House, senior director of marketing, for a one-hour webinar presentation. Acquia Search is a cloud-based service within the Acquia Network that delivers powerful Apache Solr search capabilities to Drupal 6 websites as a plug-and-play option. Using Acquia Search, your visitors will find information faster and spend more time on your site, resulting in higher conversions on your site.</p>
<p>Key takeaways will include:</p>
<ul>
<li>Overview of the latest Acquia Search features - including multisite search, attachment search, and more</li>
<li>Learn how easy it is to deploy and configure Acquia Search on any Drupal 6 site</li>
<li>An introduction to the pricing options available for Acquia Search, starting at under $30 / month</li>
</ul>
Pragmatic REST: recent trends in API designMarsh Gardiner
As presented by @mpnally and @earth2marsh at I Love APIs 2015. Slides covered API design trends, with particular attention paid to hypermedia and versioning. Note the distinction between service-oriented and data-oriented approaches on slide #5.
Introduces "Slug" a web crawler (or "Scutter") designed for harvesting semantic web content. Implemented in Java using the Jena API, Slug provides a configurable, modular framework that allows a great degree of flexibility in configuring the retrieval, processing and storage of harvested content. The framework provides an RDF vocabulary for describing crawler configurations and collects metadata concerning crawling activity. Crawler metadata allows for reporting and analysis of crawling progress, as well as more efficient retrieval through the storage of HTTP caching data.
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Lucidworks
This document discusses challenges in providing search capabilities for the Apache Solr Reference Guide content. It explores indexing the reference guide content stored in HTML format using the bin/post tool and Apache Solr's ExtractingRequestHandler. It also considers using Lucidworks' Site Search hosted service as an alternative. While both options face challenges due to the source content structure, Site Search provides a quicker path to basic search functionality for the reference guide.
2018 09-03 aOS Aachen - SharePoint demystified - Thomas VochtenaOS Community
This document summarizes a presentation about hybrid SharePoint configurations. It discusses:
1) The business drivers for hybrid configurations like preparing for the cloud, taking advantage of cloud offerings, and keeping some data on-premises.
2) The key hybrid capabilities like OneDrive redirection, profile redirection, hybrid sites, the app launcher, taxonomy and content type sync, and hybrid search.
3) The prerequisites for hybrid like minimum versions of SharePoint, required services, and additional prerequisites for search like signing assistants and PowerShell modules.
This document describes a project to build a web crawler and search engine to provide student information to students. It will scrape data like exam results, college details, and fees from other websites and provide the information to students in a searchable online interface. The system will include a desktop application for scraping data and storing it in a SQL Server database. It will also have a web application for students to search for their results or compare results with other students. The project aims to make student exam data and materials easily available from a single portal.
This document discusses best practices for creating RESTful APIs. It covers three main topics: representing resources with URLs and HTTP verbs, using the HTTP protocol machinery like status codes and caching, and linking resources together through hypermedia. URLs should represent resources, verbs should represent actions, and standard HTTP features like status codes and conditional requests should be used. Well-designed REST APIs represent application state through linked resources and relationships rather than embedding actions in URLs.
Take Cloud Hybrid Search to the Next LevelJeff Fried
The document discusses hybrid search between on-premises SharePoint and SharePoint Online. It provides an overview of different approaches to hybrid search including split workload, split user, and search providing a unified view. It then discusses three approaches to hybrid search including classic federated search, crawling Office 365 content, and using the cloud hybrid search service application. The document also includes several case studies on implementing hybrid search and considerations for a hybrid search solution.
This document discusses 12 tools that bring SQL functionality to Apache Hadoop in various ways. It describes open source tools like Apache Hive, Apache Sqoop, BigSQL, Lingual, Apache Phoenix, Impala, and Presto. It also covers commercial tools like Hadapt, Jethro Data, HAWQ, and Xplenty that provide SQL capabilities on Hadoop. The tools allow querying and analyzing large datasets stored on Hadoop using SQL or SQL-like languages in either batch or interactive modes.
Understanding and Applying Cloud Hybrid SearchJeff Fried
1) The document discusses cloud hybrid search, which allows searching across on-premises and online content in Office 365 with a single search experience.
2) It highlights benefits like simplified administration and lower costs compared to traditional federated search. However, there are also limitations with the default configuration regarding features like security trimming.
3) The document provides guidance on implementing cloud hybrid search and considerations for different environments, including performance, customizations, and regulatory requirements.
This document summarizes key learnings from a presentation about SharePoint 2013 and Enterprise Search. It discusses how to run a successful search project through planning, development, testing and deployment. It also covers infrastructure needs and capacity testing findings. Additionally, it provides examples of how to customize the user experience through display templates and Front search. Methods for crawling thousands of file shares and enriching indexed content are presented. The document concludes with discussions on relevancy, managing property weighting, changing ranking models, and tuning search results.
This session is about building client-side web parts, list-based and page-based applications on SharePoint. I'll show the workbench, the web part and a list based application, React and how to apply simple CSS styles for typography, color, icons, animations, and responsive grid layouts with Office UI Fabric.
Understanding and Applying Cloud Hybrid SearchJeff Fried
This document provides an overview of cloud hybrid search presented by Jeff Fried, CTO of BA Insight. Some key points:
- Cloud hybrid search allows organizations to index content from both on-premises and Office 365 sources in a single search index hosted in Office 365.
- It provides a unified search experience across all content sources while reducing infrastructure costs compared to an on-premises only solution.
- While the basic functionality is available out of the box, there are limitations in areas like content enrichment, security trimming, and data sovereignty that third party solutions can help address.
Solr is an open source enterprise search platform that provides powerful full-text search, hit highlighting, faceted search, database integration, and document handling capabilities. It uses Apache Lucene under the hood for indexing and search, and provides REST-like APIs, a web admin interface, and SolrJ for indexing and querying. Solr allows adding, deleting, and updating documents in its index via HTTP requests and can index documents in various formats including XML, CSV, and rich documents using Apache Tika. It provides distributed search capabilities and can be configured for high availability and scalability.
This document discusses different approaches to running SQL queries over Hadoop data. It identifies 6 types of SQL on Hadoop technologies: 1) MapReduce-based batch queries, 2) connecting external databases to HDFS, 3) parallel query engines that pull data from HDFS, 4) using HDFS as storage for MPP databases, 5) running local databases on HDFS nodes, and 6) distributed native SQL engines on HDFS. The document advises that when choosing a SQL on Hadoop technology, considerations should include ANSI SQL compliance, distributed data-local processing, support for file formats and compression, optimized querying, scalability, and low latency/cost.
The document discusses web crawlers, which are programs that download web pages to help search engines index websites. It explains that crawlers use strategies like breadth-first search and depth-first search to systematically crawl the web. The architecture of crawlers includes components like the URL frontier, DNS lookup, and parsing pages to extract links. Crawling policies determine which pages to download and when to revisit pages. Distributed crawling improves efficiency by using multiple coordinated crawlers.
SmartCrawler is a two-stage crawler for efficiently harvesting deep-web interfaces. In the first stage, SmartCrawler performs site-based searching to identify relevant websites using search engines and site ranking, avoiding visiting many irrelevant pages. In the second stage, SmartCrawler prioritizes links within websites using adaptive link ranking to efficiently find searchable forms. Experimental results showed SmartCrawler achieved higher harvest rates of deep-web interfaces than other crawlers by using its two-stage approach and adaptive learning techniques.
This document discusses the challenges of customized SharePoint applications in production environments. It covers how performance problems can arise from requesting too much data, accessing data inefficiently, inefficient resource usage, inefficient data rendering, lack of testing with real-world data, and lack of load testing. The presentation includes demos of analyzing and optimizing list usage, web part data access, and memory monitoring to address these challenges.
Apache Solr serves search requests at the enterprises and the largest companies around the world. Built on top of the top-notch Apache Lucene library, Solr makes indexing and searching integration into your applications straightforward. Solr provides faceted navigation, spell checking, highlighting, clustering, grouping, and other search features. Solr also scales query volume with replication and collection size with distributed capabilities. Solr can index rich documents such as PDF, Word, HTML, and other file types.
Come learn how you can get your content into Solr and integrate it into your applications!
Test driving Azure Search and DocumentDBAndrew Siemer
This document provides an overview and comparison of DocumentDB and Azure Search. It discusses what NoSQL and search are, when each service is better to use, how to set up and structure data in each, and examples of querying. DocumentDB is described as a NoSQL database that uses a flexible JSON document structure and scales easily. Azure Search is an elastic search service that indexes and scores search results. The document provides examples of setting up databases and indexes, adding and querying data, and considerations for different field types and scoring profiles. It also discusses where each service may fit in different parts of an application architecture.
How to build your own Delve: combining machine learning, big data and SharePointJoris Poelmans
You are experiencing the benefits of machine learning everyday through product recommendations on Amazon & Bol.com, credit card fraud prevention, etc… So how can we leverage machine learning together with SharePoint and Yammer. We will first look into the fundamentals of machine learning and big data solutions and next we will explore how we can combine tools such as Windows Azure HDInsight, R, Azure Machine Learning to extend and support collaboration and content management scenarios within your organization.
With the commercialization of the web, web development has become one of the blooming industries. Learning web development enables you to create attractive websites using HTML, CSS, JQuery and JavaScript. Web development includes developing simple and complex web-based applications, electronic businesses and social networking sites. Being a web developer you can deliver applications as web services which is only available in desktop applications.
This session describes the architecture and implementation of an embeddable, extensible enterprise content management core for Java EE and simpler platforms. The presentation starts by describing the general architectural concepts used as building blocks:
• A schema and document model, reusing XML schemas and making good use of XML namespaces, where document types are built with several facets
• A repository model, using hierarchy and versioning, with the Content Repository API for Java (JSR 170) being one of the possible back ends
• A query model, based on the Java Persistence query language (JSR 220) and reusing the path-based concepts from Java Content Repositories (JCR)
• A fine-grained security model, compatible with WebDAV concepts and designed to provide flexible security policies
• An event model using synchronous and asynchronous events, allowing bridging through Java Message Service (JMS) or other systems to other event-enabled frameworks
• A directory model, representing access to external data sources using the same concepts as for documents but taking advantage of the specificities of the data back ends
Suitable abstraction layers are put in place to provide the required level of flexibility. One of the main architectural tasks is to find commonalities in all the systems used (or whose use is planned in the future) so framework users need to learn and use a minimal number of concepts. The result is a set of concepts that are fundamental to enterprise document management and are usable through direct Java technology-based APIs, Java EE APIs, or SOA. The presentation shows, for each of the main components, which challenges have been met and overcome when building a framework in which all components are designed to be improved and replaced by different implementations without sacrificing backward compatibility with existing ones.
The described implementation, Nuxeo Core, can be embedded in a basic Java technology-based framework based on OSGi (such as Eclipse) or in one based on Java EE, according to the needs of the application using it. This means that the core has to function without relying on Java EE services but also has to take advantage of them when they are available (providing clustering, messaging, caching, remoting, and advanced deployment).
Introduces "Slug" a web crawler (or "Scutter") designed for harvesting semantic web content. Implemented in Java using the Jena API, Slug provides a configurable, modular framework that allows a great degree of flexibility in configuring the retrieval, processing and storage of harvested content. The framework provides an RDF vocabulary for describing crawler configurations and collects metadata concerning crawling activity. Crawler metadata allows for reporting and analysis of crawling progress, as well as more efficient retrieval through the storage of HTTP caching data.
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Lucidworks
This document discusses challenges in providing search capabilities for the Apache Solr Reference Guide content. It explores indexing the reference guide content stored in HTML format using the bin/post tool and Apache Solr's ExtractingRequestHandler. It also considers using Lucidworks' Site Search hosted service as an alternative. While both options face challenges due to the source content structure, Site Search provides a quicker path to basic search functionality for the reference guide.
2018 09-03 aOS Aachen - SharePoint demystified - Thomas VochtenaOS Community
This document summarizes a presentation about hybrid SharePoint configurations. It discusses:
1) The business drivers for hybrid configurations like preparing for the cloud, taking advantage of cloud offerings, and keeping some data on-premises.
2) The key hybrid capabilities like OneDrive redirection, profile redirection, hybrid sites, the app launcher, taxonomy and content type sync, and hybrid search.
3) The prerequisites for hybrid like minimum versions of SharePoint, required services, and additional prerequisites for search like signing assistants and PowerShell modules.
This document describes a project to build a web crawler and search engine to provide student information to students. It will scrape data like exam results, college details, and fees from other websites and provide the information to students in a searchable online interface. The system will include a desktop application for scraping data and storing it in a SQL Server database. It will also have a web application for students to search for their results or compare results with other students. The project aims to make student exam data and materials easily available from a single portal.
This document discusses best practices for creating RESTful APIs. It covers three main topics: representing resources with URLs and HTTP verbs, using the HTTP protocol machinery like status codes and caching, and linking resources together through hypermedia. URLs should represent resources, verbs should represent actions, and standard HTTP features like status codes and conditional requests should be used. Well-designed REST APIs represent application state through linked resources and relationships rather than embedding actions in URLs.
Take Cloud Hybrid Search to the Next LevelJeff Fried
The document discusses hybrid search between on-premises SharePoint and SharePoint Online. It provides an overview of different approaches to hybrid search including split workload, split user, and search providing a unified view. It then discusses three approaches to hybrid search including classic federated search, crawling Office 365 content, and using the cloud hybrid search service application. The document also includes several case studies on implementing hybrid search and considerations for a hybrid search solution.
This document discusses 12 tools that bring SQL functionality to Apache Hadoop in various ways. It describes open source tools like Apache Hive, Apache Sqoop, BigSQL, Lingual, Apache Phoenix, Impala, and Presto. It also covers commercial tools like Hadapt, Jethro Data, HAWQ, and Xplenty that provide SQL capabilities on Hadoop. The tools allow querying and analyzing large datasets stored on Hadoop using SQL or SQL-like languages in either batch or interactive modes.
Understanding and Applying Cloud Hybrid SearchJeff Fried
1) The document discusses cloud hybrid search, which allows searching across on-premises and online content in Office 365 with a single search experience.
2) It highlights benefits like simplified administration and lower costs compared to traditional federated search. However, there are also limitations with the default configuration regarding features like security trimming.
3) The document provides guidance on implementing cloud hybrid search and considerations for different environments, including performance, customizations, and regulatory requirements.
This document summarizes key learnings from a presentation about SharePoint 2013 and Enterprise Search. It discusses how to run a successful search project through planning, development, testing and deployment. It also covers infrastructure needs and capacity testing findings. Additionally, it provides examples of how to customize the user experience through display templates and Front search. Methods for crawling thousands of file shares and enriching indexed content are presented. The document concludes with discussions on relevancy, managing property weighting, changing ranking models, and tuning search results.
This session is about building client-side web parts, list-based and page-based applications on SharePoint. I'll show the workbench, the web part and a list based application, React and how to apply simple CSS styles for typography, color, icons, animations, and responsive grid layouts with Office UI Fabric.
Understanding and Applying Cloud Hybrid SearchJeff Fried
This document provides an overview of cloud hybrid search presented by Jeff Fried, CTO of BA Insight. Some key points:
- Cloud hybrid search allows organizations to index content from both on-premises and Office 365 sources in a single search index hosted in Office 365.
- It provides a unified search experience across all content sources while reducing infrastructure costs compared to an on-premises only solution.
- While the basic functionality is available out of the box, there are limitations in areas like content enrichment, security trimming, and data sovereignty that third party solutions can help address.
Solr is an open source enterprise search platform that provides powerful full-text search, hit highlighting, faceted search, database integration, and document handling capabilities. It uses Apache Lucene under the hood for indexing and search, and provides REST-like APIs, a web admin interface, and SolrJ for indexing and querying. Solr allows adding, deleting, and updating documents in its index via HTTP requests and can index documents in various formats including XML, CSV, and rich documents using Apache Tika. It provides distributed search capabilities and can be configured for high availability and scalability.
This document discusses different approaches to running SQL queries over Hadoop data. It identifies 6 types of SQL on Hadoop technologies: 1) MapReduce-based batch queries, 2) connecting external databases to HDFS, 3) parallel query engines that pull data from HDFS, 4) using HDFS as storage for MPP databases, 5) running local databases on HDFS nodes, and 6) distributed native SQL engines on HDFS. The document advises that when choosing a SQL on Hadoop technology, considerations should include ANSI SQL compliance, distributed data-local processing, support for file formats and compression, optimized querying, scalability, and low latency/cost.
The document discusses web crawlers, which are programs that download web pages to help search engines index websites. It explains that crawlers use strategies like breadth-first search and depth-first search to systematically crawl the web. The architecture of crawlers includes components like the URL frontier, DNS lookup, and parsing pages to extract links. Crawling policies determine which pages to download and when to revisit pages. Distributed crawling improves efficiency by using multiple coordinated crawlers.
SmartCrawler is a two-stage crawler for efficiently harvesting deep-web interfaces. In the first stage, SmartCrawler performs site-based searching to identify relevant websites using search engines and site ranking, avoiding visiting many irrelevant pages. In the second stage, SmartCrawler prioritizes links within websites using adaptive link ranking to efficiently find searchable forms. Experimental results showed SmartCrawler achieved higher harvest rates of deep-web interfaces than other crawlers by using its two-stage approach and adaptive learning techniques.
This document discusses the challenges of customized SharePoint applications in production environments. It covers how performance problems can arise from requesting too much data, accessing data inefficiently, inefficient resource usage, inefficient data rendering, lack of testing with real-world data, and lack of load testing. The presentation includes demos of analyzing and optimizing list usage, web part data access, and memory monitoring to address these challenges.
Apache Solr serves search requests at the enterprises and the largest companies around the world. Built on top of the top-notch Apache Lucene library, Solr makes indexing and searching integration into your applications straightforward. Solr provides faceted navigation, spell checking, highlighting, clustering, grouping, and other search features. Solr also scales query volume with replication and collection size with distributed capabilities. Solr can index rich documents such as PDF, Word, HTML, and other file types.
Come learn how you can get your content into Solr and integrate it into your applications!
Test driving Azure Search and DocumentDBAndrew Siemer
This document provides an overview and comparison of DocumentDB and Azure Search. It discusses what NoSQL and search are, when each service is better to use, how to set up and structure data in each, and examples of querying. DocumentDB is described as a NoSQL database that uses a flexible JSON document structure and scales easily. Azure Search is an elastic search service that indexes and scores search results. The document provides examples of setting up databases and indexes, adding and querying data, and considerations for different field types and scoring profiles. It also discusses where each service may fit in different parts of an application architecture.
How to build your own Delve: combining machine learning, big data and SharePointJoris Poelmans
You are experiencing the benefits of machine learning everyday through product recommendations on Amazon & Bol.com, credit card fraud prevention, etc… So how can we leverage machine learning together with SharePoint and Yammer. We will first look into the fundamentals of machine learning and big data solutions and next we will explore how we can combine tools such as Windows Azure HDInsight, R, Azure Machine Learning to extend and support collaboration and content management scenarios within your organization.
With the commercialization of the web, web development has become one of the blooming industries. Learning web development enables you to create attractive websites using HTML, CSS, JQuery and JavaScript. Web development includes developing simple and complex web-based applications, electronic businesses and social networking sites. Being a web developer you can deliver applications as web services which is only available in desktop applications.
This session describes the architecture and implementation of an embeddable, extensible enterprise content management core for Java EE and simpler platforms. The presentation starts by describing the general architectural concepts used as building blocks:
• A schema and document model, reusing XML schemas and making good use of XML namespaces, where document types are built with several facets
• A repository model, using hierarchy and versioning, with the Content Repository API for Java (JSR 170) being one of the possible back ends
• A query model, based on the Java Persistence query language (JSR 220) and reusing the path-based concepts from Java Content Repositories (JCR)
• A fine-grained security model, compatible with WebDAV concepts and designed to provide flexible security policies
• An event model using synchronous and asynchronous events, allowing bridging through Java Message Service (JMS) or other systems to other event-enabled frameworks
• A directory model, representing access to external data sources using the same concepts as for documents but taking advantage of the specificities of the data back ends
Suitable abstraction layers are put in place to provide the required level of flexibility. One of the main architectural tasks is to find commonalities in all the systems used (or whose use is planned in the future) so framework users need to learn and use a minimal number of concepts. The result is a set of concepts that are fundamental to enterprise document management and are usable through direct Java technology-based APIs, Java EE APIs, or SOA. The presentation shows, for each of the main components, which challenges have been met and overcome when building a framework in which all components are designed to be improved and replaced by different implementations without sacrificing backward compatibility with existing ones.
The described implementation, Nuxeo Core, can be embedded in a basic Java technology-based framework based on OSGi (such as Eclipse) or in one based on Java EE, according to the needs of the application using it. This means that the core has to function without relying on Java EE services but also has to take advantage of them when they are available (providing clustering, messaging, caching, remoting, and advanced deployment).
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
This document provides an overview of techniques for developing high performance web applications. It discusses why front-end performance matters, and outlines best practices for optimizing page load times, using responsive interfaces, loading and executing JavaScript efficiently, and accessing data. The presentation recommends tools for monitoring and improving performance, such as Firebug, Page Speed, and YSlow.
This document discusses strategies for scaling AJAX applications, including using tools like CDNs, ORMs, memcached, templates, and publish/subscribe systems. It also covers techniques like deferred loading, optimizing the loading order, and separating concerns on the client and server to improve performance. The goal is to reduce requests, optimize caching, and spread the load across a system through loose coupling and flexibility.
This session introduces the Spring Web Scripts and the Spring Surf framework describing how they are used to underpin the Alfresco Share user interface. As well as covering the basic concepts, this session will cover the history and future roadmap for the frameworks.
The document provides an overview of developing high performance web applications, focusing on optimizing front-end performance. It discusses why front-end performance matters, and provides best practices for optimizing page load time, developing responsive interfaces, and efficiently loading and executing JavaScript. The document also covers DOM scripting techniques, tools for profiling and analyzing performance, and how the performance monitoring service Gomez can be extended to better measure client-side metrics.
This document provides an overview and introduction to AJAX (Asynchronous JavaScript and XML). It discusses what AJAX is, the core components that make up AJAX applications, how AJAX works, potential problems with AJAX, and examples of AJAX in use. The document also includes code samples that demonstrate building a basic AJAX application, including using the XMLHttpRequest object to asynchronously retrieve and display XML data on a web page without reloading. Contact information is provided for the presenters.
Single page applications - TernopilJS #2Andriy Deren'
This document discusses single page applications (SPAs) and their advantages over traditional web pages that reload on every user interaction. It covers SPA architecture, including the front-end using client-side routing, views/templates, and bindings to connect the UI to models/data, as well as the back-end for data access and storage. The document promotes using a MVVM pattern to separate UI logic from data and implementing SPAs using technologies like routing, bindings, and modules for code organization.
This document discusses advanced usage of OpenCms' multi-site functionality. It describes how to configure a single OpenCms installation to manage multiple websites with individual domains, templates, and user permissions. Key aspects covered include using virtual hosts and rewrite rules in Apache to route requests to the appropriate OpenCms site, configuring sites and templates in OpenCms, and injecting site-specific content through JSPs. The document provides examples of implementing multi-site solutions for a hosted OpenCms platform and large student union website network.
This document describes OrientDB, a multi-model NoSQL database that supports document, key-value, and graph structures. Some key points:
- OrientDB is a fast and scalable database that can run on cheap hardware and supports hundreds to millions of users.
- It supports both schema-less and schema-full data models with ACID transactions, SQL queries, and various types including collections, maps, and relationships between documents.
- The database can be used in embedded, client-server, distributed, and in-memory modes. It has language bindings for Java, Ruby, and JavaScript and supports HTTP/REST.
Semantic technologies in practice - KULeuven 2016Aad Versteden
Slides of the course given at the KULeuven lecture of Knowledge and the Web on 2016/10/26. Examples of semantic technologies and a way of developing web apps on top of it.
This document discusses the evolution of markup languages and semantic technologies on the web. It covers HTML, XML, RDF, OWL, microformats, CSS, HTML5, structured blogging, and client-side inclusion techniques like HInclude and Purple-Include. The overarching goals are to publish content once and share it across different formats and devices, add more semantic meaning that can be interpreted by machines, and create structured information like reviews and events that can be syndicated.
This document provides an overview and introduction to single page application (SPA) frameworks using AngularJS. It discusses the rise of responsive SPAs and some of the challenges in building SPAs. It then introduces key AngularJS concepts like templates, directives, expressions, data binding, scopes, controllers and modules. It also includes a recap of JavaScript concepts like objects, functions and classes. Finally, it demonstrates basic AngularJS examples using directives, expressions, filters, controllers and scopes.
This document provides an overview of responsive web development using HTML, CSS, and JavaScript. It begins with an introduction to the importance of web development and the differences between web designers and developers. It then covers front-end and back-end development. The remainder of the document provides introductions and overviews of HTML, CSS, JavaScript, frameworks like jQuery and React, and advanced topics in web development.
This document provides an overview of JavaScript and jQuery. It covers JavaScript syntax, values, operators, expressions, keywords, comments, objects, functions, conditions, arrays, and the Date object. It also discusses using JavaScript for dynamic web pages, DOM manipulation, and DHTML. Additionally, it provides examples of simple JavaScript programs for adding numbers and using prompt boxes. jQuery is also listed as a topic covered but not described.
Front end vs Backend
Front-End intersections ( designers - developers)
Design system
UI developer VS Front end developer
Front End Skills
Front-End roles and responsibilities
What should Front End developer know ?
This document discusses web performance optimization and provides tips to improve performance. It emphasizes that performance is important for user experience, search engine optimization, conversion rates, and costs. It outlines common causes of performance issues like round-trip times, payload sizes, browser rendering delays, and inefficient JavaScript. Specific recommendations are given to optimize images, stylesheets, scripts, and browser rendering through techniques like compression, caching, deferred loading, and efficient coding practices. A variety of tools for measuring and improving performance are also listed.
Slides for plenary talk on "Content Management - Buy or Build?" given by Ricky Ranking and Gareth McLeese at the IWMW 2003 event held at the University of Kent on 11-13 June 2003.
See http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2003/sessions/#talk-6
CIRCUIT 2015 - Hybrid App Development with AEM AppsICF CIRCUIT
Pat McLoughlin & Paul Michelotti - ICF Interactive
A technical deep dive into the waters of hybrid app development on the AEM apps platform and an introduction to the open source Ionic development framework for AEM Apps.
CIRCUIT 2015 - AEM Infrastructure Automation with Chef CookbooksICF CIRCUIT
Drew Glass - Hero Digital
Push button deployments can automate AEM infrastructure to reduce costs and defects. Chef is a platform that enables this by transforming infrastructure into code using DevOps practices. AEM Author, Publish and Dispatcher instances can be fully configured and deployed as code with Chef. In this talk we will discuss how the open source AEM Chef Cookbook can be used to automate the deployment of AEM instances with Chef features like recipes, attributes, providers and resources. Out of the box, the AEM Chef Cookbook supports:
- Unattended installation of AEM Author, Publish, and Dispatcher nodes.
- Automatic search for and configuration of AEM cluster members using Chef searches.
- Configuration for replication agents using the replicator provider.
- Configurations for Dispatcher farms with the farm provider.
- Deploying and removing AEM packages with the package provider.
We will also discuss how AEM can be automated to supported different SSO and deployment scenarios like cold standby. Finally, we will cover how to extend the Cookbook to support your project specific needs.
CIRCUIT 2015 - Akamai: Caching and BeyondICF CIRCUIT
Puru Hemnani - ICF Interactive
The session will go over the advantages of CDN in general and Akamai caching in particular. Akamai is one of the most commonly used caching option with AEM and several clients use it. There are several features and akamai tuning options such as Error caching, GeoRouting, ESI, Siteshield, WAF that can help developers and system engineers make the sites faster and secure. Configuring it correctly can also reduce the licensing requirements for AEM as well as infrastructure costs as you can serve much higher amount of traffic with less number of origin servers.
Testing is done to either verify expected functionality or learn something new. It involves observing a system under different controlled conditions to check actual responses against expectations. There are various types of testing like unit, functional, acceptance, and performance testing. Testing is important to do early in development to define requirements and catch issues early. It provides feedback to improve the system through iterations. Well-structured automated tests are key to ensuring quality and allowing refactoring.
CIRCUIT 2015 - UI Customization in AEM 6.1ICF CIRCUIT
Andreea Corbeanu & Christian Meyer - Adobe
How to extend a dialog by purely providing the missing pieces via the Sling Resource Merger
* Customizable search facets
How to create custom search facets
* Custom page properties bulk editing
How to add a custom field to the bulk editing
CIRCUIT 2015 - Content API's For AEM SitesICF CIRCUIT
Bryan Williams - ICF Interactive
Many sites need to expose their AEM repository content through a flexible remote API whether it be for consumption by mobile apps, third parties, etc. This presentation will walk through setting up a custom, extensible, secure and testable API utilizing various open source tools that are at your disposal.
Damien Antipa & Gabriel Walt - Adobe
In this session we will demonstrate how to configure a website project with the new capabilities of AEM 6.1. We show the benefit with the new integrated device simulator. How to leverage breakpoints and the new AEM grid system to create a new author experience with an elastic and responsive layout. We will discuss new tooling for web designers and component developers as well as new opportunities with the grid system.
CIRCUIT 2015 - Glimpse of perceptual diffICF CIRCUIT
Rachel Ingles - ICFI
It is a presentation on how to use before and after page screenshots for testing and how the contrasts highlight the status of the build.
CIRCUIT 2015 - Orchestrate your story with interactive video and web contentICF CIRCUIT
Robb Winkle presented on using PopcornJS, an open source JavaScript library, to create interactive and immersive media experiences within Adobe Experience Manager (AEM). He discussed PopcornJS and the ButterJS editor, lessons learned from converting a Popcorn Maker site to AEM, and ways PopcornJS has been used within AEM projects. Some suggested improvements included persisting timeline changes to components and adding read-only modes. Resources provided included code on GitHub and links to alternative timeline frameworks.
David Bosschaert & Carsten Ziegelar - Adobe
"The OSGi platform powering AEM provides a dynamic module system and enables component oriented development. Besides serving the as foundation for AEM, there are benefits for application developers.
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed works directly with in AEM 6.1, GA now.
Make the most of the power of OSGi.
CIRCUIT 2015 - 10 Things Apache Sling Can DoICF CIRCUIT
Presented by Carsten Ziegeler & David Bosschaert from Adobe
Apache Sling is the underlying web framework for Adobe AEM. While the main concept of resource handling is well known, the project contains some hidden gems. Learn some fun facts about the open source project together with very valuable insight into important bits and pieces making the life of an application developer easier. This is a developer focused journey into the "secrets" of Apache Sling.
The document discusses the evolution of content management system architectures from monolithic to modular designs using OSGi and microservices. It covers how earlier systems became difficult to maintain and scale, and how a rewrite of the Day/Adobe CQ5 platform using OSGi and Apache Sling addressed these issues. The talk outlines benefits of modularity and microservices for building systems that can rapidly adapt, integrate, and scale massively to support modern web applications.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxAnoop Ashok
In today's fast-paced retail environment, efficiency is key. Every minute counts, and every penny matters. One tool that can significantly boost your store's efficiency is a well-executed planogram. These visual merchandising blueprints not only enhance store layouts but also save time and money in the process.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
1. CIRCUIT – An Adobe Developer Event
Presented by ICF Interactive
How to migrate
any CMS
through the front door
2. Agenda
• About @rockwell105
– Recent Experiences in Content Migration
• A process for any CMS
• Frontend Tools
• Example Code
– Cucumber / Step-Definition using Capybara
– LSA Department Profile Pages
• Demonstration
• Summary / Questions
– Resources & References
3. About Me
Chris Rockwell
– University of Michigan, LSA
• College of Literature, Science and the Arts, Web Services
– Technical Lead on AEM project
– Neither software consultant nor database expert
• API User; Java, Ruby and Frontend
– Recent Experience
• Database Migration from OpenText
• R2Integrated did a great job in migrating our SQL database
to AEM
– Java classes calling SQL Stored Procedures and creating the
content in the JCR
– We also used frontend techniques, which I want to talk about
today
4. Querying the Database
Why
database
migra/ons
can
be
difficult
-‐ Requires
skills
in
both
systems
-‐ Source
CMS
and
target
AEM
-‐ Source
DB
table
names
are
like
…
-‐ vgnAsAtmyContentChannel?
-‐ vgnAsAtmyContentObjRef?
-‐ Rela/onships
between
the
tables
were
unclear
-‐ In
our
case,
no
foreign
keys
-‐ Legacy
system
customiza/ons
may
not
be
well
understood
or
documented
What
about
the
Legacy
system
API?
Or
Screen
Scraping?
5. Migrate ANY CMS
HTML
CSS
JS
WordPress
AEM
OpenText
Joomla
Drupal
MediaWiki
Magnolia
AssumpOon:
Every
Web
CMS
that
places
content
in
HTML
templates,
which
provide
a
consistent
HTML
Document
structure.
Template
Mapping
Old
system
to
New
system
Group
URL’s
by
template
group
For
each
group
idenOfy
extra
informa/on
needed
to
migrate
properly
6. Data / Screen Scaping
hGps://en.wikipedia.org/wiki/Data_scraping
“Data
scraping
is
generally
considered
an
ad
hoc,
inelegant
technique,
o2en
used
only
as
a
"last
resort"
when
no
other
mechanism
for
data
interchange
is
available.
Aside
from
the
higher
programming
and
processing
overhead,
output
displays
intended
for
human
consump>on
o2en
change
structure
frequently.”
For
us,
some
content
was
much
easier
(and
more
fun)
to
automate
a
browser
and
get
the
content
from
the
frontend.
Why
it
this
easier?
-‐ Content
is
consolidated
on
the
page
-‐ No
reverse
engineering
of
messy
legacy
systems
-‐ Knowledge
of
the
DOM
can
be
used
to
get
content
using
CSS
selectors
-‐ Consistent
HTML
template
structure
provided
by
the
legacy
system
-‐ UAT
fails
if
the
migraOng
URL
does
not
meet
assumpOons
7. Data / Screen Scaping
Other
reasons
to
do
this
-‐ Going
aYer
business
with
no
access
to
the
database
(POC)
-‐ Can
be
done
quickly
without
knowledge
about
the
legacy
system
-‐ Can
be
done
in
phases
(migrates
based
URL’s
listed)
-‐ Works
against
live
websites
(not
stale
database
snapshots)
8. Frontend Tools
Makes
it
easy
to
-‐ Provide
tables
of
input
for
migraOon
-‐ Script
Selenium
-‐ Visit
every
page
-‐ Get
the
content
-‐ Format
the
content
-‐ Post
using
curl
(curb)
Takes
Ome
usually
5s
per
page,
or
more
User
Acceptance
Tools
(UAT):
Cucumber,
Capybara,
Selenium
Webdriver
source :rubygems!
!
gem 'cucumber', '~> 2.0.0'!
gem 'capybara', '~> 2.4.4'!
gem 'rspec', '~> 2.8.0'!
gem 'selenium-webdriver', '2.45.0’!
gem 'curb', '~> 0.8.8'!
gem 'capybara-webkit' , '~>1.5.1'!
!
9. Example Code - Cucumber
Feature: Given a list of URL's go to each and create or update the AEM profile!
!
Scenario Outline: Visit live profile, get profile data, update the AEM page !
!Given the profile page, visit the <URL> !
!Then profiles should migrate into these dept categories:!
!| uniqname | dept | categories | !!
!| [email protected] | earth | graduate-students | !
!| [email protected] | earth | graduate-students | !
!| [email protected] | earth | graduate-students | !
!| [email protected] | earth | graduate-students |!
!Examples:!
!| URL | !
!| http://www.lsa.umich.edu/earth/people/ci.aaronssarah_ci.detail |!
!| http://www.lsa.umich.edu/earth/people/ci.abbeyalyssa_ci.detail |!
!| http://www.lsa.umich.edu/earth/people/ci.aciegosarah_ci.detail |!
!| http://www.lsa.umich.edu/earth/people/ci.altjeffrey_ci.detail |!
!| http://www.lsa.umich.edu/earth/people/ci.ansongjoseph_ci.detail |!
!| http://www.lsa.umich.edu/earth/people/ci.apsitisbrenda_ci.detail | !
• Use
Scenario
Outlines,
and
list
each
URL
to
migrate
under
Examples:
• All
Steps
will
run
for
each
page
(URL
example)
• The
steps
are
defined
under
the
step_defini/ons
folder
• These
are
UAT
tools,
so
we
can
take
advantage
include
steps
to
test
the
success
of
the
page
migraOon
Create
one
(or
more)
*.feature
file
for
each
Template
Group
(or
URL
group)
10. Example Code - Step Definition
Given /^the profile page (.*)$/ do | url |!
visit url !
end!
!
Given /^profiles should migrate into these dept categories:$/ do |table|!
@peopleDeptCat = table.raw!
@peopleHash = Hash[@peopleDeptCat.map {|key, value, v2| [key, [value, v2]]}]!
!
@phone = find("#phone", :visible => false).value!
@imageURI = find(".peopleImg")[:src]!
@education = find("#education").all('li').collect(&:text) !
!
curlAuthenticate(@profilePath)!
buildJsonContent!
postContent(@peoplePath, @categoryHash) # create category page!
postContent(@categoryPath, @profileHash) # create profile!
….!
@c.close!
end!
!
The
Capybara
gem
provides
convenient
ways
to…
• Drive
Selenium,
visit
url
• Get
content
from
the
page,
find(".peopleImg")[:src]
A
Data
Table
is
passed
in
from
Cucumber
lisOng
email,
department
and
category.
This
extra
informaOon
is
used
to
create
the
new
paths
for
the
migrated
pages.
11. Example Code- Sling Post Servlet
def buildJsonContent!
@profileHash = {!
"jcr:primaryType"=> "cq:Page",!
@uniqueName =>{!
"jcr:primaryType"=> "cq:Page", !
"jcr:content"=> {!
"jcr:primaryType"=> "cq:PageContent",!
! "officeLocation"=> "#{@officeLocation}",!
"jcr:title"=> "#{@firstName} #{@lastName}",!
"website1"=> "#{@url}",!
"website2"=> "#{@url2}",!
"lastName"=> "#{@lastName}",!
"cq:template"=> "/apps/sweet-aem-project/templates/department_person_profile",!
"officeHours"=> "#{@officeHours}",!
"fileName"=> "#{@cvFileName.match(/w*.w{3,4}$/) if [email protected]?}", #!
"education"=> @education || "",!
"about"=> "#{@about}",!
"phone"=> "#{@phone.gsub(/<br>/,', ') if [email protected]?}",!
"title"=> "#{@title.gsub(/<br>/,'; ') if [email protected]?}", !
"firstName"=> "#{@firstName}",!
"uniqueName"=> "#{@uniqueName}",!
"hideInNav"=> "true",!
"sling:resourceType"=> "sweet-aem-project/components/pages/department_person_profile",!
"cq:designPath"=> "/etc/designs/sweet-aem-project",!
"profileImage"=> {!
"jcr:primaryType"=> "nt:unstructured",!
"sling:resourceType"=> "foundation/components/image",!
"imageRotate"=> "0",!
},!
}!
}!
} !
Step
Defini/on
Overview
Visit
the
page,
Get
the
content.
Build
nested
hash(es),
which
convert
nicely
to
JSON
Use
*.infinity.json
on
example
content.
Use
this
as
a
starOng
point
for
the
nested
hash.
def postContent(jcrPath, contentHash)!
@c.url = jcrPath!
@c.on_success {|easy| puts "ON SUCCESS #{easy.response_code}"}!
@c.on_failure {|easy| fail easy.to_s}!
@c.http_post("#{jcrPath}", !
Curl::PostField.content(':operation', 'import'),!
Curl::PostField.content(':contentType', 'json'),!
Curl::PostField.content(':replaceProperties', 'true'),!
Curl::PostField.content(':content', contentHash.to_json))!
puts "FINISHED: HTTP #{@c.response_code}"!
end !
Step
Defini/on
Overview
(cont.)
Post
JSON
to
the
desired
path
using
:opera/on
import
The
JSON
contains
a
structure
needed
for
the
page
in
AEM
containing
properOes
needed;
jcr:primaryType,
cq:template,
sling:resourceType
content
hash
example
12. Legacy
System
AEM
System
OperaOon
Import
SlingPostServlet
Wrap-up
Demo
Questions
13. • Several options for Content Migration
– Scraping webpages is one option to consider
– :operation import is great
• Ways to speed up frontend migration
– Scale migration across machines using
Selenium Grid to launch parallel operations
– Use a headless browser
Questions
Wrap-up
Demo