The document discusses 10 common mistakes made when using functions and streams in Java. It covers issues such as doing too much in a lambda expression, mutating objects in streams, not consuming streams, incorrect ordering of stream operations, and improperly unpacking Optional values. Examples are provided to illustrate correct usage and avoid the mistakes.
The document discusses 10 common mistakes made when using functions in Java, including: doing too much in a single lambda expression; using block lambdas instead of transforming them to methods; not consuming streams; mutating objects in streams; overusing forEach; incorrect order of stream operations; creating infinite streams; and improperly unpacking Optional values.
Ten common mistakes made with Functional Java JBCNConf18Brian Vermeer
Slides from my talk "Ten common mistakes made with Functional Java" @ JBCNConf 2018 Barcelona.
Beware that the slides are just here as a reference to people who attended this particular version of the talk. Please do not make assumptions purely from the slides alone ... there is a story with it ...really ;)
Common mistakes made with Functional Java include: doing too much in a single lambda expression, mutating objects which violates functional programming principles, improperly using streams without consuming them or mutating objects within streams, overusing forEach which can lead to side effects, and not properly handling checked exceptions within lambda expressions. Following best practices such as keeping lambda expressions focused on a single task, returning new immutable objects from functions, fully consuming streams, and wrapping checked exceptions can help avoid these issues.
The document discusses functional programming concepts in Java, including lambda expressions, streams, and immutable objects. It provides examples of using lambda expressions to pass functions as arguments. It emphasizes that streams should not mutate objects and explains how to return new copies instead. It also discusses avoiding side effects with forEach and creating higher-order functions to reduce duplicate code.
1. Common mistakes when using functional Java include doing too much in a single lambda expression, mutating objects within streams which are immutable, and overusing forEach which should be avoided.
2. When working with optionals, it is important to unpack them before use rather than accessing the value directly, and methods like orElse, orElseGet, and orElseThrow can be used to define alternative flows.
3. When working with streams of optionals, flatMap can be used to flatten the stream.
1. Common mistakes with Functional Java include doing too much in a single lambda, using block lambdas when a method would be better, mutating objects within streams, and not consuming streams.
2. Streams are lazy and should not be reused or mutate objects. It is better to return new copies of objects from streams.
3. Overusing forEach can indicate an opportunity to use more functional techniques.
4. With Optionals, always unpack values before using them and consider alternative flows like orElse and orElseGet.
Common mistakes made with Functional JavaBrian Vermeer
1. Common mistakes when using Functional Java include doing too much in a single lambda expression, using block lambdas when a method would be better, and mutating objects within streams.
2. Streams should not be used to mutate objects and can only be operated on once. It is better to return new copies of objects rather than mutating them.
3. ForEach should be avoided for anything other than side effects, and infinite streams need limiting to avoid running forever.
4. Optionals force unpacking values and calling get without checking for empty can cause exceptions.
Java 8: the good, the bad and the ugly (JBCNConf 2017)Brian Vermeer
This document provides an overview and summary of key features in Java 8, including:
- Lambda expressions which allow implementation of functional interfaces in a more concise way
- Default methods which allow extension of interfaces without breaking existing implementations
- Streams API which supports functional-style operations on streams of elements
- Date and time API improvements with new java.time package
- Optional as a container class for nullable values
Java 8: the good, the bad and the ugly (Oracle Code Brussels 2017)Brian Vermeer
This document summarizes key features of Java 8 including lambdas, functional interfaces, streams, and optional. It discusses lambda expressions and how they allow implementing functional interfaces more concisely. Streams are introduced as a way to process collections lazily and in parallel. Exceptions in lambdas and streams are covered. Optional is presented as a wrapper for null values. Best practices are provided around these new Java 8 features.
This document provides an overview of Flask-SQLAlchemy, which is an extension for Flask that adds support for SQLAlchemy to Flask applications. It covers basics like setting up a Flask-SQLAlchemy application, defining models, and performing CRUD operations. It also discusses more advanced topics like relationships between models, using the ORM vs manual mapping, and using the underlying SQLAlchemy API. The document includes numerous code examples to illustrate the concepts.
Slides of my talk I gave @ PyRE.it in ReggioEmilia about developing a Rest Api in Python using a little bit of Flask and SqlAlchemy.
www.pyre.it
www.alessandrocucci.it/pyre/restapi
This document provides an overview of Java versions from Java 5 through Java 9 and introduces key features of Java 8 such as lambda expressions, functional interfaces, and streams. The document discusses how lambda expressions allow for more concise implementation of interfaces like Comparator compared to Java 7. It also covers optional, exceptions in lambda expressions, and best practices for writing lambda expressions and using streams in Java 8.
How to export import a mysql database via ssh in aws lightsail wordpress rizw...AlexRobert25
Suppose you want a database backup of any instances ‘ in AWS Lightsail WordPress ‘ through putty or SSH. For that, first, we need to create an instance
This document provides an overview of setting up a Flask application with common extensions for functionality like user authentication, database management, forms validation, and sending email. It demonstrates initializing extensions like Flask-SQLAlchemy, Flask-Login, Flask-Migrate, Flask-Script, and Flask-Mail. Models and views are defined to handle user registration and login. The Flask application is configured and commands are provided to initialize the database, run migrations, and start a development server.
Smolder is a web-based continuous integration smoke server that uses the Test Anything Protocol (TAP) format for test reporting. It supports multiple notification channels like email and ATOM and stores test results in a SQLite or MySQL database. Tests can be run on Smolder using CGI::Application or Plack and results can be uploaded from the command line using a script that communicates with the Smolder server API.
This document discusses Flask, a Python-based web application framework. It provides an overview of Flask fundamentals like backend development, virtual environments, routes, templates, and error handling. It also covers additional Flask features like extensions, MongoDB integration, and building REST APIs. The document uses code samples and file structure examples to demonstrate how to structure and deploy a Flask application on Heroku.
The document provides an overview of advanced patterns in Flask including:
1. State management using application and request contexts to bind resources like databases.
2. Resource management using teardown callbacks to commit transactions and release resources.
3. Customizing response creation by passing response objects down a stack or replacing implicit responses.
4. Server-sent events for real-time updates using Redis pub/sub and streaming responses.
5. Separating worker processes for blocking and non-blocking tasks using tools like Gunicorn and Nginx.
6. Signing data with ItsDangerous to generate tokens and validate user activations without a database.
7. Customizing Flask like adding cache bust
This document provides an overview of Flask, a microframework for Python. It discusses that Flask is easy to code and configure, extensible via extensions, and uses Jinja2 templating and SQLAlchemy ORM. It then provides a step-by-step guide to setting up a Flask application, including creating a virtualenv, basic routing, models, forms, templates, and views. Configuration and running the application are also covered at a high level.
The Apache HTTP Server, commonly called Apache, is a free and open-source cross-platform web server software released under the terms of the Apache License 2.0. The document provides a cheat sheet of useful commands and configurations for Apache including listing virtual hosts and modules, rewriting URLs, authentication, log rotation, data privacy, and security mitigations.
This document summarizes how to use a pre-commit hook with SVN to check code for syntax and coding standards before committing. The hook runs PHPCodeSniffer on files being committed, catching output to parse for errors. It addresses issues like having no local files by using a PHP stream wrapper to access file contents from the SVN repository instead of temporary files.
The document discusses techniques for using SQLite databases in iOS applications. Some key points covered include:
SQLite is a file-based, lightweight database that is well suited for mobile applications. The pure C API can be difficult to use directly, so it's best to abstract it away. The document reviews methods for opening and copying databases, executing queries using the SQLite API, and using prepared statements.
Let us explore Java 8 features and start using it in your day to day work. You will be surprised how Java has evolved to become so different yet easy & powerful. In this presentation, we discuss Java 8 Stream API.
This document summarizes server-side and client-side testing approaches and tools. It then introduces TRunner, an open source test runner tool inspired by Selenium and inspired to support converting HTML test suites to YAML format. The document demonstrates using TRunner, including its file structure and how to fork and use it to run own test suites.
Stranger Danger: Your Java Attack Surface Just Got Bigger | JBCNConf 2022Brian Vermeer
The document discusses the security challenges of modern applications that rely heavily on open source code and containers. It notes that 80-90% of application codebases are open source, and 80% of vulnerabilities are found in indirect dependencies. It also discusses how applications are built, deployed, and scaled rapidly through containers and infrastructure as code. The document argues that this new application profile requires a DevSecOps approach that integrates security throughout the development lifecycle rather than a "shift left" approach. It presents the tooling offered by Snyk to help developers securely use open source, containers, and infrastructure as code.
1. The document discusses problems with software development such as lack of security focus throughout development and siloed security expertise.
2. It notes that open source usage has exploded but attackers are targeting vulnerabilities in open source libraries, meaning one vulnerability can impact many users.
3. The proposed solution is adopting a DevSecOps approach by focusing on team culture, development processes, and tools to integrate security from the beginning of the development lifecycle.
Don't be a trojan - Codemotion Amsterdam 2019Brian Vermeer
This document discusses the importance of security in software development. It warns that software systems can become compromised over time if security is not prioritized from the beginning. It recommends designing systems with security in mind from the start, implementing secure development practices like automated security testing, code reviews that consider privacy and data exposure, and centralizing logs to detect issues. Maintaining security requires ongoing efforts like monitoring systems in production for vulnerabilities.
Java 8: the good, the bad and the ugly (JBCNConf 2017)Brian Vermeer
This document provides an overview and summary of key features in Java 8, including:
- Lambda expressions which allow implementation of functional interfaces in a more concise way
- Default methods which allow extension of interfaces without breaking existing implementations
- Streams API which supports functional-style operations on streams of elements
- Date and time API improvements with new java.time package
- Optional as a container class for nullable values
Java 8: the good, the bad and the ugly (Oracle Code Brussels 2017)Brian Vermeer
This document summarizes key features of Java 8 including lambdas, functional interfaces, streams, and optional. It discusses lambda expressions and how they allow implementing functional interfaces more concisely. Streams are introduced as a way to process collections lazily and in parallel. Exceptions in lambdas and streams are covered. Optional is presented as a wrapper for null values. Best practices are provided around these new Java 8 features.
This document provides an overview of Flask-SQLAlchemy, which is an extension for Flask that adds support for SQLAlchemy to Flask applications. It covers basics like setting up a Flask-SQLAlchemy application, defining models, and performing CRUD operations. It also discusses more advanced topics like relationships between models, using the ORM vs manual mapping, and using the underlying SQLAlchemy API. The document includes numerous code examples to illustrate the concepts.
Slides of my talk I gave @ PyRE.it in ReggioEmilia about developing a Rest Api in Python using a little bit of Flask and SqlAlchemy.
www.pyre.it
www.alessandrocucci.it/pyre/restapi
This document provides an overview of Java versions from Java 5 through Java 9 and introduces key features of Java 8 such as lambda expressions, functional interfaces, and streams. The document discusses how lambda expressions allow for more concise implementation of interfaces like Comparator compared to Java 7. It also covers optional, exceptions in lambda expressions, and best practices for writing lambda expressions and using streams in Java 8.
How to export import a mysql database via ssh in aws lightsail wordpress rizw...AlexRobert25
Suppose you want a database backup of any instances ‘ in AWS Lightsail WordPress ‘ through putty or SSH. For that, first, we need to create an instance
This document provides an overview of setting up a Flask application with common extensions for functionality like user authentication, database management, forms validation, and sending email. It demonstrates initializing extensions like Flask-SQLAlchemy, Flask-Login, Flask-Migrate, Flask-Script, and Flask-Mail. Models and views are defined to handle user registration and login. The Flask application is configured and commands are provided to initialize the database, run migrations, and start a development server.
Smolder is a web-based continuous integration smoke server that uses the Test Anything Protocol (TAP) format for test reporting. It supports multiple notification channels like email and ATOM and stores test results in a SQLite or MySQL database. Tests can be run on Smolder using CGI::Application or Plack and results can be uploaded from the command line using a script that communicates with the Smolder server API.
This document discusses Flask, a Python-based web application framework. It provides an overview of Flask fundamentals like backend development, virtual environments, routes, templates, and error handling. It also covers additional Flask features like extensions, MongoDB integration, and building REST APIs. The document uses code samples and file structure examples to demonstrate how to structure and deploy a Flask application on Heroku.
The document provides an overview of advanced patterns in Flask including:
1. State management using application and request contexts to bind resources like databases.
2. Resource management using teardown callbacks to commit transactions and release resources.
3. Customizing response creation by passing response objects down a stack or replacing implicit responses.
4. Server-sent events for real-time updates using Redis pub/sub and streaming responses.
5. Separating worker processes for blocking and non-blocking tasks using tools like Gunicorn and Nginx.
6. Signing data with ItsDangerous to generate tokens and validate user activations without a database.
7. Customizing Flask like adding cache bust
This document provides an overview of Flask, a microframework for Python. It discusses that Flask is easy to code and configure, extensible via extensions, and uses Jinja2 templating and SQLAlchemy ORM. It then provides a step-by-step guide to setting up a Flask application, including creating a virtualenv, basic routing, models, forms, templates, and views. Configuration and running the application are also covered at a high level.
The Apache HTTP Server, commonly called Apache, is a free and open-source cross-platform web server software released under the terms of the Apache License 2.0. The document provides a cheat sheet of useful commands and configurations for Apache including listing virtual hosts and modules, rewriting URLs, authentication, log rotation, data privacy, and security mitigations.
This document summarizes how to use a pre-commit hook with SVN to check code for syntax and coding standards before committing. The hook runs PHPCodeSniffer on files being committed, catching output to parse for errors. It addresses issues like having no local files by using a PHP stream wrapper to access file contents from the SVN repository instead of temporary files.
The document discusses techniques for using SQLite databases in iOS applications. Some key points covered include:
SQLite is a file-based, lightweight database that is well suited for mobile applications. The pure C API can be difficult to use directly, so it's best to abstract it away. The document reviews methods for opening and copying databases, executing queries using the SQLite API, and using prepared statements.
Let us explore Java 8 features and start using it in your day to day work. You will be surprised how Java has evolved to become so different yet easy & powerful. In this presentation, we discuss Java 8 Stream API.
This document summarizes server-side and client-side testing approaches and tools. It then introduces TRunner, an open source test runner tool inspired by Selenium and inspired to support converting HTML test suites to YAML format. The document demonstrates using TRunner, including its file structure and how to fork and use it to run own test suites.
Stranger Danger: Your Java Attack Surface Just Got Bigger | JBCNConf 2022Brian Vermeer
The document discusses the security challenges of modern applications that rely heavily on open source code and containers. It notes that 80-90% of application codebases are open source, and 80% of vulnerabilities are found in indirect dependencies. It also discusses how applications are built, deployed, and scaled rapidly through containers and infrastructure as code. The document argues that this new application profile requires a DevSecOps approach that integrates security throughout the development lifecycle rather than a "shift left" approach. It presents the tooling offered by Snyk to help developers securely use open source, containers, and infrastructure as code.
1. The document discusses problems with software development such as lack of security focus throughout development and siloed security expertise.
2. It notes that open source usage has exploded but attackers are targeting vulnerabilities in open source libraries, meaning one vulnerability can impact many users.
3. The proposed solution is adopting a DevSecOps approach by focusing on team culture, development processes, and tools to integrate security from the beginning of the development lifecycle.
Don't be a trojan - Codemotion Amsterdam 2019Brian Vermeer
This document discusses the importance of security in software development. It warns that software systems can become compromised over time if security is not prioritized from the beginning. It recommends designing systems with security in mind from the start, implementing secure development practices like automated security testing, code reviews that consider privacy and data exposure, and centralizing logs to detect issues. Maintaining security requires ongoing efforts like monitoring systems in production for vulnerabilities.
- The document discusses best practices for writing functional Java code including using immutable objects, avoiding side effects, and leveraging streams and higher-order functions.
- Some key points covered include using immutable objects to reduce complexity, ensuring streams do not mutate objects, and creating higher-order functions to reduce duplicate code and insert behaviors.
- Optional is discussed as a way to encapsulate null checks and provide alternative flows like orElse, orElseGet and orElseThrow.
The document discusses the growing threats of cybercrime and importance of security by design in software development. It notes that data has become the new gold and cybercrime damages reached $3 trillion worldwide in 2016. The document advocates storing only necessary data and limiting access. It provides examples of how software systems can expose private data if not designed securely from the start. Throughout, it emphasizes close collaboration between developers and security experts to implement controls like centralized logging, strong passwords, and automated security testing in development practices.
This document discusses cybersecurity threats and best practices for software development. It notes that cybercrime is a large and growing business, with damages estimated at $3 trillion worldwide in 2016. The document advocates designing systems with security in mind from the start, avoiding exposing unnecessary data, logging all activity, reviewing code for vulnerabilities, using secure password practices, and working with security teams. Developers are warned that without care, software can be "trojanized" over time to expose more data or capabilities than intended.
Ten common mistakes made in Function JavaBrian Vermeer
1. Ten common mistakes made when using Functional Java are: doing too much in a single lambda expression, mutating objects, returning streams instead of collecting them, not consuming streams, overusing forEach, incorrect order of stream operations, infinite streams, unpacking Optionals incorrectly, not handling exceptions properly, and not using alternative flows for Optionals like orElse and orElseGet.
2. Some ways to avoid these mistakes include breaking lambda expressions into smaller functions, returning copies of objects instead of mutating, collecting streams after operations, consuming all streams, using intermediate and terminal operations appropriately, and wrapping checked exceptions.
This document provides a summary of Java 8 features including lambdas, functional interfaces, streams, and optional. It discusses lambda expressions and how they allow implementing functional interfaces in a more concise way compared to anonymous classes. Key functional interfaces like Predicate, Function, and Comparator are demonstrated. The document also covers stream operations for processing collections lazily and optionally handling potential null references.
This document discusses identity theft and cybercrime as growing threats. Developers are urged to integrate security practices like code reviews, using prepared statements to prevent SQL injection, hashing passwords, and preventing cross-site scripting. Following standards like OWASP Application Security Verification Standard (ASVS) can help developers build more secure applications and protect user data and identities. While cybercrime has become very profitable, developers must be aware of security risks and see themselves as part of the solution through secure development.
This document discusses identity theft and cybercrime as growing threats. Developers are urged to integrate security practices like code reviews, using prepared statements to prevent SQL injection, hashing passwords, and preventing cross-site scripting. Following standards like OWASP Application Security Verification Standard (ASVS) can help developers build more secure applications and protect user data and identities. As threats increase, developers must make security a priority in the development process to help address these issues rather than be part of the problem.
This document provides an overview of Java 8 features such as lambda expressions, streams, and optional. Key points include:
- Java 8 introduced lambda expressions to provide concise syntax for anonymous functions. Common functional interfaces like Predicate and Function are used.
- Streams allow processing collections in a functional way through intermediate and terminal operations like map, filter, collect. They are lazy evaluated and cannot mutate data.
- Optional is a wrapper for values that may be null, avoiding null checks in favor of functional-style operations like orElse, ifPresent.
Identity theft: Developers are key - JavaZone17Brian Vermeer
Identity theft and cybercrime pose real threats that are growing as organized criminal networks engage in cybercrime as a profitable business. As developers, we must be aware of security risks and integrate protections into our work, including securing passwords, preventing SQL injection, and avoiding cross-site scripting vulnerabilities. The Open Web Application Security Project (OWASP) provides guidance on application security best practices developers should follow.
The document discusses security best practices for software developers. It emphasizes integrating security into the development process through code reviews, using standards like OWASP-ASVS, and addressing vulnerabilities like SQL injection, XSS, and weak password storage. Developers are advised to protect themselves and be aware of security risks, consider the trust placed in dependencies, and ensure applications are secure by design from the beginning.
Identity theft: Developers are key - JFokus 2017Brian Vermeer
Identity theft is perhaps the most concerning kind of Cybercrime nowadays. The most concerning aspect of identity theft is that once you are a victim it is hard to get rid of the consequences. Although as developers we are probably well aware of the risks towards cybercrime and identity theft in particular, in many parts we as developers play a big role in making identity theft happen. It is not only about how secure is your program, but how aware are you? Or better said how naive are we in practice as developers in this big bad world.
♦️Sales Commission in Odoo is really easy to use and manage commissions payment, Sales Commission Dashboard for Quick counts of Total Sales Commission, Total Invoice Commission, Total payment Commission. Save your time for individual sales commission calculation and create the invoice for any commission and many more useful features.
🔗Visit and Buy Now : https://bit.ly/4fBJ5Ok
♦️Axistehnolabs Present Manage your sales commission Payment in odoo with Sales commission dashboard, calculation of commission based on invoice, product, product categories and product margin
✅Sales Commission Odoo module includes :
👉Sales Commission Based On Sale Order
👉Sales Commission Based On Invoice
👉Sales Commission Based On Payment
👉Calculate Commission Based on Products
👉And More.....
✅Just Click on below sales commission payment odoo App link🔗 And explore more interesting features of sales commission payment odoo module
✅App download now :🔗
Odoo 18 : https://bit.ly/4fBJ5Ok
Odoo 17 : https://bit.ly/3KCDt9i
Odoo 16 : https://bit.ly/3w0iKEZ
Odoo 15 : https://bit.ly/3vAszKL
Odoo 14 : https://bit.ly/35QTVBI
Odoo 13 : https://bit.ly/3J8exDY
Odoo 12 : https://bit.ly/3shwCIO
👉Explore more odoo Apps : https://bit.ly/3oFIOCF
👉Want A Free DEMO ? :📩 [email protected]
👉Want to discuss ?: 🌐https://www.axistechnolabs.com/
👉Looking Odoo services : 👇
https://www.axistechnolabs.com/services/odoo-development
👉Contact Us : 091066 49361
#odoo #Odoo18 #odoo17 #odoo16 #odoo15 #odooerp #odooapp #Odooservices #odoodev #salescommission #odootag #odoonewfeatures #PaymentCommission #salescommissionrates #odooapps #odoomodule #odooerp #growth #businesssolution #salescommissionpayment #saleordercommission #InvoiceCommission #MonthlyCommission #odoonewfeatures #commissionspaymentModule #sales #business #commissionpayment #GenerateCommission #levelupwithodoo #socialmedia #digitalmarketing #OdooSalesCommissionmodule #odooimplementation #axistechnolabs #OdooSolutions
A Claims Processing System enhances customer satisfaction, efficiency, and compliance by automating the claims lifecycle—enabling faster settlements, fewer errors, and greater transparency. Explore More - https://www.damcogroup.com/insurance/claims-management-software
BIS Safety Software Canada - EHS SOFTWAREBIS Safety
Managing safety, health, and environment programs shouldn’t feel overwhelming. This EHS software acts as a step-by-step solution—helping teams track incidents, run inspections, manage compliance, and stay organized. It's like having a complete safety program in one easy-to-use platform.
Ready to simplify your safety program? Get started with EHS software today.
Skilling up your dev team - 8 things to consider when skilling-up your dev teamDerk-Jan de Grood
Slides of my DevOps Pro
Europe 2025 presentation Vilnius:
Most IT organizations face challenges of being underskilled or understaffed, making it difficult to find skilled developers and manage workload efficiently. This leads to risks, dependencies, and delays, particularly when critical tasks depend on a few key developers.
Investing in employee development is crucial for improving performance and attracting talent, but it requires strategic planning and collaboration. Companies are aware of this, so why do they keep failing?
Successful upskilling involves team autonomy, leadership buy-in, and dedicated focus. This presentation outlines eight key considerations for effective upskilling: defining clear roles, identifying needed skills, conducting gap analyses, planning for future needs, exploring diverse training methods, securing leadership support, actively monitoring progress, and embedding upskilling into HR processes. By addressing these aspects, organizations can foster technical excellence and continuous improvement.
Progecad 2025 Professional Cracked [Latest]Luisa Weist
progeCAD 2025 Professional Crack is a compatible 2D / 3D CAD application that works with AutoCAD DWG files and imports Autodesk Revit, IFC, and SolidWorks files! This Site is providing ✅ 100% Safe Crack Link:
Copy This Link and paste it in a new tab & get the Crack File
↓
➡ 🌍📱👉COPY & PASTE LINK👉👉👉 👉 https://crackproduct.com/progecad-professional/
Flyerssoft leads the way in AR/VR and Metaverse development services, creating immersive and interactive digital experiences that transform how businesses engage with their audiences. Our expert team designs cutting-edge augmented reality apps, virtual reality games, and interconnected metaverse environments that boost user engagement, enhance training efficiency, and open new opportunities across industries such as education, entertainment, retail, and more. By leveraging advanced technologies like Unreal Engine, Unity, blockchain, and AI, Flyerssoft delivers scalable, secure, and innovative solutions tailored to your business needs. We partner with Fortune 500 companies, entrepreneurs, and brands to build next-generation virtual spaces that inspire and revolutionize digital interaction, ensuring your business stays ahead in this rapidly evolving landscape.
Shortcomings of EHS Software – And How to Overcome ThemTECH EHS Solution
Shortcomings of EHS Software—and What Overcomes Them
What you'll learn in just 8 slides:
- 🔍 Why most EHS software implementations struggle initially
- 🚧 3 common pitfalls: adoption, workflow disruption, and delayed ROI
- 🛠️ Practical solutions that deliver long-term value
- 🔐 Key features: centralization, security, affordability
- 📈 Why the pros outweigh the cons
Perfect for HSE heads, plant managers, and compliance leads!
#EHS #TECHEHS #WorkplaceSafety #EHSCompliance #EHSManagement #ehssoftware #safetysoftware
Frontier AI Regulation: What form should it take?Petar Radanliev
Frontier AI systems, including large-scale machine learning models and autonomous decision-making technologies, are deployed across critical sectors such as finance, healthcare, and national security. These present new cyber-risks, including adversarial exploitation, data integrity threats, and legal ambiguities in accountability. The absence of a unified regulatory framework has led to inconsistencies in oversight, creating vulnerabilities that can be exploited at scale. By integrating perspectives from cybersecurity, legal studies, and computational risk assessment, this research evaluates regulatory strategies for addressing AI-specific threats, such as model inversion attacks, data poisoning, and adversarial manipulations that undermine system reliability. The methodology involves a comparative analysis of domestic and international AI policies, assessing their effectiveness in managing emerging threats. Additionally, the study explores the role of cryptographic techniques, such as homomorphic encryption and zero-knowledge proofs, in enhancing compliance, protecting sensitive data, and ensuring algorithmic accountability. Findings indicate that current regulatory efforts are fragmented and reactive, lacking the necessary provisions to address the evolving risks associated with frontier AI. The study advocates for a structured regulatory framework that integrates security-first governance models, proactive compliance mechanisms, and coordinated global oversight to mitigate AI-driven threats. The investigation considers that we do not live in a world where most countries seem to be wishing to follow our ideals, for various reasons (competitiveness, geo-political dominations, hybrid warfare, loss of attractiveness of the European model in the Big South, etc.), and in the wake of this particular trend, this research presents a regulatory blueprint that balances technological advancement with decentralised security enforcement (i.e., blockchain).
We’re honored to share the official keynote presentation that opened CFCamp 2025, led by Luis Majano, creator of ColdBox, BoxLang, and CEO of Ortus Solutions.
This PDF features the full slide deck from Day 1’s keynote, where Luis presented a powerful vision for the future of modern CFML development, highlighted the evolution of BoxLang, and shared how Ortus is helping shape a dynamic future for developers around the world.
A heartfelt thank you to the CFCamp team for the opportunity to lead the keynote and showcase the innovation, community, and open source spirit driving the next chapter of CFML. 🚀
How OnePlan & Microsoft 365 Ensure Strategic Alignment with AI-Powered Portfo...OnePlan Solutions
Organizations must double down on high-impact initiatives and cut low-value efforts. In this session, see how OnePlan, built on Microsoft 365, helps organizations make informed, AI-powered prioritization decisions, optimize funding, and reallocate constrained resources for maximum impact.
BoxLang is the new CF-compatible server and CLI tool. It’s extensible easily with modules, which means you can write your own built in functions, tags, and more for your own use or to share with the community on ForgeBox. Let’s find out how.
📄 Getting Started with BoxLang – CFCamp 2025 Session with Luis Majano
Explore the foundations of BoxLang, the next-generation dynamic JVM language created by Ortus Solutions, in this introductory session led by its creator, Luis Majano, at CFCamp 2025.
This PDF contains the full slide deck from the session, walking attendees through the key concepts, syntax, and use cases of BoxLang, along with live coding examples and tips for building modern web applications. Ideal for developers seeking hands-on experience with a language designed to be modular, productive, and future-proof.
A special thank you to the CFCamp team for providing us with the space to share our vision and help the community take its first steps with BoxLang. 🌐
Daily Agile Snippets That Boost Team Focus and FlexibilityOrangescrum
In this blog, I’ll break down the smallest, most effective Agile practices that can transform how your team operates daily. Expect real-world strategies, practical routines, and stats-backed insights to help you sprint, pivot, and win one focused day at a time.
Choosing an authorized Microsoft reseller ensures that your business gets authentic software, professional licensing guidance, and constant technical support.Certified resellers offer secure deployment, compliance with Microsoft standards, and tailored cloud solutions — helping businesses maximize ROI, reduce risks, and stay up to date with the latest Microsoft innovations.
15 Years of Insights from a TDD Practitioner (NDC Oslo)Dennis Doomen
Unit Testing and its more proactive version Test Driven Development have both opponents as well as proponents. And I get why. It's not easy to do, and if you do it wrong, it hurts. I've shot myself in the feet more than once. But if you do it right, you'll never want to go back to a situation where you don't write tests for all your code. That's what let me to create a popular .NET framework like Fluent Assertions.
But TDD doesn't mean you really need to write all tests upfront. The reality is much more pragmatic than the books like you to believe. And this isn't just about test code. A big chunk (if not all) of unit testing and TDD is about designing your solution to be testable.
In this talk I'll share everything I've learned over 15 years of practicing Test Driven Development. I'll cover topics like
- The value of unit testing and TDD
- How to be pragmatic with TDD
- How architecture and code design affects testability
- How to find the right scope of testing
- Tips to write tests that are self-explanatory
VALiNTRY360’s Salesforce Experience Cloud Consulting services empower organizations to build personalized, engaging digital experiences for customers, partners, and employees. Our certified Salesforce experts help you design, implement, and optimize Experience Cloud portals tailored to your business goals. From self-service communities to partner collaboration hubs, we ensure seamless integration, enhanced user engagement, and scalable solutions. Whether you're improving customer support or streamlining partner communication, VALiNTRY360 delivers strategic consulting to maximize the value of Salesforce Experience Cloud. Trust us to transform your digital experiences into powerful tools that drive loyalty, efficiency, and growth. Partner with VALiNTRY360 to elevate every user interaction.
For more info visit us https://valintry360.com/salesforce-experience-cloud
Unlock the full potential of cloud computing with BoxLang! Discover how BoxLang’s modern, JVM-based language streamlines development, enhances productivity and simplifies scaling in a serverless environment.
Portland Marketo User Group: MOPs & AI - Jeff Canada - May 2025BradBedford3
Jeff Canada is the first MOPs hire at OpenAI, the creator of ChatGPT. He is a team of 1 in a super fast growing company, which is familiar story for many of us. His presentation, originally presented at Mopsapolooza 2024, he gives you an outline of First Steps to Smarter MOPs with the warning label: This is all brand new to everyone; don’t have to jump in head first!
Jeff's story is how he was able to accomplish more via his “AI employees”. Jeff will talk about how he has used OpenAI to help him staff his team with:
AI Researcher
AI Analyst
AI Content Generator
AI Developer
These additional teammates assist with Vendor and Event Selection, Content Generation, Coding Cleanup, and Thinking! His wrap up includes, Guardrails, words of caution, and steps to get you started.
7. Lambda Expression
In computer programming, a lambda expression is a function definition
that is not bound to an identifier. Anonymous functions are often:[1]
• arguments being passed to higher-order functions, or
• used for constructing the result of a higher-order function that
needs to return a function.
8. Lambda in Java
Anonymous Inner functions
Satisfy a Functional Interface
They only exist in runtime
Single Line <input> -> <output> or Block <input> -> { function body }
14. A stream is NOT a
data structure
A stream is NOT a
data structure
15. What is Stream ( in Java)
Flow of data derived from a Collection
Can create a pipeline of function that can be evaluated
Intermediate result
Lazy evaluated by nature
Can transform data, cannot mutate data
17. List<Beer> beers = getBeers();
Stream<Beer> beerStream = beers.stream();
beerStream.forEach(b ->System.out.println(b.getName())); //1
beerStream.forEach(b ->System.out.println(b.getAlcohol())); //2
Only use a Stream once
Line 2 will give:
java.lang.IllegalStateException: stream has already been operated upon or
closed
28. Functional Programming
In computer science, functional programming is a programming
paradigma style of building the structure and elements of computer
programs that treats computation as the evaluation of mathematical
functions and avoids changing-state and mutable data.
It is a declarative programming paradigm, which means programming is
done with expressions or declarations instead of statements.
— wikipedia
30. – Kevlin Henney
“Asking a question should not
change the answer, nor
should asking it twice”
31. Immutable objects
Less moving parts
Easier to reason about code
No need to keep a mental map of the state an object is in.
32. Stream cannot mutate
private final List<Beer> beers = List.of(new Beer("Heineken", 5.2),
new Beer("Amstel", 5.1));
public void execute() {
List<Beer> beersNew = beers.stream()
.map(beer -> beer.setName(“foo”)) //not allowed
.collect(Collectors.toList());
}
33. Stream should not mutate !
private class Beer {
String name;
Double alcohol;
public Beer setName(String name){
this.name = name;
return this;
}
}
private final List<Beer> beers = List.of(new Beer("Heineken", 5.2), new Beer("Amstel",
5.1));
public void execute() {
List<Beer> beersNew = beers.stream()
.map(beer -> beer.setName("foo"))
.collect(Collectors.toList());
System.out.println(beers);
System.out.println(beersNew);
}
34. Stream should not mutate !
private class Beer {
String name;
Double alcohol;
public Beer setName(String name){
this.name = name;
return this;
}
}
private final List<Beer> beers = List.of(new Beer("Heineken", 5.2), new Beer("Amstel",
5.1));
public void execute() {
List<Beer> beersNew = beers.stream()
.map(beer -> beer.setName("foo"))
.collect(Collectors.toList());
System.out.println(beers);
System.out.println(beersNew);
}
35. Return a new copy
private class Beer {
String name;
Double alcohol;
public Beer withName(String name){
return new Beer(name, this.alcohol);
}
}
private final List<Beer> beers = List.of(new Beer("Heineken", 5.2), new Beer("Amstel",
5.1));
public void execute() {
List<Beer> beersNew = beers.stream()
.map(beer -> beer.withName("foo"))
.collect(Collectors.toList());
System.out.println(beers);
System.out.println(beersNew);
}
42. Assignment
Beers -> Brewer -> Country
I want the first 3 unique brewers countries from the beer library as comma separated String
beerLib.stream()
.map(Beer::getBrewer)
.distinct()
.limit(3)
.map(Brewer::getCountry)
.map(String::toUpperCase)
.collect(Collectors.joining(“,”));
43. Assignment
Beers -> Brewer -> Country
I want the first 3 unique brewers countries from the beer library as comma separated String
beerLib.stream()
.map(Beer::getBrewer)
.distinct()
.limit(3)
.map(Brewer::getCountry)
.map(String::toUpperCase)
.collect(Collectors.joining(“,”));
// wrong
44. Assignment
Beers -> Brewer -> Country
I want the first 3 unique brewers countries from the beer library as comma separated String
beerLib.stream()
.map(Beer::getBrewer)
.map(Brewer::getCountry)
.map(String::toUpperCase)
.distinct()
.limit(3)
.collect(Collectors.joining(“,”));
// correct
46. Infinite stream
IntStream.iterate(0, i -> ( i + 1) % 2)
.distinct()
.limit(10)
.forEach(i -> System.out.println(i));
// will run forever
IntStream.iterate(0, i -> ( i + 1) % 2)
.limit(10)
.distinct()
.forEach(i -> System.out.println(i));
//will terminate
47. Infinite stream
IntStream.iterate(0, i -> ( i + 1) % 2)
.parallel()
.distinct()
.limit(10)
.forEach(i -> System.out.println(i));
// will run forever on all threads.
48. Solution
1. Look closely at the order of operations
- prevent incorrect answers
2. Only use infinite streams when absolutely necessary.
rather use:
IntStream.range(0,10);
IntStream.rangeClosed(0,10);
IntStream.iterate(0, i -> i < 10, i -> i + 1); //java 9 and up
50. Optional
Java’s implementation of the Maybe Monad
Encapsulation to handle possible null value
Consider it a wrapper where a value can be absent
Force the user to unpack the Optional before using it.
58. orElseThrow
public void execute() {
Optional<String> maybeString = Optional.empty();
maybeString
.map(this::runIfExist)
.orElseThrow(() -> new RuntimeException("Optional was empty"));
}
59. orElse
public void execute() {
Optional<String> maybeString = Optional.of("foo");
String newString = maybeString
.map(this::runIfExist)
.orElse(runIfEmpty());
System.out.println(newString);
}
private String runIfExist(String str) {
System.out.println("only run if optional is filled ");
return str;
}
private String runIfEmpty() {
System.out.println("only run if empty");
return "empty";
}
60. orElse
public void execute() {
Optional<String> maybeString = Optional.of("foo");
String newString = maybeString
.map(this::runIfExist)
.orElse(runIfEmpty());
System.out.println(newString);
}
private String runIfExist(String str) {
System.out.println("only run if optional is filled ");
return str;
}
private String runIfEmpty() {
System.out.println("only run if empty");
return "empty";
}
only run if optional is filled
only run if empty
foo
61. orElseGet
public void execute() {
Optional<String> maybeString = Optional.of("foo");
String newString = maybeString
.map(this::runIfExist)
.orElseGet(() -> runIfEmpty());
System.out.println(newString);
}
private String runIfExist(String str) {
System.out.println("only run if optional is filled ");
return str;
}
private String runIfEmpty() {
System.out.println("only run if empty");
return "empty";
}
62. orElseGet
public void execute() {
Optional<String> maybeString = Optional.of("foo");
String newString = maybeString
.map(this::runIfExist)
.orElseGet(() -> runIfEmpty());
System.out.println(newString);
}
private String runIfExist(String str) {
System.out.println("only run if optional is filled ");
return str;
}
private String runIfEmpty() {
System.out.println("only run if empty");
return "empty";
}
only run if optional is filled
foo
63. what else?
- When using orElse(x), make sure x doesn’t contain any side effects
- Only use orElse() to assign a default value
- Use orElseGet() to run an alternative flow
69. Exception Utility
@FunctionalInterface
public interface CheckedFunction<T, R> {
public R apply(T t) throws Throwable;
}
public static <T, R> Function<T, R> wrap(CheckedFunction<T, R> function) {
return t -> {
try {
return function.apply(t);
} catch (Throwable ex) {
throw new RuntimeException(ex);
}
};
};
beerLib.stream()
.map(beer -> wrap(doSomething(beer)))
.collect(Collectors.toList());
70. Either type
public class Either<L, R> {
private final L left;
private final R right;
private Either(L left, R right) {
this.left = left;
this.right = right;
}
public static <L,R> Either<L,R> Left( L value) {
return new Either(value, null);
}
public static <L,R> Either<L,R> Right( R value) {
return new Either(null, value);
} …
}
71. Either type
private Either<Exception, String> canGoWrong(Integer input) {
if (input > 10) {
return Either.Left(new RuntimeException("larger then 10"));
}
return Either.Right("["+input+"]");
}
List<Either<Exception, String>> canGoWrongs = IntStream.range(0,12)
.mapToObj(i -> canGoWrong(i))
.collect(Collectors.toList());
74. //java 9
List myList = List.of(1,2,3,4,5)
//pre Java9
List myList = Arrays.asList(new String[] {“a”,"b","c"});
Creating collections
75. //java 9
List myList = List.of(1,2,3,4,5)
//pre Java9
List myList = Arrays.asList(new String[] {"a","b","c"});
// since Java 8
List myList = Stream.of("a","b","c","d").collect(Collectors.toList());
Creating collections
76. private Beer foo(){...}
private Beer bar(){...}
private Beer fooBar(){…}
Beer myBeer = new Beer();
Beer result = fooBar(bar(foo(myBeer)));
Using Stream.of
77. private Beer foo(){...}
private Beer bar(){...}
private Beer fooBar(){…}
Beer myBeer = new Beer();
Beer result = fooBar(bar(foo(myBeer)));
Using Stream.of
Beer result = Stream.of(myBeer)
.map(this::foo)
.map(this::bar)
.map(this::fooBar)
.findFirst().get();
78. String sentence = "The quick fox jumps over the lazy dog. ";
String[] words = sentence
.trim()
.toUpperCase()
.split(" ");
for(String word : words) {
System.out.println(word);
}
Using Stream.of
79. String sentence = "The quick fox jumps over the lazy dog. ";
String[] words = sentence
.trim()
.toUpperCase()
.split(" ");
for(String word : words) {
System.out.println(word);
}
Stream.of(sentence)
.map(String::trim)
.map(String::toUpperCase)
.map(str -> str.split(" "))
.flatMap(array -> Arrays.stream(array))
.forEach(System.out::println);
Using Stream.of