This document discusses using APEX Nitro to improve the APEX development process. APEX Nitro allows developers to write CSS and JavaScript locally and have changes automatically synced to their APEX application. It provides features like error handling, minification, concatenation, and preprocessing to boost performance and maintainability. The document reviews how to install, configure, and use APEX Nitro to enhance the front-end development experience.
APEX HROUG 2019 - Universal Theme: Tips and TweaksMarko Gorički
Universal Theme is one of the top APEX features because it enables developers to work on the data models and business logic instead of dealing with UI problems.
Universal Theme is like playing with Legos. Just pick your blocks and be creative. It consists of many ready to use components that can easily be customized by changing declarative properties.
What if you want to customize it to fit your company's brand? Where to start? By developing a custom theme or by customizing Universal Theme? What are the possible problems?
Answers to these and many other questions will be answered during this presentation.
Speed Up Your APEX Apps with JSON and HandlebarsMarko Gorički
The document discusses various methods for generating JSON from SQL queries in Oracle APEX applications. It compares manually concatenating strings, using the apex_util.json_from_* procedures, the PL/JSON library, the APEX_JSON API package, and Oracle REST Data Services (ORDS). The APEX_JSON package is recommended for most cases as it supports generation and parsing, can be used standalone, has a light footprint, and makes conversion from XML easy. Using a templating engine like Handlebars.js with JSON is also presented as a way to dynamically render HTML from database queries.
Oracle Application Express (APEX) and Microsoft Sharepoint integrationDimitri Gielis
A lot of companies use Microsoft Sharepoint as portal for their intranet.
For many people it’s the first place to go to when they start their day.
To do their job they make also use of other applications, some build in Oracle Application Express (APEX).
This session will show the different options you have to integrate both worlds of Sharepoint and APEX.
The integration can be both ways;
- in Sharepoint you get data or screens from APEX
- and in APEX you want to use data maintained and coming from Sharepoint.
Get the Look and Feel You Want in Oracle APEXJorge Rimblas
You just received an image or layered file from marketing with the design for an application you need to build. You're wondering what to do. How do I translate this into a usable APEX template? APEX provides great flexibility that allows your applications to fit within your corporate visual theme, but many people don't realize that the APEX built-in themes are not static or your only option. HTML and CSS can be daunting when your expertise lies within the database realm. This session will show you that a little understanding goes a long way.
jQuery Mobile has been integrated in APEX since version 4.2 and building a mobile web application with APEX seems magically easy ever since. Once you start a mobile project you will be confronted with a number of challenges related to the jQuery Mobile frameworks mechanisms. This session tends to explain the fundamentals that are important to know for APEX developers and how to deal with these in APEX development.
When creating a mobile web application with APEX, knowledge of how jQuery Mobile works and how it is different from what we are used to as APEX developers is essential, I learned this during projects. This session will explain the important jQuery Mobile framework mechanisms and how to deal with these in APEX: Page loading and submitting data; customizing the user interface elements; debugging, testing and inspecting on actual mobile devices.
This document discusses using Elasticsearch, Azure, and Episerver together for search capabilities on the Evira website. Key points:
1) Elasticsearch provides global search and efficient querying of large datasets. Azure provides the cloud platform and Episerver is used for content editing and as the master data store.
2) Real-time indexing from Episerver events into Elasticsearch provides search results with 1-2 second latency.
3) CQRS pattern is used where commands update Episerver and queries are handled by Elasticsearch for better performance on large datasets.
This document discusses using APEX Nitro to improve the APEX development process. APEX Nitro allows developers to write CSS and JavaScript locally and have changes automatically synced to their APEX application. It provides features like error handling, minification, concatenation, and preprocessing to boost performance and maintainability. The document reviews how to install, configure, and use APEX Nitro to enhance the front-end development experience.
APEX HROUG 2019 - Universal Theme: Tips and TweaksMarko Gorički
Universal Theme is one of the top APEX features because it enables developers to work on the data models and business logic instead of dealing with UI problems.
Universal Theme is like playing with Legos. Just pick your blocks and be creative. It consists of many ready to use components that can easily be customized by changing declarative properties.
What if you want to customize it to fit your company's brand? Where to start? By developing a custom theme or by customizing Universal Theme? What are the possible problems?
Answers to these and many other questions will be answered during this presentation.
Speed Up Your APEX Apps with JSON and HandlebarsMarko Gorički
The document discusses various methods for generating JSON from SQL queries in Oracle APEX applications. It compares manually concatenating strings, using the apex_util.json_from_* procedures, the PL/JSON library, the APEX_JSON API package, and Oracle REST Data Services (ORDS). The APEX_JSON package is recommended for most cases as it supports generation and parsing, can be used standalone, has a light footprint, and makes conversion from XML easy. Using a templating engine like Handlebars.js with JSON is also presented as a way to dynamically render HTML from database queries.
Oracle Application Express (APEX) and Microsoft Sharepoint integrationDimitri Gielis
A lot of companies use Microsoft Sharepoint as portal for their intranet.
For many people it’s the first place to go to when they start their day.
To do their job they make also use of other applications, some build in Oracle Application Express (APEX).
This session will show the different options you have to integrate both worlds of Sharepoint and APEX.
The integration can be both ways;
- in Sharepoint you get data or screens from APEX
- and in APEX you want to use data maintained and coming from Sharepoint.
Get the Look and Feel You Want in Oracle APEXJorge Rimblas
You just received an image or layered file from marketing with the design for an application you need to build. You're wondering what to do. How do I translate this into a usable APEX template? APEX provides great flexibility that allows your applications to fit within your corporate visual theme, but many people don't realize that the APEX built-in themes are not static or your only option. HTML and CSS can be daunting when your expertise lies within the database realm. This session will show you that a little understanding goes a long way.
jQuery Mobile has been integrated in APEX since version 4.2 and building a mobile web application with APEX seems magically easy ever since. Once you start a mobile project you will be confronted with a number of challenges related to the jQuery Mobile frameworks mechanisms. This session tends to explain the fundamentals that are important to know for APEX developers and how to deal with these in APEX development.
When creating a mobile web application with APEX, knowledge of how jQuery Mobile works and how it is different from what we are used to as APEX developers is essential, I learned this during projects. This session will explain the important jQuery Mobile framework mechanisms and how to deal with these in APEX: Page loading and submitting data; customizing the user interface elements; debugging, testing and inspecting on actual mobile devices.
This document discusses using Elasticsearch, Azure, and Episerver together for search capabilities on the Evira website. Key points:
1) Elasticsearch provides global search and efficient querying of large datasets. Azure provides the cloud platform and Episerver is used for content editing and as the master data store.
2) Real-time indexing from Episerver events into Elasticsearch provides search results with 1-2 second latency.
3) CQRS pattern is used where commands update Episerver and queries are handled by Elasticsearch for better performance on large datasets.
Episerver Find is an event-driven search engine built on top of Elasticsearch that is well-suited for Episerver projects. It separates commands and queries using CQRS, with Episerver handling simple queries and Elasticsearch handling more complex queries for improved performance. Choosing the right tools like Episerver for content management, Elasticsearch for search, and a customizable cloud platform allows building a scalable solution for projects of any size.
The document provides guidelines for building APIs that comply with the JSON API specification. It discusses best practices for document structure, fetching resources, CRUD operations, error handling, and caching. Some key recommendations include having a flat resource structure, paginating every endpoint, returning the full resource on POST creates, using custom actions for non-idempotent operations, and separating application concerns into different classes.
This document discusses scaling applications and services. It recommends taking a vertical approach by breaking monolithic applications into microservices that communicate through APIs. The Swagger framework is presented as a way to document and test APIs. Swagger can generate client libraries and helps services scale by enabling asynchronous communication through websockets. Taking this vertical, microservices approach with Swagger improves scalability by allowing dedicated teams to own individual services and improves performance through asynchronous communication protocols.
This document discusses service-oriented architecture (SOA) and how Ruby on Rails can be used to build SOA systems. It defines a service as a system that responds to HTTP requests, usually to modify or retrieve data. The document explains benefits of SOA like isolation, scalability, and reusability. It also introduces some Ruby tools like Sinatra and HTTParty that are useful for building RESTful services and APIs.
An Intense Overview of the React EcosystemRami Sayar
React has been named the front-end library to learn in 2016 however few people talk about the React without mentioning Flux (or Redux or React Native or Relay). In this talk, we will explore the ecosystem of tools and libraries that surround React. We will look at the various Flux implementations (including a short explanation of Flux) like Redux, at react-router, at some of the reactive database or reactive API libraries and finally at everyday tools and techniques that make the React developer happy. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal.
Wearables are hot these days. One might say it is a true revolution. We at APEX R&D are entering that wearables revolution as well, through Oracle Application Express. During this presentation, learn about the APEX R&D project and features of the research, including the Apple Watch. Wouldn't it be great to facilitate the work that people do in such a manner that they could do more other important things?
This document provides an introduction to Adobe Experience Manager (AEM), formerly known as CQ5. It discusses key aspects such as installation, prerequisites, content authoring, templates, components, workflows and more. The technical underpinnings including OSGi, JCR, Apache Sling, and ExtJS frameworks are also overviewed. Common terms are defined and the overall architecture and technology stack are depicted in detail.
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.
LoopBack is an open source API framework built on top of Express optimized for mobile and web. Connect to multiple data sources, write business logic in Node.js, glue on top of your existing services and data, connect using JS, iOS & Android SDKs.
Building a Node.js API backend with LoopBack in 5 MinutesRaymond Feng
LoopBack is an open source API framework built on top of Express optimized for mobile and web. Connect to multiple data sources, write business logic in Node.js, glue on top of your existing services and data, connect using JS, iOS & Android SDKs.
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
The service implements a RESTful Users web service with Rails 3. It customizes Rails to remove unnecessary components and optimize for a lightweight REST service. The service follows best practices for API design including using JSON format, placing JSON conversion in the controller, and returning appropriate HTTP status codes. Requests are designed to be stateless and atomic. Errors are returned in a standardized JSON format.
This document discusses best practices for designing RESTful APIs including planning for versioning, request and response formats, and authentication. It recommends using a RESTful approach, starting with a minimum viable API and maintaining features across versions. It suggests implementing versioning through URI design and sub-controllers, and handling requests and responses with JSON and the respond_with method in Rails. It also provides examples of authentication with Devise or request signatures, and testing API actions.
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.
A Practical Guide To Hypermedia APIs - Philly.rbSmartLogic
This document provides a practical guide to building hypermedia APIs. It introduces hypermedia APIs and the Hypertext Application Language (HAL) format. It discusses building representations of resources with links using serializers, and building clients that can traverse links and perform actions by loading and updating data through services. Helpful resources and gems for building APIs are also listed.
Picking the Right Node.js Framework for Your Use CaseJimmy Guerrero
Picking the Right Node.js Framework for Your Use Case with Shubhra Kar.
Topics covered in this webinar:
* Understanding the evolution of frameworks by design patterns
* Express
* Hapi
* Sails.js
* LoopBack.io
* Microservices
* IoT
A short talk delivered at Milan MEAN meetup, where I discuss shortcomings of existing REST API frameworks and explaining how LoopBack solves them for you.
Shopify uses Ruby on Rails, MySQL, and services like Memcached and Redis to handle a high volume of traffic. They optimize performance by caching content, running background jobs asynchronously, scaling database and application servers, and separating services like image processing. Monitoring tools help them understand bottlenecks and prioritize where to optimize next.
Design & Deploy a data-driven Web API in 2 hoursRestlet
Learn how to use the ROA/D process along with UX and DDD to design a proper web API, then learn how APISpark platform (PaaS) compares to a DIY approaches.
This document discusses strategies for delivering content across different devices and platforms. It covers responsive design which adapts the layout based on the device and adaptive design which provides optimized experiences for different devices. The document also discusses using PhoneGap to build cross-platform mobile apps and leveraging content synchronization to keep mobile apps updated.
FOXX - a Javascript application framework on top of ArangoDBArangoDB Database
This document discusses ArangoDB Foxx, a feature of ArangoDB that allows developers to define REST APIs and build single page web applications directly against the ArangoDB database using JavaScript. Foxx allows defining controllers with routes, parameterizing routes, generating documentation, and structuring models. It aims to provide a streamlined way for front-end developers to interface directly with the database without overhead typically involved in separating concerns across servers. The document outlines several Foxx features and capabilities including authentication, asset handling, and sharing code through a repository.
Isomorphism principle involves the use of a single code on the server and the client side of the application. The main advantages of the approach are reducing duplication, improving the quality of code, as well as accelerating the development process.
Episerver Find is an event-driven search engine built on top of Elasticsearch that is well-suited for Episerver projects. It separates commands and queries using CQRS, with Episerver handling simple queries and Elasticsearch handling more complex queries for improved performance. Choosing the right tools like Episerver for content management, Elasticsearch for search, and a customizable cloud platform allows building a scalable solution for projects of any size.
The document provides guidelines for building APIs that comply with the JSON API specification. It discusses best practices for document structure, fetching resources, CRUD operations, error handling, and caching. Some key recommendations include having a flat resource structure, paginating every endpoint, returning the full resource on POST creates, using custom actions for non-idempotent operations, and separating application concerns into different classes.
This document discusses scaling applications and services. It recommends taking a vertical approach by breaking monolithic applications into microservices that communicate through APIs. The Swagger framework is presented as a way to document and test APIs. Swagger can generate client libraries and helps services scale by enabling asynchronous communication through websockets. Taking this vertical, microservices approach with Swagger improves scalability by allowing dedicated teams to own individual services and improves performance through asynchronous communication protocols.
This document discusses service-oriented architecture (SOA) and how Ruby on Rails can be used to build SOA systems. It defines a service as a system that responds to HTTP requests, usually to modify or retrieve data. The document explains benefits of SOA like isolation, scalability, and reusability. It also introduces some Ruby tools like Sinatra and HTTParty that are useful for building RESTful services and APIs.
An Intense Overview of the React EcosystemRami Sayar
React has been named the front-end library to learn in 2016 however few people talk about the React without mentioning Flux (or Redux or React Native or Relay). In this talk, we will explore the ecosystem of tools and libraries that surround React. We will look at the various Flux implementations (including a short explanation of Flux) like Redux, at react-router, at some of the reactive database or reactive API libraries and finally at everyday tools and techniques that make the React developer happy. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal.
Wearables are hot these days. One might say it is a true revolution. We at APEX R&D are entering that wearables revolution as well, through Oracle Application Express. During this presentation, learn about the APEX R&D project and features of the research, including the Apple Watch. Wouldn't it be great to facilitate the work that people do in such a manner that they could do more other important things?
This document provides an introduction to Adobe Experience Manager (AEM), formerly known as CQ5. It discusses key aspects such as installation, prerequisites, content authoring, templates, components, workflows and more. The technical underpinnings including OSGi, JCR, Apache Sling, and ExtJS frameworks are also overviewed. Common terms are defined and the overall architecture and technology stack are depicted in detail.
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.
LoopBack is an open source API framework built on top of Express optimized for mobile and web. Connect to multiple data sources, write business logic in Node.js, glue on top of your existing services and data, connect using JS, iOS & Android SDKs.
Building a Node.js API backend with LoopBack in 5 MinutesRaymond Feng
LoopBack is an open source API framework built on top of Express optimized for mobile and web. Connect to multiple data sources, write business logic in Node.js, glue on top of your existing services and data, connect using JS, iOS & Android SDKs.
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
The service implements a RESTful Users web service with Rails 3. It customizes Rails to remove unnecessary components and optimize for a lightweight REST service. The service follows best practices for API design including using JSON format, placing JSON conversion in the controller, and returning appropriate HTTP status codes. Requests are designed to be stateless and atomic. Errors are returned in a standardized JSON format.
This document discusses best practices for designing RESTful APIs including planning for versioning, request and response formats, and authentication. It recommends using a RESTful approach, starting with a minimum viable API and maintaining features across versions. It suggests implementing versioning through URI design and sub-controllers, and handling requests and responses with JSON and the respond_with method in Rails. It also provides examples of authentication with Devise or request signatures, and testing API actions.
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.
A Practical Guide To Hypermedia APIs - Philly.rbSmartLogic
This document provides a practical guide to building hypermedia APIs. It introduces hypermedia APIs and the Hypertext Application Language (HAL) format. It discusses building representations of resources with links using serializers, and building clients that can traverse links and perform actions by loading and updating data through services. Helpful resources and gems for building APIs are also listed.
Picking the Right Node.js Framework for Your Use CaseJimmy Guerrero
Picking the Right Node.js Framework for Your Use Case with Shubhra Kar.
Topics covered in this webinar:
* Understanding the evolution of frameworks by design patterns
* Express
* Hapi
* Sails.js
* LoopBack.io
* Microservices
* IoT
A short talk delivered at Milan MEAN meetup, where I discuss shortcomings of existing REST API frameworks and explaining how LoopBack solves them for you.
Shopify uses Ruby on Rails, MySQL, and services like Memcached and Redis to handle a high volume of traffic. They optimize performance by caching content, running background jobs asynchronously, scaling database and application servers, and separating services like image processing. Monitoring tools help them understand bottlenecks and prioritize where to optimize next.
Design & Deploy a data-driven Web API in 2 hoursRestlet
Learn how to use the ROA/D process along with UX and DDD to design a proper web API, then learn how APISpark platform (PaaS) compares to a DIY approaches.
This document discusses strategies for delivering content across different devices and platforms. It covers responsive design which adapts the layout based on the device and adaptive design which provides optimized experiences for different devices. The document also discusses using PhoneGap to build cross-platform mobile apps and leveraging content synchronization to keep mobile apps updated.
FOXX - a Javascript application framework on top of ArangoDBArangoDB Database
This document discusses ArangoDB Foxx, a feature of ArangoDB that allows developers to define REST APIs and build single page web applications directly against the ArangoDB database using JavaScript. Foxx allows defining controllers with routes, parameterizing routes, generating documentation, and structuring models. It aims to provide a streamlined way for front-end developers to interface directly with the database without overhead typically involved in separating concerns across servers. The document outlines several Foxx features and capabilities including authentication, asset handling, and sharing code through a repository.
Isomorphism principle involves the use of a single code on the server and the client side of the application. The main advantages of the approach are reducing duplication, improving the quality of code, as well as accelerating the development process.
Ember.js is a new JavaScript framework for building ambitiously complex web applications. Taking lessons from the iOS development platform and other JavaScript frameworks that came before it, Ember embraces the idea that our applications are more alike than they are dissimilar. It encourages coding by convention, testing, and MVC patterns.
Building an app on Parse makes your data available via the Parse REST API. Using that API, ember-cli and Ember-Data, I’ll show you how to get started porting your native app to the mobile web.
The live coded demo is here: http://emberjs.jsbin.com/lizep/7/edit?html,js,output
PhoneGap allows developers to create mobile apps using web technologies like HTML, CSS, and JavaScript. It works by packaging these web assets into a native mobile application using its framework. Developers can access device capabilities like the camera through PhoneGap's JavaScript API. APEX applications can be included in PhoneGap by specifying the APEX URL instead of index.html. Alternatively, APEX can be loaded in an iframe within the PhoneGap webview container. Images captured using the camera API can be uploaded to APEX as a CLOB by converting the base64 encoded image to a BLOB.
1. PhoneGap is a framework that allows developers to build mobile apps using HTML, CSS, and JavaScript instead of platform-specific languages. It works by wrapping web pages in a native container so they can access native device functions and be deployed to app stores.
2. The document discusses PhoneGap features like access to device APIs, cross-platform deployment, and debugging tools. It also covers setting up the PhoneGap development environment and creating a basic "Hello World" app.
3. The document provides code examples for the app manifest, JavaScript to access device functions, and HTML/CSS pages. It also discusses PhoneGap advantages like multiple platform support and disadvantages like lack of support for all native features.
Consegi 2010 - Dicas de Desenvolvimento Web com RubyFabio Akita
Esta é a palestra que dei no Consegi 2010 em Brasília. Sobre dicas gerais sobre web, em particular implementando com Ruby on Rails. YSlow, Full Text Search e Tarefas Assíncronas.
My Slides about creating web sites which could also be useable even if you are not online! From Web Storages to Service Workers.
Presented at Mobiletech Conference in Munich March 2017
Fisl 11 - Dicas de Desenvolvimento Web com RubyFabio Akita
Performance de sites não tem a ver com a linguagem usada por baixo. O impacto maior é a arquitetura. Nesta palestra falo sobre YSlow, Resque e Solr como algumas das coisas que podemos fazer para melhorar a performance/escalabilidade de aplicações web.
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
The document discusses the history and evolution of JavaScript packaging and module bundling from 2000 to the present. It covers early approaches using individual script tags to load JS files, the introduction of minification tools like JSMin in 2003, concatenating files together in the late 2000s, module loaders like RequireJS in 2009, the rise of Node.js and package managers in 2010, and the modern dominance of bundlers like Webpack since 2014 which use loaders to bundle dependencies and assets into single files or chunks.
Presentation on how Meetup tackles web performance. Given on:
- Nov 17th, 2009 for the NY Web Performance Group (http://www.meetup.com/Web-Performance-NY/)
- Jan 26th, 2010 for NYC Tech Talks Meetup Group (http://www.meetup.com/NYC-Tech-Talks/)
1. Meetup discussed optimizing the performance of their event details page by externalizing scripts, moving scripts to the bottom of the page, reducing requests, lazy loading scripts, and using event delegation.
2. These changes reduced the page load time by 27% from 6.321 seconds to 4.643 seconds and reduced javascript requests by 50%.
3. Meetup also optimized static content serving by versioning, compressing, caching resources and using a CDN to improve performance further.
This document discusses Domain Specific Languages (DSLs) and their use in JavaScript. It begins by defining DSLs and providing examples of domain-specific lexicons. It then covers internal and external DSLs, and examples of JavaScript DSLs like JSSpec (for testing) and ActiveRecord.js (for object-relational mapping). The document concludes by discussing lessons learned from building DSLs in JavaScript, such as its lack of namespaces being a challenge but prototypal inheritance and object literals providing opportunities.
The document describes refactoring a large web application with JavaScript from a messy state to using Backbone.js and a modular structure. It was refactored iteratively over several sprints. Key changes included breaking the JS into page-specific files, adding namespacing, using Backbone views to modularize code, moving to a model-view pattern, and finally implementing a module system using RequireJS and Browserify to bundle dependencies. This resulted in cleaner, more maintainable and testable JavaScript code.
The document describes refactoring a large web application with JavaScript from a messy state to using Backbone.js and a modular structure. It was refactored iteratively over several sprints. Key changes included breaking the JS into separate page-specific files, adding namespacing, using Backbone views to modularize code, moving to a model-view pattern, and finally implementing a module system using RequireJS and Browserify for dependency management and bundling. This resulted in code that was better organized, testable, and maintainable.
Refactoring Large Web Applications with Backbone.jsStacy London
Have you ever starting working on a large, existing web application and jQuery spaghetti-code is all over the place? Your mind swirls as you try to figure out what code belongs to what component on what page. There are no JavaScript unit tests and you're terrified of making a change and breaking everything? I'm going to talk through the real life story of how Backbone.js helped to bring organization/structure, modularity, and testability to a large multi-page web application.
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Codemotion
Scala is the only language that can be used to produce code that can be "trans/compiled" for the JVM, in Javascript and in native binary. This allows to write libraries that are usable in JVM and JS using the power of functional programming (i.e. cats, scalaz), generic programming (i.e. shapeless) and macro/scalameta available in Scala. In this talk, we will see how to write a Scala application backend and a SPA (scala.js/scala-js-react) that share the same code as a business logic, datamodels and transparent API call (JVM/JS) in Scala (via autowire/akka-http/circe).
This document summarizes a presentation by Damilola Longe from the OWASP Foundation about web application defenses. It discusses the prevalence of applications in people's lives and security issues developers need to be aware of. It covers the OWASP Top 10 security risks like cross-site scripting and input validation. It provides examples of how to implement defenses against these risks using output encoding, sanitization libraries, and content security policy.
This document provides an overview of the Swing Application Framework and Beans Binding frameworks being developed as part of JSR 296 and JSR 295. It discusses the motivations for creating standard frameworks to simplify Swing development, outlines the key goals and components of the Swing Application Framework, and briefly introduces Beans Binding for keeping object properties in sync. The frameworks are aimed at addressing common issues for typical Swing applications and are intended for the Java SE 7 platform.
Video at http://www.youtube.com/watch?v=HaJnhYPLvx0
Large Drupal projects will generally have a themer or five working alongside the developers, site builders and designers. Themers are the magicians who transform what Drupal wants to do into what the designer wants it to do.
Smaller projects also usually need someone on the team who can make sense of Drupal's output, knows more CSS and JS than anyone else and can configure Views with their eyes closed.
The thing is — and whisper this, if possible redundancy concerns you — we can bypass the themer entirely.
With some simple configuration, a site builder can get Drupal to output exactly the semantic, lightweight markup that any modern front-end designer would be proud of. The designer can be left alone to write the most appropriate HTML, CSS and JS, while the site builder need only choose a couple of options when putting together content types, views and panels to make Drupal behave.
A friendly developer may have to lend a hand every now and then, but that’s it. You can get rid of the themer altogether.
http://2013.drupalcamplondon.co.uk/session/death-themer
Similar to APEX Alpe Adria 2019 - JavaScript in APEX - do it right! (20)
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Things to Consider When Choosing a Website Developer for your Website | FODUUFODUU
Choosing the right website developer is crucial for your business. This article covers essential factors to consider, including experience, portfolio, technical skills, communication, pricing, reputation & reviews, cost and budget considerations and post-launch support. Make an informed decision to ensure your website meets your business goals.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
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.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
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.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
2. • 10+ years working with APEX 🥰
• Presenter at HROUG, SIOUG, KSCOPE, APEX
World, APEX Alpe Adria, APEX Connect
• apex.world Member of the Year 2017.
• APEX related blog on apexbyg.blogspot.comMarko Gorički
Software Consultant@BiLog
@mgoricki
3. • Software development company
• Technology focus Oracle (APEX)
• APEX development, consulting,
educations, plugin development
• APEX solutions
• HR management software
• Reinsurance
28. Why inline JS is BAD?
•increases overall page size
•not reusable
•no minification
•no version control
•no error handling
•hard to maintain
•slower development
•no caching
29. #3
External
JavaScript is good
:)
• caching, file compression
• easier to maintain
• version control
• faster development time
• testing
• use of code/text editor
(IntelliSense)
• error handling
• minification
30. (1)Where to put static (JS) files?
(2)Where to reference them in APEX?
(3)How to write JS code?
31. (1)Where to put static (JS) files?
(2)Where to reference them in APEX?
(3)How to write JS code?
48. …is a tool that runs in the background watching for local static file
(e.g. JS, CSS) modifications, compiling them into a better format and
sending them back to your application instantly…
reduce development time
reduce repeating tasks
increase maintainability
better modularization
performance boost
enhanced teamwork
minification
concatenation
source mapping
error handling
easy file upload
browser synchronization
51. #5
Use JavaScript
Namespaces
• Namespace - container created to
hold a logical grouping
• Use them:
• to avoid naming collision
• not to pollute global namespace
• to organize code
52. Global Namespace
Stand-alone functions or variables
are polluting global namespace and
can lead to name collision
Global namespace should be
reserved for objects that have
system-wide relevance
function openModal(pDialogId, pDialogTriggerId, pSetFocusId, pClear ) {
$( "#" + pDialogId ).dialog("open");
}
theme42.js
aaapeks.custom.js
function openModal(pPageId){
var vUrl = apex.util.makeApplicationUrl({pageId:pPageId});
apex.navigation.openInNewWindow(vUrl);
};
60. #6
Document your code
with JSDoc
• documentation generator for
JavaScript
• using specific comments and tags
• integration with popular text editor
61. (function(aaapeks, debug, $) {
/**
* Private Log function, adds filename as a prefix
* @param {object} arguments - default arguments object
*/
function log(){
Array.prototype.unshift.call(arguments, '020_aaapeks.js');
debug.log.apply(debug,arguments);
};
/**
* Private Function
* @param {string} pParam1 - string parameter
* @private
*/
function privateFunction (pParam1) {
log('privateFunction', arguments);
apex.message.alert(pParam1);
};
/**
* Public function
* @param {string} pParam1 - string parameter
* @example
* aaapeks.publicFunction('This is a test');
66. Presentation Take Away
• use Dynamic Actions whenever possible, but don’t overuse them
• put custom JavaScript in external files
• use APEX Nitro to gain many benefits
• modularize JS into Namespaces and separate files
• document your JS code with JSDoc
• use hybrid approach
I will talk about how to do JavaScript in APEX and how to do it right
at least as I thing it’s right
as APEX we are also going into the dark mode, hope that this is right
focused on consulting and business solution development
very experienced in APEX
migrations from Oracle Forms, Excel, ADF…
everything I’m going to say today is based on my experience
maybe this isn’t the best way…
but it’s the way I do it, and for me, and for now, it’s the right way
If you have some arguments against it, please let me know
I would really like to hear them
as I said I will talk about JS
And the only book that I’ve read about JS is this…so!
Seriously…
don’t get me wrong with this presentation and start to write tons of JS in your APEX apps
you really don’t need to be JavaScript Expert to create amazing stuff
the time when you start to put custom code (JavaScript/CSS) in your APEX apps is the time when you start to be less productive
my advise to you is - stick to the native and declarative stuff, as long as you can
on long time basis thats the only way to go
better to invest more time to data modeling and business logic than to some nice UX effects that will later on create you some problems with maintaining your apps
but if you really need it, let’s see what’s the way to do it
So let’s get back to the topic of the presentation and see how to use JS in APEX.
- There are certainly some rules to follow.
- I have a question for you: what’s the first thought that you thing of when somebody says APEX and JavaScript
- I have one question for you
- What’t the first thing that you can think of when somebody mentions APEX and JavaScript
- it’s a result of the love between JS and APEX
one of the rules that I really like to follow is…
they enable us to create amazing APEX apps without knowing even a line of JavaScript
DECLARATIVE - you don’t need to know a lot of JavaScript to do it in APEX
it’s just few clicks away
SMALL FOOTPRINT - that doesn’t effect page performance so much
EXTENSIBLE - they are extensible with plugins and custom JS code
IMPLICIT DEBUGGING
REUSABLE - you can make them reusable by putting them to the global page
SIMPLE TO USE - somebody that never saw the line of JS code can make nice UX
they are good up to the some point
until you start to use too much inline/embedded JS
until you put too much DA on a single page
dynamic actions can quickly become bad and ugly
there are also some bad usage examples of JavaScript
and the second dot there (too much inline JavaScript) is applicable to APEX globally, not only DA
dynamic actions can quickly become bad and ugly
two worst case scenarios are that
you have too many DA per page
too much inline JavaScript (that implies not only to the dynamic actions but generally about APEX)
too many dynamic actions per page
why is that bad?
even if you go to the documentation and read about Dynamic Actions you can find one sentence
- it says that you should be mindful of the fact that the more dynamic actions you add to a page, the greater your overall page size will be
you will create something that’s really hard to maintain
somebody will ask now - what’s the good limit?
select application_id, page_id, count(1)
from apex_application_page_da
group by application_id, page_id
order by 3 desc ;
and the second thing that I’ve said I don’t like to see is too much inline JavaScript
if we take a look at HTML and how you can write JS
basically, there are 2 ways to do it
Internal/inline/embedded
is better to use embedded JS is for small code snippets
are so small that it’s slower to make HTTP request to the server
External:
in all other cases it’s better to use external js
file caching
reusability
smaller page
why not to apply this rule to the APEX
if we take a look at APEX
you can do the same (put your code internally or externally)
Ways to use JS in APEX
declarative/low code (Dynamic Actions)
embedded
Dynamic Actions (Execute JS Code, Set Value, Client Side Condition)
Page level (header, regions, properties...)
Templates
Plugins
external - static files
Instead of embedded JS you should always use Dynamic Actions
if we take a look at APEX
you can do the same (put your code internally or externally)
declarative/low code (Dynamic Actions)
embedded
Dynamic Actions (Execute JS Code, Set Value, Client Side Condition)
Page level (header, regions, properties...)
Templates
Plugins
external - static files
- here we should follow the same best practices as we do for PL/SQL - where you write your code outside of the APEX
the reason why I’ve put “declarative” into quotes is because you can do custom JS there
and Dynamic Actions are good until you start do to a lot of custom JS development in JavaScript Expression property
you should avoid putting there large chunks of code
same as you should avoid putting large chunks of PL/SQL to the processing pages
Dynamic Actions (Execute JS Code, Set Value, Client Side Condition)
Page level (header, regions, properties...)
Templates
Plugins
I’ve seen it everywhrere:
- in templates
- plugins
- event in PL/SQL procedure
please don’t do this
- napisati razloge zašto je JS loš
if inline JS bad we must agree that external is good
you don’t write your PL/SQL code in APEX
now when we can agree that External JS files are good
I have 3 more questions to answer
now when we agreed that External JS files are good I have 3 more questions to answer
this is standard APEX arhitecture
on the left side we have DB and APEX
in the middle ORDS deployed on Tomcat, Glassfish or Weblogic
and on the right - browser/client
Static Application Files and Static Workspace Files under the Shared Components
there are 3 cases when I use them:
1) development env - because it’s faster to upload
2) small apps or apps with small number of users
3) when It’s really hard to get access to app server
what I do for development and smaller apps is that I put static files to the APEX Application/Workspace Files
I will show you later on why for development
for smaller apps and for apps in some big companies is just pain in the ass to put something to web server where you have to include more than one person (DBA + Web Server Admin)
you can also put them to the Mid tier where the ORDS is
also, here are by default APEX static files
in some cases it can be slow to put them there, especially if you don’t have direct access to that server
but if you’re going for the performance
and if you want best possible option - that’s to put them on Front End Server (where you can use all those benefits:
file caching
gzip compression
- nginx - engine-x
also, as a matter of APEX static files, from version 18.1 you can also use Oracle CDN
maybe to free some resources over your servers
now when we agreed that External JS files are good I have 3 more questions to answer
there are several ways to reference them in APEX
depending on what’s you’re doing
if you use UT you can’t change theme or templates
most of the time I use only one concatenated file, so I’m not putting any JS reference on the page level
if I’m using Universal Theme - I’m putting my reference under the User Interface option when you go to the edit application
#APPLICATION_JAVASCRIPT# and #APPLICATION_CSS#
so how I do it…
it’s really simple… (next slide)
file location
web server
ORDS (application/workspace/theme files)
file reference
Nitro Config
Hybrid DA
there are several options to write JavaScript
you can go for a
Vanilla (plain) JavaScript,
jQuery
APEX API - build upon jQuery and it’s specific for APEX components
or just Google some code and copy paste it to the JS
there are several options to write JavaScript
you can go for a
Vanilla (plain) JavaScript,
jQuery
APEX API
or just Google some code and copy paste it to the JS
there are several options to write JavaScript
you can go for a
Vanilla (plain) JavaScript,
jQuery
APEX API
or just Google some code and copy paste it to the JS
there are several options to write JavaScript
you can go for a
Vanilla (plain) JavaScript,
jQuery
APEX API
or just Google some code and copy paste it to the JS
there are several options to write JavaScript
you can go for a
Vanilla (plain) JavaScript,
jQuery
APEX API
or just Google some code and copy paste it to the JS
in any project where I have to write a line of JavaScript or CSS I use APEX nitro
- and what APEX nitro is…
I won’t talk about the details, because I had presentation last year APEX Alpe Adria
I will just make a quick overview
the best definition that I came up with is…
but that’s not all, Nitro will bring you a whole lot more
left side - features
right side - benefits
the only prerequisite is to have Node and in APEX you need to put on Before Header process
I won’t repeat myself about nitro because I’ve had presentation last year, so just quickly
tool that enables you to work on static files (CSS, JS) locally
runs in a backround watching for local file changes (CSS and JS)
on every change it processes files and syncs them to the browser automatically
runs in the background watching for local static file (CSS, JS modification)
processes the files
syncs the files to the browser automatically
FEATURES
in processing part you’ll get all different features
error handling
Benefits
so, how it works
1) you locally create specific folder structure locally (with src and dist) as displayed on 1
2) and you put some files into this structure
3) Nitro magic happens there, and your files are transformed into some better format (besed on your projects configuration)
only everything that’s inside JS and CSS folder is processed to the dist, everything else is just copied
processed - it’s depended on your configuration:
I always use minification and concatenation
you need to write a lot of JS code so that your concatenated files would be very big
the important thing is in the middle, that’s the way I structure my files
you can see that I split files into meaningful modules, same as I do with the PL/SQL code in packages
I do the same with CSS and PL/SQL
most of the time I try to write things that are reusable so I put them in some general files
if I have any of page specific JS I put it in separate files
ORDER is important
but from time to time I have something page specific. Everything like that I put into page specific files.
same as I modularize my code into PL/SQL packages, I’m doing also with CSS and JS files
- the feature of Nitro that I always use is concatenation (CSS and JS files)
if we closely look at the slide that I’ve showed before you can see how I structure my files
basically I split them in some meaningful modules, same as I do with PL/SQL code in packages
most of the time I try to write things that are reusable so I put them in some general files
but from time to time I have something page specific. Everything like that I put into page specific files.
ORDER is important
same as I modularize my code into PL/SQL packages, I’m doing also with CSS and JS files
and what happens there is that I have only two file references in APEX app
at the end I only have 2 files that are referenced from APEX
CDN for static files
file location - for development App Files, for prod Web Server
- Theme Depended - only if working with custom theme
- Custom CSS/JS into User Interface
if we take a look back to my source folder you can see that I modularize my files
as I said, same as my PL/SQL packages, into sam logical files
lets look inside file
first of all I use Namespaces
Namespace - container created to hold a logical grouping like packages in PL/SQL
they say that there’s no serious JS application without namespace
Use them:
to avoid collisions - to avoid collisions with other objects or variables in the global namespace/ minimize risk of code collision
to organize blocks of functionalities into easily manageable groups and to make your code maintainable
not to pollute global namespace (possible performance issues )
When you read about JS there are some best practices:
Global namespace should be reserved for objects that have system-wide relevance
and I try to avoid to use global variables and functions
https://javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/
https://stackoverflow.com/questions/8862665/what-does-it-mean-global-namespace-would-be-polluted
technically, JavaScript by default doesn’t provide namespaces by default
Global variables should be reserved for objects that have system-wide relevance
so if you create stand-alone function or variable you’re polluting global namespace
window object is top object = global namespace
window.apex => apex top object
first of all I use namespaces
Namespace
container created to hold a logical grouping
and to avoid collisions with other objects or variables in the global namespace
it’s useful to organize blocks of functionalities into easily manageable groups
and I try to avoid to use global variables and functions
Global namespace should be reserved for objects that have system-wide relevance
http://www.apexexplorer.com/how-to-show-and-hide-inline-dialog-in-oracle-apex-using-javascript/
function openModal(pUrl){window.open(pUrl);}
so if you create stand-alone function or variable you’re polluting global namespace
window object is top object = global namespace
window.apex => apex top object
first of all I use namespaces
Namespace
container created to hold a logical grouping
and to avoid collisions with other objects or variables in the global namespace
it’s useful to organize blocks of functionalities into easily manageable groups
and I try to avoid to use global variables and functions
Global namespace should be reserved for objects that have system-wide relevance
http://www.apexexplorer.com/how-to-show-and-hide-inline-dialog-in-oracle-apex-using-javascript/
function openModal(pUrl){window.open(pUrl);}
technically, JavaScript by default doesn’t provide namespaces by default, so we use objects
the approach that I mostly use is Dynamic Namespacing - I think same as APEX development team
1) you create object (aaapex) - some logical content
2) then you create self-invoking function and you pass namespace object as an argument
if there would be any name collision, you need only to change the name of the object and the argument
3) after that you can add some code to your namespace
one of the benefits of this approach is that you can have also private functions and variables
the next thing I like to add here is other namespaces/object
next thing that I always add to my namespace is private log function
similar to the logger for PL/SQL
really helps in debugging pages with lots of JavaScript or Dynamic Actions
and it’s really flexible, you don’t even need to add arguments
what was missing there
prerequisite: Node.js
APEX dev team use it
you need to put comments in specific format by using asterisks and slash
declarative is under quotes because you can still write custom JS
custom events - hooks
they are event driven (browse, framework, component, custom)
the more dynamic actions add to a page the greater your overall page size is
they are good up to the some point
until you start to use too much inline/embedded JS
until you put too much DA on a single page
možda je bolje da bude ovako malo bulleta
declarative is under quotes because you can still write custom JS
custom events - hooks
they are event driven (browse, framework, component, custom)
the more dynamic actions add to a page the greater your overall page size is
they are good up to the some point
until you start to use too much inline/embedded JS
until you put too much DA on a single page
primjer s hide(), show(), setValue(), getValue()
zaključak poslije ovog slajda bi trebao biti da je bolje koristiti DA > APEX API
- Namespace - namespace is simply a global object that contains a number of functions (top namespace object i apex with lots of sub namespaces like apex.item, apex.util…
older non-namespaced APIs - start with charactes $
interfaces - functions that return objects that contain functions known as methods and variables (actions, item, model, region, htmlBuilder)
widgets - UI Widgets +