The document discusses the development of an HTML sanitizer for a WYSIWYG editor on the XING platform. It describes evaluating several HTML parsing modules from CPAN before choosing XML::LibXML. It then explains the processing phases of the HTML5::Sanitizer module, including parsing HTML into a DOM tree, converting the tree according to allowed tag profiles, and writing the sanitized HTML.
How to Release Rock-solid RESTful APIs and Ice the Testing BackBlobBob Binder
REST APIs are a key enabling technology for the cloud. Mobile applications, service-oriented architecture, and the Internet of Things depend on reliable and usable REST APIs. Unlike browser, native, and mobile apps, REST APIs can only be tested with software that drives the APIs. Unlike developer-centric hand-coded unit testing, adequate testing of REST APIs is truly well-suited to advanced automated testing.
As most web service applications are developed following an Agile process, effective testing must also avoid the "testing backblob," in which work to maintain hand-coded BDD-style test suites exceeds available time after a few iterations.
This talk presents a methodology for developing and testing REST APIs using model-based automation that has the beneficial side-effect of shrinking the testing backblob.
Lessons learned validating 60,000 pages of api documentationBob Binder
The document discusses lessons learned from validating over 60,000 pages of API documentation at Microsoft. It provides an overview of Microsoft's protocol quality assurance process, which included developing model-based test suites to validate technical documentation against actual Windows services. Key aspects of the process included requirements engineering to derive testable requirements from documentation statements, modeling protocol behavior, and using the Spec Explorer tool to automatically generate and execute test cases from the models. The process uncovered over 50,000 issues in the documentation, most before test execution, and helped close an antitrust case regarding Microsoft's interoperability documentation.
Git is an amazing source control version system for writing. It allows you keep track of the modification and collaborate with a large number of people. Platforms such as bitbucket or github make it straightforward to use.
The document discusses different approaches to implementing the factory pattern in Java, including a naive implementation, smart products, object-oriented, and functional approaches. A naive implementation directly returns products in a switch statement and breaks open/closed principles. Smart products self-register to avoid this. An object-oriented approach leverages a dependency injection container. A functional implementation defines product factories as functions to cleanly separate concerns. The examples are meant to illustrate the concepts rather than be production-ready.
The document discusses different types of software testing including unit tests, component tests, integration tests, and test-driven development (TDD).
It provides definitions and examples of unit tests and how they are used to test individual functions or methods in isolation. It also discusses JUnit and how it is used for writing unit tests in Java.
The document then covers component tests, which test larger logical units or modules that combine multiple classes. It provides an example of component tests for a Spring Boot application.
Other topics covered include test-driven development (TDD) and the red-green-yellow process, public vs private tests and maintainability, and who tests the testers through mutation testing. Finally, it
How to Release Rock-solid RESTful APIs and Ice the Testing BackBlobBob Binder
REST APIs are a key enabling technology for the cloud. Mobile applications, service-oriented architecture, and the Internet of Things depend on reliable and usable REST APIs. Unlike browser, native, and mobile apps, REST APIs can only be tested with software that drives the APIs. Unlike developer-centric hand-coded unit testing, adequate testing of REST APIs is truly well-suited to advanced automated testing.
As most web service applications are developed following an Agile process, effective testing must also avoid the "testing backblob," in which work to maintain hand-coded BDD-style test suites exceeds available time after a few iterations.
This talk presents a methodology for developing and testing REST APIs using model-based automation that has the beneficial side-effect of shrinking the testing backblob.
Lessons learned validating 60,000 pages of api documentationBob Binder
The document discusses lessons learned from validating over 60,000 pages of API documentation at Microsoft. It provides an overview of Microsoft's protocol quality assurance process, which included developing model-based test suites to validate technical documentation against actual Windows services. Key aspects of the process included requirements engineering to derive testable requirements from documentation statements, modeling protocol behavior, and using the Spec Explorer tool to automatically generate and execute test cases from the models. The process uncovered over 50,000 issues in the documentation, most before test execution, and helped close an antitrust case regarding Microsoft's interoperability documentation.
Git is an amazing source control version system for writing. It allows you keep track of the modification and collaborate with a large number of people. Platforms such as bitbucket or github make it straightforward to use.
The document discusses different approaches to implementing the factory pattern in Java, including a naive implementation, smart products, object-oriented, and functional approaches. A naive implementation directly returns products in a switch statement and breaks open/closed principles. Smart products self-register to avoid this. An object-oriented approach leverages a dependency injection container. A functional implementation defines product factories as functions to cleanly separate concerns. The examples are meant to illustrate the concepts rather than be production-ready.
The document discusses different types of software testing including unit tests, component tests, integration tests, and test-driven development (TDD).
It provides definitions and examples of unit tests and how they are used to test individual functions or methods in isolation. It also discusses JUnit and how it is used for writing unit tests in Java.
The document then covers component tests, which test larger logical units or modules that combine multiple classes. It provides an example of component tests for a Spring Boot application.
Other topics covered include test-driven development (TDD) and the red-green-yellow process, public vs private tests and maintainability, and who tests the testers through mutation testing. Finally, it
The QA professional is certainly needed within a company. However, in many cases, unfortunately, there are companies that don’t adhere to this professional culture. Increasing the code quality becomes a major challenge for development teams in these cases. This presentation aims to give tips learned from mistakes of this attempt to try to improve the code quality and test execution time for a quick feedback.
The document discusses testing Docker images to ensure software quality on the cloud. It describes using tools like CTF, Behave, Arquillian Cube, and CE-ARQ to define test scenarios and run smoke tests on images built with Source-to-Image (S2I) to test functionality, parameterization, configuration, and builds. Tests are run locally or in a "TestRunner Pod" on OpenShift using templates, applications, and test classes defined in an Arquillian XML descriptor. References are provided to relevant GitHub repositories.
The document discusses code quality control for Joomla projects using automated tools for testing, analysis, and integration. It covers unit testing with PHPUnit, static analysis with PHP Code Sniffer and PHP Mess Detector, code coverage with PHPUnit, profiling with Xdebug, documentation with PHPDocumentor, and continuous integration with Phing and CruiseControl. Automating these processes improves code quality by detecting issues early.
We've all been faced with legacy code and often decided to rewrite, feeling it will be easier. There are many reasons this can be wrong. Adam Culp will talks about the entire journey of refactoring a legacy code base. He will begin with assessment and why, move on to planning how and when, cover execution and testing, give step-by-step examples, and even show how to manage the process effectively. Attendees will gain insight and tips on how to handle their own pile of code and refactor happy.
This are the slides for the talk that I made at Codemotion 2015.
Swift had provided developers with new features of the most modern languages combined with a simple and elegant syntax. In this presentation I explore what an advanced architecture is and its benefits, how design patterns help us in an advanced architecture, and how to implement those patterns in Swift, taking advantage of Swift 2.x new features.
HTML5 is the new standard for web development that incorporates elements from HTML and XHTML and is designed to work on all platforms. It is a living standard that is continually being developed. While not yet fully supported in all browsers, polyfills allow older browsers to support new HTML5 features, and it degrades gracefully. Many major websites have already adopted the new HTML5 doctype and elements.
This document discusses an agenda for a student event on HTML5. It includes sections on the past, present and future of HTML5, what's new in HTML5 like new elements and attributes, and how to use various HTML5 features like canvas drawing. It encourages students not to be afraid and to start coding, and provides an overview of validating HTML5 documents.
HTML5 Presentation at Online Publishers Association Tech Conference 2011-03Rajiv Pant
The document discusses HTML5 adoption timelines and features. It expects the HTML5 specification to reach Candidate Recommendation stage in 2012, and recommends completion of a comprehensive test suite by 2014 to achieve Recommendation stage. Conde Nast is using HTML5 for digital magazines, leveraging features like local storage, canvas drawing, and databases to power interactive apps.
XHTML is an evolution of HTML that complies with XML syntax rules, making it stricter and cleaner than HTML. It delivers web content to browsers while CSS provides visual design and XML provides data. To learn XHTML, first learn HTML and then apply XHTML rules like properly nesting tags, closing all tags, using lowercase tags and attribute quotes, and including mandatory header elements. Web development typically involves editing HTML locally, saving and refreshing in a browser, then uploading finished work to a staging or production server.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed jointly by W3C and WHATWG. While still a work in progress, most modern browsers support some HTML5 features. Key new aspects include the canvas element for drawing, video/audio elements, and new form controls like date pickers.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed through cooperation between W3C and WHATWG based on principles like reducing plugins and improving error handling. While still a work in progress, many modern browsers already support key HTML5 features through JavaScript libraries like Modernizr that help detect support.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed jointly by W3C and WHATWG. While still a work in progress, most modern browsers support some HTML5 features. Key new aspects include the canvas element for drawing, video/audio elements, and new form controls like date pickers.
HTML5 is the new standard for HTML that includes new semantic elements, forms, media playback, and graphics capabilities. It is being developed cooperatively by the W3C and WHATWG to address changes on the web since the previous HTML 4.01 standard from 1999. Key new features include the canvas element for 2D drawing, video and audio elements, improved form controls like date pickers, and local storage capabilities. While still a work in progress, many modern browsers already support important HTML5 features through various specifications.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed jointly by W3C and WHATWG. While still a work in progress, most modern browsers support some HTML5 features. Key new aspects include the canvas element for drawing, video/audio elements, and new form controls like date pickers.
HTML5 is the new standard for HTML that adds new semantic elements, canvas for drawing, video and audio elements, and form controls like date and color pickers. It is a collaboration between W3C and WHATWG to address changes to the web since 1999. Key features include new elements, canvas drawing, media playback with <video> and <audio> tags, offline web apps, and improved form controls. Browser support is increasing, though not fully implemented. Modernizr can detect support for HTML5 features.
HTML5 is the new standard for HTML that provides new semantic elements, canvas drawing, video/audio playback, and improved form controls. It is a collaboration between W3C and WHATWG to address changes to the web since 1999. Key new features include the <canvas> element for drawing, <video> and <audio> elements for media playback, and new form controls like date pickers. Browser support is still evolving but many features are already supported in modern browsers. HTML5 aims to standardize features and reduce reliance on plugins like Flash.
Varnish is a reverse proxy cache that is useful for caching dynamic content websites. It can improve performance by caching content and serving subsequent requests from the cache. Varnish uses a configuration language called VCL to define caching rules and hook points in the request lifecycle. VCL configurations can be reloaded without restarting the cache. Tools like varnishtop and varnishstat provide visibility into cache hit rates and requests. Configuring language and user-agent negotiation settings properly is important for effective caching.
This document discusses using HHVM as a drop-in replacement for PHP to speed up Magento webshops. HHVM is a just-in-time compiler created by Facebook that translates PHP to bytecode and machine code, resulting in performance improvements of 5-10 times over regular PHP in some cases. While HHVM is not fully compatible with Magento, over 100 fixes have been contributed to HHVM to address Magento-related bugs. Benchmarks show significant improvements in response times and higher transaction rates when using HHVM with Magento compared to PHP.
HTML5 is the latest evolution of the HTML standard and includes new semantic elements, form input types, multimedia, canvas, and offline capabilities. It is developed by the WHATWG and W3C in collaboration. While not fully standardized, parts have been implemented in modern browsers, especially on mobile. HTML5 introduces new APIs like Geolocation, Web Storage, and Web SQL for building powerful web applications that work across browsers.
The QA professional is certainly needed within a company. However, in many cases, unfortunately, there are companies that don’t adhere to this professional culture. Increasing the code quality becomes a major challenge for development teams in these cases. This presentation aims to give tips learned from mistakes of this attempt to try to improve the code quality and test execution time for a quick feedback.
The document discusses testing Docker images to ensure software quality on the cloud. It describes using tools like CTF, Behave, Arquillian Cube, and CE-ARQ to define test scenarios and run smoke tests on images built with Source-to-Image (S2I) to test functionality, parameterization, configuration, and builds. Tests are run locally or in a "TestRunner Pod" on OpenShift using templates, applications, and test classes defined in an Arquillian XML descriptor. References are provided to relevant GitHub repositories.
The document discusses code quality control for Joomla projects using automated tools for testing, analysis, and integration. It covers unit testing with PHPUnit, static analysis with PHP Code Sniffer and PHP Mess Detector, code coverage with PHPUnit, profiling with Xdebug, documentation with PHPDocumentor, and continuous integration with Phing and CruiseControl. Automating these processes improves code quality by detecting issues early.
We've all been faced with legacy code and often decided to rewrite, feeling it will be easier. There are many reasons this can be wrong. Adam Culp will talks about the entire journey of refactoring a legacy code base. He will begin with assessment and why, move on to planning how and when, cover execution and testing, give step-by-step examples, and even show how to manage the process effectively. Attendees will gain insight and tips on how to handle their own pile of code and refactor happy.
This are the slides for the talk that I made at Codemotion 2015.
Swift had provided developers with new features of the most modern languages combined with a simple and elegant syntax. In this presentation I explore what an advanced architecture is and its benefits, how design patterns help us in an advanced architecture, and how to implement those patterns in Swift, taking advantage of Swift 2.x new features.
HTML5 is the new standard for web development that incorporates elements from HTML and XHTML and is designed to work on all platforms. It is a living standard that is continually being developed. While not yet fully supported in all browsers, polyfills allow older browsers to support new HTML5 features, and it degrades gracefully. Many major websites have already adopted the new HTML5 doctype and elements.
This document discusses an agenda for a student event on HTML5. It includes sections on the past, present and future of HTML5, what's new in HTML5 like new elements and attributes, and how to use various HTML5 features like canvas drawing. It encourages students not to be afraid and to start coding, and provides an overview of validating HTML5 documents.
HTML5 Presentation at Online Publishers Association Tech Conference 2011-03Rajiv Pant
The document discusses HTML5 adoption timelines and features. It expects the HTML5 specification to reach Candidate Recommendation stage in 2012, and recommends completion of a comprehensive test suite by 2014 to achieve Recommendation stage. Conde Nast is using HTML5 for digital magazines, leveraging features like local storage, canvas drawing, and databases to power interactive apps.
XHTML is an evolution of HTML that complies with XML syntax rules, making it stricter and cleaner than HTML. It delivers web content to browsers while CSS provides visual design and XML provides data. To learn XHTML, first learn HTML and then apply XHTML rules like properly nesting tags, closing all tags, using lowercase tags and attribute quotes, and including mandatory header elements. Web development typically involves editing HTML locally, saving and refreshing in a browser, then uploading finished work to a staging or production server.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed jointly by W3C and WHATWG. While still a work in progress, most modern browsers support some HTML5 features. Key new aspects include the canvas element for drawing, video/audio elements, and new form controls like date pickers.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed through cooperation between W3C and WHATWG based on principles like reducing plugins and improving error handling. While still a work in progress, many modern browsers already support key HTML5 features through JavaScript libraries like Modernizr that help detect support.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed jointly by W3C and WHATWG. While still a work in progress, most modern browsers support some HTML5 features. Key new aspects include the canvas element for drawing, video/audio elements, and new form controls like date pickers.
HTML5 is the new standard for HTML that includes new semantic elements, forms, media playback, and graphics capabilities. It is being developed cooperatively by the W3C and WHATWG to address changes on the web since the previous HTML 4.01 standard from 1999. Key new features include the canvas element for 2D drawing, video and audio elements, improved form controls like date pickers, and local storage capabilities. While still a work in progress, many modern browsers already support important HTML5 features through various specifications.
HTML5 is the new standard for HTML that addresses changes since 1999, including new semantic elements, forms, media playback, drawing, and offline storage. It is developed jointly by W3C and WHATWG. While still a work in progress, most modern browsers support some HTML5 features. Key new aspects include the canvas element for drawing, video/audio elements, and new form controls like date pickers.
HTML5 is the new standard for HTML that adds new semantic elements, canvas for drawing, video and audio elements, and form controls like date and color pickers. It is a collaboration between W3C and WHATWG to address changes to the web since 1999. Key features include new elements, canvas drawing, media playback with <video> and <audio> tags, offline web apps, and improved form controls. Browser support is increasing, though not fully implemented. Modernizr can detect support for HTML5 features.
HTML5 is the new standard for HTML that provides new semantic elements, canvas drawing, video/audio playback, and improved form controls. It is a collaboration between W3C and WHATWG to address changes to the web since 1999. Key new features include the <canvas> element for drawing, <video> and <audio> elements for media playback, and new form controls like date pickers. Browser support is still evolving but many features are already supported in modern browsers. HTML5 aims to standardize features and reduce reliance on plugins like Flash.
Varnish is a reverse proxy cache that is useful for caching dynamic content websites. It can improve performance by caching content and serving subsequent requests from the cache. Varnish uses a configuration language called VCL to define caching rules and hook points in the request lifecycle. VCL configurations can be reloaded without restarting the cache. Tools like varnishtop and varnishstat provide visibility into cache hit rates and requests. Configuring language and user-agent negotiation settings properly is important for effective caching.
This document discusses using HHVM as a drop-in replacement for PHP to speed up Magento webshops. HHVM is a just-in-time compiler created by Facebook that translates PHP to bytecode and machine code, resulting in performance improvements of 5-10 times over regular PHP in some cases. While HHVM is not fully compatible with Magento, over 100 fixes have been contributed to HHVM to address Magento-related bugs. Benchmarks show significant improvements in response times and higher transaction rates when using HHVM with Magento compared to PHP.
HTML5 is the latest evolution of the HTML standard and includes new semantic elements, form input types, multimedia, canvas, and offline capabilities. It is developed by the WHATWG and W3C in collaboration. While not fully standardized, parts have been implemented in modern browsers, especially on mobile. HTML5 introduces new APIs like Geolocation, Web Storage, and Web SQL for building powerful web applications that work across browsers.
TERMINALFOUR t44u 2009 - Enhanced Direct Edit and Tiny MCETerminalfour
The document discusses Enhanced Direct Edit, which allows for inline editing of live websites. It enables easier addition of content sections and approval of modifications. TinyMCE is also discussed as a Javascript WYSIWYG editor that is open source and easier to integrate than HTMLArea due to its documented code and support for plugins. The document concludes with an announcement of a demo of Enhanced Direct Edit and TinyMCE.
Increase the Velocity of Your Software Releases Using GitHub and DeployHubDevOps.com
Increase the velocity of your software releases by using continuous deployment driven by continuous delivery pipeline. After all, the goal of agile is to get code updates into the hands of your users fast and on a high frequency basis. This means installing all the way to production, not just staged for productio.
This webinar will show you an approach to achieving full continuous deployment using GitHub and DeployHub. You will learn how to declare your Application Package from your GitHub repository, manage approvals and deliver updates to environments across the CD pipeline from development through production.
GitHub and DeployHub work together to provide a complete DevOps process that results in a repeatable, consistent software releases process with a full continuous feedback loop.
The document discusses strategies for maintaining CPAN modules. It notes that while having 24 modules on CPAN may not seem like many compared to others, it is enough to require maintenance. It recommends using tools like RT, GitHub, and automated testing to help with bug tracking, source control, and ensuring code quality during the maintenance process. Maintaining modules can be made easier by utilizing existing tools and getting help from the Perl community.
Michael(tm) Smith: HTML5 at Web Directions South 2008Michael(tm) Smith
The document discusses the history and development of HTML5. It notes that work began in the late 1990s and early 2000s to develop new web technologies, as HTML4 was over 10 years old. This led to specs like XHTML2 but also projects outside the W3C like Web Forms 2 and WHATWG, driven by browser makers. WHATWG was influential in developing many HTML5 features. The HTML5 spec was launched by the W3C in 2007, and defines features for embedding video/audio, canvas drawing, offline web apps, and more in a browser-independent way.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfflufftailshop
When it comes to unit testing in the .NET ecosystem, developers have a wide range of options available. Among the most popular choices are NUnit, XUnit, and MSTest. These unit testing frameworks provide essential tools and features to help ensure the quality and reliability of code. However, understanding the differences between these frameworks is crucial for selecting the most suitable one for your projects.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
3. Introduction
HTML parser choice Task: WYSIWYG editor
HTML5::Sanitizer interna Team
HTML5::Sanitizer usage Live example
Conclusion
1 Introduction
Task: WYSIWYG editor
Team
Live example
2 HTML parser choice
3 HTML5::Sanitizer interna
4 HTML5::Sanitizer usage
5 Conclusion
Uwe Voelker HTML5::Sanitizer
4. Introduction
HTML parser choice Task: WYSIWYG editor
HTML5::Sanitizer interna Team
HTML5::Sanitizer usage Live example
Conclusion
Task: WYSIWYG editor
integrate WYSIWYG editor in XING
frontend architect researched open source solutions
Uwe Voelker HTML5::Sanitizer
5. Introduction
HTML parser choice Task: WYSIWYG editor
HTML5::Sanitizer interna Team
HTML5::Sanitizer usage Live example
Conclusion
Task: WYSIWYG editor
integrate WYSIWYG editor in XING
frontend architect researched open source solutions
none was suited, mostly for security reasons
decision was made, to build it inhouse
Uwe Voelker HTML5::Sanitizer
6. Introduction
HTML parser choice Task: WYSIWYG editor
HTML5::Sanitizer interna Team
HTML5::Sanitizer usage Live example
Conclusion
Task: WYSIWYG editor
integrate WYSIWYG editor in XING
frontend architect researched open source solutions
none was suited, mostly for security reasons
decision was made, to build it inhouse
goals: secure, share profiles (allowed tags) between frontend
and backend
Uwe Voelker HTML5::Sanitizer
7. Introduction
HTML parser choice Task: WYSIWYG editor
HTML5::Sanitizer interna Team
HTML5::Sanitizer usage Live example
Conclusion
Team
Christopher Blum Ingo Chao Uwe Voelker
Javascript QA (HTML5/CSS) Perl
Uwe Voelker HTML5::Sanitizer
8. Introduction
HTML parser choice Task: WYSIWYG editor
HTML5::Sanitizer interna Team
HTML5::Sanitizer usage Live example
Conclusion
Live example
Uwe Voelker HTML5::Sanitizer
9. Introduction
HTML parser choice CPAN modules
HTML5::Sanitizer interna Evaluation
HTML5::Sanitizer usage Final decision
Conclusion
1 Introduction
2 HTML parser choice
CPAN modules
Evaluation
Final decision
3 HTML5::Sanitizer interna
4 HTML5::Sanitizer usage
5 Conclusion
Uwe Voelker HTML5::Sanitizer
10. Introduction
HTML parser choice CPAN modules
HTML5::Sanitizer interna Evaluation
HTML5::Sanitizer usage Final decision
Conclusion
HTML parser on CPAN
HTML::Parser
HTML::TreeBuilder
HTML::TreeBuilder::LibXML
XML::LibXML
HTML::HTML5::Parser
Marpa::HTML
...
Uwe Voelker HTML5::Sanitizer
11. Introduction
HTML parser choice CPAN modules
HTML5::Sanitizer interna Evaluation
HTML5::Sanitizer usage Final decision
Conclusion
Uwe Voelker HTML5::Sanitizer
12. Introduction
HTML parser choice CPAN modules
HTML5::Sanitizer interna Evaluation
HTML5::Sanitizer usage Final decision
Conclusion
started with HTML::HTML5::Parser (HH5P)
because it understands semantic of HTML 5 tags
Uwe Voelker HTML5::Sanitizer
17. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Processing phases
preprocessing (e. g. migration)
Uwe Voelker HTML5::Sanitizer
18. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Processing phases
preprocessing (e. g. migration)
parsing (HTML → DOM tree)
Uwe Voelker HTML5::Sanitizer
19. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Processing phases
preprocessing (e. g. migration)
parsing (HTML → DOM tree)
converting (rebuild tree according to profile)
Uwe Voelker HTML5::Sanitizer
20. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Processing phases
preprocessing (e. g. migration)
parsing (HTML → DOM tree)
converting (rebuild tree according to profile)
writing (DOM tree → HTML)
Uwe Voelker HTML5::Sanitizer
21. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Parsing HTML with XML::LibXML
use XML : : LibXML ;
my $ p a r s e r = XML : : LibXML−>new (
encoding => ’UTF−8 ’ ,
recover => 2 ,
keep blanks => 1 ,
no cdata => 1 ,
expand entities => 1 ,
no network => 1 ,
suppress errors => 1 ,
s u p p r e s s w a r n i n g s => 1 ,
);
Uwe Voelker HTML5::Sanitizer
22. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Parsing HTML with XML::LibXML
my $doc = $ p a r s e r −>p a r s e h t m l s t r i n g (
$html ,
{
no cdata => 1 ,
suppress errors => 1 ,
s u p p r e s s w a r n i n g s => 1 ,
},
);
Uwe Voelker HTML5::Sanitizer
23. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Converting - rebuilding DOM tree
loop through every node (only ELEMENT and TEXT)
Uwe Voelker HTML5::Sanitizer
24. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Converting - rebuilding DOM tree
loop through every node (only ELEMENT and TEXT)
drop unwanted elements completely (e. g. <script>)
change unknown elements to <span>
Uwe Voelker HTML5::Sanitizer
25. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Converting - rebuilding DOM tree
loop through every node (only ELEMENT and TEXT)
drop unwanted elements completely (e. g. <script>)
change unknown elements to <span>
eventually change tag name (profile)
transform (or copy) attributes
Uwe Voelker HTML5::Sanitizer
26. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Converting - rebuilding DOM tree
loop through every node (only ELEMENT and TEXT)
drop unwanted elements completely (e. g. <script>)
change unknown elements to <span>
eventually change tag name (profile)
transform (or copy) attributes
proceed recursively with child nodes
Uwe Voelker HTML5::Sanitizer
27. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Writing HTML
mainly for additional escapes
could not find a nice way to integrate this in XML::LibXML
Uwe Voelker HTML5::Sanitizer
28. Introduction
Processing Phases
HTML parser choice
Parsing
HTML5::Sanitizer interna
Converting
HTML5::Sanitizer usage
Writing
Conclusion
Writing HTML
mainly for additional escapes
could not find a nice way to integrate this in XML::LibXML
$text =˜ s/&/& ; / g ;
$text =˜ s / ’ /'/g;# ’
$text =˜ s /”/&q u o t ; / g;#”
$text =˜ s/</& l t ; / g ;
$text =˜ s/>/&g t ; / g ;
$text =˜ s / ‘/	 6 ; / g ;
$text =˜ s /{/ 2 3 ; / g ;
$text =˜ s /}/ 2 5 ; / g ;
Uwe Voelker HTML5::Sanitizer
30. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Usage
# construct object
my $ s a n i t i z e r = HTML5 : : S a n i t i z e r −>new (
p r o f i l e => ’My : : P r o f i l e ’ ,
);
# c a l l process ()
my $ c l e a n = $ s a n i t i z e r −>p r o c e s s ( $html ) ;
Uwe Voelker HTML5::Sanitizer
31. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Profile
you have to build your own
Uwe Voelker HTML5::Sanitizer
32. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Profile
you have to build your own
class with just one method: element($tag)
return undef or a hashref with:
Uwe Voelker HTML5::Sanitizer
33. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Profile
you have to build your own
class with just one method: element($tag)
return undef or a hashref with:
remove remove complete sub tree (boolean)
rename tag rename tag (string)
set attributes set these attributes (hashref)
check attributes check/transform these attributes (hashref)
set class set class (string)
add class add class from other attributes (hashref)
Uwe Voelker HTML5::Sanitizer
36. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Examples - script
completely remove <script> (including all children)
{
remove => 1 ,
}
otherwise it would be converted to <span>
and all children processed recursively
Uwe Voelker HTML5::Sanitizer
38. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Examples - big
<big> → <span class=”big”>
{
r e n a m e t a g => ’ s p a n ’ ,
s e t c l a s s => ’ b i g ’ ,
}
Uwe Voelker HTML5::Sanitizer
39. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Examples - a
add rel=”nofollow” and target=” blank” to every link
Uwe Voelker HTML5::Sanitizer
40. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Examples - a
add rel=”nofollow” and target=” blank” to every link
{
s e t a t t r i b u t e s => {
rel => ’ n o f o l l o w ’ ,
t a r g e t => ’ b l a n k ’ ,
},
}
Uwe Voelker HTML5::Sanitizer
41. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Examples - font
r e n a m e t a g => ’ s p a n ’ ,
a d d c l a s s => { s i z e => ’ s i z e f o n t ’ } ,
Uwe Voelker HTML5::Sanitizer
42. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Examples - font
r e n a m e t a g => ’ s p a n ’ ,
a d d c l a s s => { s i z e => ’ s i z e f o n t ’ } ,
sub c l a s s s i z e f o n t {
my ( $ s e l f , $ v a l ) = @ ;
return unless $val ;
r e t u r n ’ s i z e −xx−l a r g e ’ i f $ v a l eq ’ 7 ’ ;
# ...
r e t u r n ’ s i z e −xx−s m a l l ’ i f $ v a l eq ’ 1 ’ ;
r e t u r n ’ s i z e −l a r g e r ’ i f $ v a l =˜ /ˆ+/;
r e t u r n ’ s i z e −s m a l l e r ’ i f $ v a l =˜ /ˆ −/;
return ;
}
Uwe Voelker HTML5::Sanitizer
43. Introduction
Usage
HTML parser choice
Profile
HTML5::Sanitizer interna
Examples
HTML5::Sanitizer usage
Debugging
Conclusion
Debugging
if the result is not as expected, you can access intermediate
results:
my $ r e s = $ s a n i t i z e r −>p r o c e s s ( $html , { r e t u r n r e s u l t
# s e e HTML5 : : S a n i t i z e r : : R e s u l t
s a y $ r e s −>i n p u t ;
s a y $ r e s −>p r e p r o c e s s e d ;
s a y $ r e s −>p a r s e d d o c −>t o S t r i n g ;
s a y $ r e s −>c o n v e r t e d d o c −>t o S t r i n g ;
s a y $ r e s −>o u t p u t ;
p r i n t $ r e s −>d e b u g o u t p u t ;
Uwe Voelker HTML5::Sanitizer