Using Magnolia in a Microservices ArchitectureMagnolia
Want to learn how to manage and deploy Magnolia in a microservices architecture? Here we will present the main patterns identified in such an architecture and describe how to implement them with Magnolia. We demonstrate an experimental approach based on Docker to create and orchestrate several microservices connected to Magnolia.
With Java 9, modularity comes to your doorstep (whether you ordered it or not). This isn't your average language feature: making the most out of it may involve rewiring your brain. In this session we explore the benefits of a modular codebase using Java 9 modules. Because who doesn’t like more reliable and secure applications, meanwhile killing the dreaded classpath?
After reviewing the basic concepts of modules, we'll explore modularity patterns that enhance your design and development skills. We all have existing software, so migration of codebases to a modular world is an important topic as well. Automatic modules and other new concepts are added to your toolbox to this end.
Want examples? We've got plenty in this practical and code-driven talk. Even if you intend to use Java 9 without modules, this talk helps you prevent common issues. You'll be ready for Java 9 before you know it.
Both speakers are currently writing “Java 9 Modularity” for O’Reilly, expected early 2017. They have extensive experience under the belt already with the Java 9 Jigsaw early access builds.
Using Magnolia in a Microservices ArchitectureMagnolia
Want to learn how to manage and deploy Magnolia in a microservices architecture? Here we will present the main patterns identified in such an architecture and describe how to implement them with Magnolia. We demonstrate an experimental approach based on Docker to create and orchestrate several microservices connected to Magnolia.
With Java 9, modularity comes to your doorstep (whether you ordered it or not). This isn't your average language feature: making the most out of it may involve rewiring your brain. In this session we explore the benefits of a modular codebase using Java 9 modules. Because who doesn’t like more reliable and secure applications, meanwhile killing the dreaded classpath?
After reviewing the basic concepts of modules, we'll explore modularity patterns that enhance your design and development skills. We all have existing software, so migration of codebases to a modular world is an important topic as well. Automatic modules and other new concepts are added to your toolbox to this end.
Want examples? We've got plenty in this practical and code-driven talk. Even if you intend to use Java 9 without modules, this talk helps you prevent common issues. You'll be ready for Java 9 before you know it.
Both speakers are currently writing “Java 9 Modularity” for O’Reilly, expected early 2017. They have extensive experience under the belt already with the Java 9 Jigsaw early access builds.
Spring Boot on Amazon Web Services with Spring Cloud AWSVMware Tanzu
SpringOne 2021
Session Title: Spring Boot on Amazon Web Services with Spring Cloud AWS
Speakers: Maciej Walkowiak, Software Consultant at Independent; Matej Nedic, Software engineer at Ingemark
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...VMware Tanzu
SpringOne 2021
Session Title:The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchronous to Reactive
Speakers: Kuassi Mensah, Director of Product Management at Oracle; Michael McMahon, Principal Member of Technical Staff at Oracle
In an era of microservices and cloud computing, Micronaut incorporates support for cloud-friendly reliability patterns - from load balancing and circuit breakers to shared configuration and service discovery - and makes these features available and easily configurable from within your application. From the ground up, Micronaut applications are "natively" cloud-native.
The Micronaut framework values at the core, enabling code simplicity and developer productivity. Micronaut offers many additional features for a new class of applications (e.g., microservices, serverless deployments, etc.) that may not be well-suited for monoliths.
Jakarta EE is now over 20 years old and despite its age, it is as relevant today as it was back in 1999. It is one of the few open standards for developing enterprise applications with multiple independent vendor implementations. Its APIs are central to developing Java based cloud solutions. It is as relevant today as it was back in 1999. This presentation will provide context to Jakarta EE and why businesses choose to use it.
Following new trends, as microservices architecture style and developer-friendly BPM solutions, we want to present our active open source projects using Grails
Refactor your Java EE application using Microservices and Containers - Arun G...Codemotion
Codemotion Rome 2015 - This talk will provide a quick introduction to Docker images (build time), containers (run time), and registry (distribution). It shows how to take an existing Java EE application and package it as a monolithic application as a single Docker image. The application will then be refactored in to multiple microservices and assembled together using orchestration. Unit and integration testing of such applications will be discussed and shown as well. Design patterns and anti-patterns that show how to create cluster of such applications will be demonstrated and discussed.
Faster java ee builds with gradle [con4921]Ryan Cuprak
JavaOne 2016
It is time to move your Java EE builds over to Gradle! Gradle continues to gain momentum across the industry. In fact, Google is now pushing Gradle for Android development. Gradle draws on lessons learned from both Ant and Maven and is the next evolutionary step in Java build tools. This session covers the basics of switching existing Java EE projects (that use Maven) over to Gradle and the benefits you will reap, such as incremental compiling, custom distributions, and task parallelization. You’ll see demos of all the goodies you’ve come to expect, such as integration testing and leveraging of Docker. Switching is easier than you think, and no refactoring is required.
This talk is a fast-paced introduction to the Micronaut framework, from creating the first app to orchestrating a microservice federation and deploying to the cloud. We will cover the basics of writing Micronaut apps, communication between services, building for resiliency, managing configuration, and deploying to a cloud provider. By the time we’re finished, you’ll have a good understanding of the features of the framework and be ready to start building and deploying your own apps with Micronaut. Buckle up and start the countdown!
'Elevate your webapps with Scala & Lift', as presented on JEEConf 2012, Kiev, Ukraine
Also see: http://branchandbound.net/blog/conferences/2012/05/jeeconf-tripreport/
In September 2017 the long-awaited release of Java 9 gave us a new module system in Java. It also kick-started the release-train of frequent Java releases, with Java 11 being the first long-term supported Java version poised to take modules into the mainstream. So what has happened since the introduction of the module system?
This talk will provide an overview adoption of modules in open-source libraries, IDEs, build tools, and so on. It will also feature tools that have emerged to make working with modules easier. Expect an honest overview of the current state of modules in Java, with lots of demos to show what's possible. After this talk you can start developing your own modular Java application without hesitation!
Going beyond the basics of how to use Spock this talk will discuss writing expressive, readable & maintainable specifications using the features of Spock and the Groovy language itself. Concrete examples backed up with live coding will cover a range of topics such as how to structure assertions, effective use of the where: block, appropriate use of mocks and stubs, and driving specifications from a database. The focus will always remain on creating tests that are readable, robust and helpful when you need to deal with regressions.
Spring Boot on Amazon Web Services with Spring Cloud AWSVMware Tanzu
SpringOne 2021
Session Title: Spring Boot on Amazon Web Services with Spring Cloud AWS
Speakers: Maciej Walkowiak, Software Consultant at Independent; Matej Nedic, Software engineer at Ingemark
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...VMware Tanzu
SpringOne 2021
Session Title:The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchronous to Reactive
Speakers: Kuassi Mensah, Director of Product Management at Oracle; Michael McMahon, Principal Member of Technical Staff at Oracle
In an era of microservices and cloud computing, Micronaut incorporates support for cloud-friendly reliability patterns - from load balancing and circuit breakers to shared configuration and service discovery - and makes these features available and easily configurable from within your application. From the ground up, Micronaut applications are "natively" cloud-native.
The Micronaut framework values at the core, enabling code simplicity and developer productivity. Micronaut offers many additional features for a new class of applications (e.g., microservices, serverless deployments, etc.) that may not be well-suited for monoliths.
Jakarta EE is now over 20 years old and despite its age, it is as relevant today as it was back in 1999. It is one of the few open standards for developing enterprise applications with multiple independent vendor implementations. Its APIs are central to developing Java based cloud solutions. It is as relevant today as it was back in 1999. This presentation will provide context to Jakarta EE and why businesses choose to use it.
Following new trends, as microservices architecture style and developer-friendly BPM solutions, we want to present our active open source projects using Grails
Refactor your Java EE application using Microservices and Containers - Arun G...Codemotion
Codemotion Rome 2015 - This talk will provide a quick introduction to Docker images (build time), containers (run time), and registry (distribution). It shows how to take an existing Java EE application and package it as a monolithic application as a single Docker image. The application will then be refactored in to multiple microservices and assembled together using orchestration. Unit and integration testing of such applications will be discussed and shown as well. Design patterns and anti-patterns that show how to create cluster of such applications will be demonstrated and discussed.
Faster java ee builds with gradle [con4921]Ryan Cuprak
JavaOne 2016
It is time to move your Java EE builds over to Gradle! Gradle continues to gain momentum across the industry. In fact, Google is now pushing Gradle for Android development. Gradle draws on lessons learned from both Ant and Maven and is the next evolutionary step in Java build tools. This session covers the basics of switching existing Java EE projects (that use Maven) over to Gradle and the benefits you will reap, such as incremental compiling, custom distributions, and task parallelization. You’ll see demos of all the goodies you’ve come to expect, such as integration testing and leveraging of Docker. Switching is easier than you think, and no refactoring is required.
This talk is a fast-paced introduction to the Micronaut framework, from creating the first app to orchestrating a microservice federation and deploying to the cloud. We will cover the basics of writing Micronaut apps, communication between services, building for resiliency, managing configuration, and deploying to a cloud provider. By the time we’re finished, you’ll have a good understanding of the features of the framework and be ready to start building and deploying your own apps with Micronaut. Buckle up and start the countdown!
'Elevate your webapps with Scala & Lift', as presented on JEEConf 2012, Kiev, Ukraine
Also see: http://branchandbound.net/blog/conferences/2012/05/jeeconf-tripreport/
In September 2017 the long-awaited release of Java 9 gave us a new module system in Java. It also kick-started the release-train of frequent Java releases, with Java 11 being the first long-term supported Java version poised to take modules into the mainstream. So what has happened since the introduction of the module system?
This talk will provide an overview adoption of modules in open-source libraries, IDEs, build tools, and so on. It will also feature tools that have emerged to make working with modules easier. Expect an honest overview of the current state of modules in Java, with lots of demos to show what's possible. After this talk you can start developing your own modular Java application without hesitation!
Going beyond the basics of how to use Spock this talk will discuss writing expressive, readable & maintainable specifications using the features of Spock and the Groovy language itself. Concrete examples backed up with live coding will cover a range of topics such as how to structure assertions, effective use of the where: block, appropriate use of mocks and stubs, and driving specifications from a database. The focus will always remain on creating tests that are readable, robust and helpful when you need to deal with regressions.
Mum, I want to be a Groovy full-stack developerGR8Conf
How many times have you ever heard the term "Full-Stack developer"? In most of the cases it means that you have to be fluent with a backend language, html, javascript, maybe Android or iOS... What if I told you that you can be a Full-Stack developer using only Groovy?
In this talk I'll present the technological stack of Polaromatic, the application with I won the Learning Spring Boot contest, and you'll learn that it's possible to write the whole stack with Groovy: Backend, Javascript, HTML, Android, test, build tool,... Isn't that amazing?
Groovy is a dynamic language that provides different types of metaprogramming techniques. In this talk we’ll mainly see runtime metaprogramming. You’ll understand the Groovy Meta-Object-Protocol (MOP), the metaclass, how to intercept method calls, how to deal with method missing and property missing, the use of mixins, traits and categories. All of these topics will be explained with examples in order to understand them.
Also, you’ll see a little bit about compile-time metaprogramming with AST Transformations. AST Transformations provide a wonderful way of manipulating code at compile time via modifications of the Abstract Syntax Tree. You’ll see a basic but powerful example of what we can do with AST transformations.
Creating and testing REST contracts with Accurest Gradle GR8Conf
REST does not come with an in-built contract compliance mechanism, which in many ways is a great thing. However, while working with microservice-based systems, it often appears that a practical mechanism that would provide help in shaping and describing REST contracts would come in handy. Similarly, creating integration and acceptance tests in such systems presents many challenges.
In this talk, I will present Accurest, a Gradle plugin that allows for both: easily shaping REST contracts and verifying if our app adheres to them using automatically generated Spock tests. I will show how, using Accurest, we can quickly generate automatically-tested stubs from simple Groovy DSL scripts. I will talk about the typical usages and script examples, as well as possible problems and ways of handling them.
Building reusable components as micro frontends with glimmer js and webcompo...Andrei Sebastian Cîmpean
Reusing features across multiple stacks. A story of trade-offs and approach choices to make it easy to run features independent of the tech stack in which they are running.
A Lecture given in Aalto University course "Design of WWW Services".
Single page app is already several years old web application paradigm that is now gaining traction due to the interest towards HTML5 and particularly cross-platform mobile (web) applications. The presentation overviews the single page application paradigm and compares it with other web app paradigms.
The presentation uses Backbone.js as the sample and gives practical tips on how to best structure Backbone.js applications. It contains an extensive set of tips and links in the notes section.
The reader is adviced to download the presentation for better readability of the notes.
This is the Grails WOT presentation delivered at SpringOne 2GX.
It looks at the current state of the development landscape, how Grails can help you work with all the new technologies, and what the future might hold.
GlassFish architect Jerome Dochez presents the architecture (kernel, services, extensibility) and the status of GlassFish v3, a lightweight and modular application server based on OSGi and able to run both Java (EE) and scripting (Rails, Grails, PHP, etc...) applications. Fairly technical.
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
Mack Hardy, Dave Tarc, Damien Norris of Affinity Bridge presenting at Pacific Northwest Drupal Summit in Vancouver, October 5th, 2013. The presentation walks through management of releases, deployment strategies and build strategies with drupal features, git, and make files. Performance and caching is also covered, as well as specific tips and tricks for configuring apache and managing private files.
Speaker: Jacob Aae Mikkelsen
Once you have successfully developped your application in Grails, Ratpack or your other favorite framework, you would like to see it deployed as fast and painless as possible, right?
This talk will cover some of the supporting cast members of a succesful modern infrastructure, that developers can understand and use efficiently, and with good DevOps practices.
Key elements are
Docker
Infrastructure as Code
Container Orchestration
The demo-goods will hopefully be on our side, as this talk includes quite some live demos!
Geb is a wonderful tool for testing your Html pages. However, scraping is an unexplored use case where Geb can shine too.
In this talk I will show you different scraping examples powered by Geb, after which you will be able to use Geb beyond functional testing
How to create a conference android app with Groovy and AndroidGR8Conf
In this talk Sergio del Amo will show you how to:
Create conference websites with Wordpress custom post types and custom fields
Use a Groovy Android library to consume your Wordpress’s generated JSON API
Develop a simple Android App with Groovy which shows the conference data.
After this talk you will be able to jump into development for Android with Groovy and consume easily custom Wordpress backends
So you've built your neato Ratpack microservices, but it's already 5 o`clock and you're still fighting your way through testing, deployment and interaction instead of having your usual at the bar; What a PITA! In this talk I'll show you how to harness the power of Gradle and Docker to ease you through service orchestration and make it to the bar on time for happy hour!
"Clean Code" by Bob Martin is probably one of the most important practical documents out there; A must read for all developers, if you will. In this talk I will show how you can use Groovy and its rich ecosystem to apply the discussed principals, thus cleaning and vastly improving your codebase while still maintaining your sanity and joy.
By Noam Tenne
Cut your Grails application to pieces - build feature pluginsGR8Conf
Reuse has been taught in CS classes since the very beginning. But how should you practically do to reuse functionality from one Grails application in other applications? The plugin subsystem in Grails is an awesome machinery that makes it easy to separate functionality into distinct plugins. Plugins that can be used in many applications with similar functionality. Yet have unique features without creating a maintenance hell.
In this session you will learn how to think "feature plugins" when you're designing and developing your Grails applications. We will cover topics like inter-plugin communication using application events and how to support different look and feel for each application using "theme plugins". You will also learn how each plugin can be tested and documented separately from the application.
After this session "grails create-plugin" will be your best friend.
Grails has great performance characteristics but as with all full stack frameworks, attention must be paid to optimize performance. In this talk Lari will discuss common missteps that can easily be avoided and share tips and tricks which help profile and tune Grails applications.
One of the goals of Grails 3 is to reach out of the servlet container. Grails 3 has a concept of application profiles for choosing a certain set of core plugins to use. In this talk Lari will present how Ratpack fits in Grails 3. He will also talk about how Grails 3 supports micro service architectures.
Grails & DevOps: continuous integration and delivery in the cloudGR8Conf
Nowadays, companies require very short release cycles, especially in lean startup environments.
But to release often:
deployments should be routine, not terrifying.
configuration should require a few clicks, not a thousand-line shell script.
problems should be easy to spot, not buried in a log file.
You are a developer that need to release every week or every day with a single git commit and zero-downtime? Easily spot release performance or bugs issues? If required, roll back to previous version in few seconds and one click? And you don't want to manage any dedicated repository, monitoring, build, staging, production servers? So this talk is for you!
We will explore Lean startup and DevOps concepts and share our experience on how to create a simple and fully automated build pipeline for Grails apps with a live demo, based on SaaS/cloud services: GitHub, Travis CI, NewRelic, AWS (ElasticBeanstalk, CloudFront), etc.
Functional testing your Grails app with GEBGR8Conf
GEB (pronounced 'jeb') is a browser automation solution.
It brings together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language.
We'll cover what it takes to test your grails application with GEB and discuss successful strategies and drawbacks about the tool.
Deploying, Scaling, and Running Grails on AWS and VPCGR8Conf
This talk will cover how to get your application running on AWS VPC and related services. We will go over some related services and their current state like RDS, autoscaling, s3, cloudfront, s3fs, ebs, elastic beanstalk, etc and how your Grails application can benefit from using these. The networking can also be confusing with your application so we'll cover the basics here as well. I will share lots of random nuggets of information that I have learned the hard and and recommended practices of configuration of your VPC as well.
Grails is a complete web application framework that runs on the Java JVM. It is a full-stack framework, and handles all layers from the user interface to the persistence layer. Grails is based on known and proven technologies, such as the Spring Framework and Hibernate. It has been around since 2006, and has made considerable progress around the globe in the past few years.
This workshop aims to show how to get from 0 to running application with Grails in three hours - so hold on to your hats! We will touch the following points:
Grails application structure
Domain model and persistence
Controllers
Services
Testing
User Interface
Groovy is a well established player in the JVM since a few years ago. It's increased popularity across the years has spawned several projects that conform the Groovy Ecosystem. You've probably heard of Grails, Gradle, Griffon and Spock. But what about the rest of projects that are just waiting around the corner to be discovered and make your life easier? This talk presents them tools and libraries that use Groovy as the main driving force to get the job done.
Groovy 3 and the new Groovy Meta Object Protocol in examplesGR8Conf
Groovy3 and the new MOP are closing in! But the time of this talk the new MOP will not be done, but I will show some examples of how old Groovy code will look like transferred to the new MOP.
Apache Camel is versatile integration library that supports a huge number of components, enterprise integration patterns, and programming languages.
In this this talk I first introduce you to Apache Camel and its concepts. Then we move on to see how you can use the Groovy programming language with Camel as a first class Groovy DSL to build integration flows.
You will also learn how to build a new Camel and Groovy app from scratch from a live demo.
And we also touch how you can use Camel from grails using the grails-camel plugin.
I will also show the web console tools that give you insight into your running Apache Camel applications, including visual route diagrams with tracing, debugging, and profiling capabilities.
This session will be taught with a 50/50 mix of slides and live demos, and it will conclude with Q&A time.
CRaSH the shell for the Java Virtual MachineGR8Conf
CRaSH is the open source shell for the JVM. The shell can be accessed by various ways, remotely using network protocols such as SSH, locally by attaching a shell to a running virtual machine or via a web interface. Commands are written Groovy and can be developed live making the extensibility of the shell easy with quick development cycles. Since the version 1.3, the REPL also speaks the Groovy language, allowing Groovy combination of command using pipes.
CRaSH comes with commands such as thread management, log management, database access and JMX. The session will begin with an introduction to the shell. The main part of the session will focus on showing CRaSH commands development with few examples, showing how easy and powerful the development is.
The audience will learn how to use CRaSH for their own needs: it can be a simple usage or more advanced like developing a command or embedding the shell in their own runtime like a web application or a Grails application.
Grooscript is an open source project, a little framework that convert groovy code to javascript, more info in grooscript.org.
Javascript is cool now, a vibrant community with many new developments. Web development is moving to client size and you must be start to worry about javascript and all the new awesome tools for it. With grooscript, you can join this new wave with our lovely groovy. You can code all the logic of your application in groovy, test with spock, use gradle or any other java or groovy framework. Grooscript will convert your application code to javascript and then you can use it in the browser or Node.js.
In this talk I will introduce about grooscript, how started, how can be used, explore its limitations,… Also I will show grooscript grails plugin, and what do you can do with it. We will take a look at Node.js plugin and gradle plugin, and how to use this tools. I will show some demos of different ways to use grooscript.
CRaSH the shell for the Java Virtual MachineGR8Conf
CRaSH is the open source shell for the JVM. The shell can be accessed by various ways, remotely using network protocols such as SSH, locally by attaching a shell to a running virtual machine or via a web interface. Commands are written Groovy and can be developed live making the extensibility of the shell easy with quick development cycles. Since the version 1.3, the REPL also speaks the Groovy language, allowing Groovy combination of command using pipes.
CRaSH comes with commands such as thread management, log management, database access and JMX. The session will begin with an introduction to the shell. The main part of the session will focus on showing CRaSH commands development with few examples, showing how easy and powerful the development is.
The audience will learn how to use CRaSH for their own needs: it can be a simple usage or more advanced like developing a command or embedding the shell in their own runtime like a web application or a Grails application.
At Systematic we are using Groovy technologies to build a fairly standard 4-tier Java web application for a customer. This lecture describes our experience. We will tell you about the choices we made, how we built up knowledge about Groovy, what our biggest mistake was, and how we dealt with it.
We used Grails for the user interface, pure Groovy for implementing web services, Geb for automating tests of the user interface, and Spock for automated tests in general. We will tell you where these technologies provided great benefits, and where they were the source of trouble and frustration.
This lecture does not presuppose deep knowledge about Grails and Groovy. It should be of interest to any professional software developer who is considering replacing Java with Grails and Groovy.
Systematic A/S is a Danish software house headquartered in Århus. We employ about 450 people in 7 nations. We provide solutions for the defence, healthcare and public sector.
Learn how to use the new Good Form Grails plugin for making manageable changeable web forms.
Good Form provides a framework that makes even the most devilishly complex Government style application forms implementable in a way that lets you improve the user experience, while allowing the form to be updated and changed on the fly.
But wait, there's more! The business rules are in a Rules Engine, the form is a Readable DSL, Validation included, Version controlled for comfort (yes you can have multiple versions of the form current at the same time)... too much for an Abstract, come and see it in action... Did I mention *no* back/next buttons or webflow?
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
2. About me
Klaus Baumecker
Software Architect & Technologist @
Hewlett-Packard, Böblingen, Germany
Professional Software Developer since 1992
Java Programmer since 12+ years
Using Groovy & Grails since 3+ years
2
3. Introduction
We started using Grails in production 2 years ago.
We used Grails already for in-house projects (version 1.0.x)
The following episodes show
… what we’ve learned and
… a few best practices derived from it.
3
4. Context
• Large product suite for IT-Management in HP Software
• Two teams developing the next release of a product
– One using classic JEE approach
– Other using Grails
• Both web-apps share a common data model based on POJOs and
Hibernate mapping files
• All web-apps run inside a JBoss application server
• Continuous integration builds based on maven
• Time-boxed development cycles
• Agile approach with features and stories (SCRUM like)
4
5. Episode 1 – GORM Constraints
The Grails web-app uses GORM constraints to enforce rules on the
domain classes
There was and (and still is) a general attempt to reduce footprint by
moving common web-app libraries into shared lib space
therefore the shared domain model (incl. hibernate mapping) became
a shared library (among others like apache-commons-*, etc)
GORM constraints work fine in
development (run-app), but are
ignored while running production
code inside JBoss
5
6. Episode 1
GORM constraints were part of the Grails source
code (src/groovy/…)
They were loaded by the web-app class loader
Domain classes and mapping file have been
loaded by the shared class loader (and loaded
before the constraints)
The shared class loader cannot access classes
within the web-app (only the other way around)
GORM constraints are ignored!
Extract constraints and move to shared lib
space
6
7. Episode 2 – Flex UI
Demand for graphical editor has led to Flex based UIs.
Communication was XML based.
Then we’ve seen too many Flex timeouts. So we moved to faster
communication with Blaze-DS using the BlazeDS grails-plugin.
We mapped domain classes to Flex classes (Blaze feature).
Better performance now, but…
After a round-trip of a data object
(grails - flex - grails) we got empty
fields in the received object. Although
there were properly set before and
not modified in the UI.
7
8. Episode 2
Our POJO based domain classes have some
protected fields (public getter, private setter).
No problem for hibernate.
Blaze-DS uses commons-bean utilities for mapping
from/to POJOs and ignores asymmetric fields.
Need DTO and some tool to define mapping. We
use Dozer (dozer.org)
8
9. Grails with BlazeDS or not?
Motivation: Optimization (High performance data transfer)!...But
sometimes you really need
–a different rendering strategy (partial vs. all at once)
–a fix for your slow performing back end (Flex timeouts)
Use cases
– Event Browser for IT-Mgmt:
• Large list of IT events to be viewed by an operator (> 20000 events)
• Interactive operations on events (e.g. filtering, dynamic updates from the server)
– More advanced client/server communication (pub/sub, push)
Main issues
– Another layer in your communication
– No controller level (Blaze works on services directly) breaks Grails paradigm
• Same with other communication extensions directly working on services (remoting plugin).
• Some security plugins do not work as expected
9
10. Generalizing the Controller layer
• Grails services w/
controller semantics Controller
Other
Layer HTTP BlazeDS Remoting
• Avoiding redundant (transport spec.) Access
authorization
Services Business
Layer (atomic ops, Service
caller neutral)
Grails Grails
Transaction
Controller Service
Business Logic Business Business
Layer (optional) Logic Services Logic Service
10
11. Episode 3 – Design your web services
We’re using XML for most of our UI/backend communication.
Our backend provides web services for UI and automation tools.
The Flex guy says: Add a special attribute to the XML to make my
rendering easier.
Architect says: Don’t fiddle with the automation interface!
How to setup my web services to
fit the needs for UI and
automation?
11
12. Episode 3
Flex = Rich UI Treat your UI as another
automation client.
Don’t allow UI specifics to show up in the XML. If
you don’t, you’ll end up in maintaining parallel XML
flows.
My recommendation for XML generation
• gsp.xml
• Plain XML code is easy to read and maintain
• No DTO required (as in BlazeDS or JAXB). Map
domain data to XML inside the gsp.
12
13. Episode 4 – Meta Programming
Due to a change of the architecture some domain classes are no longer
stored in our DB. They stored with a different technique (out of our
control).
GORM methods are no longer available.
Store and retrieval is replaced by new a persistence API incl. new DAOs
We still have many consumers of
the (original) classes all over the
place.
How to minimize refactoring?
13
14. Episode 4
Enhance the meta-class of the old classes by the
missing GORM functions (get(..), simple finders).
Meta-class methods map to the new API.
Existing code remains unchanged.
But do this with care!
Comment your code and explain it in your tech
meeting.
14
15. Episode 5 – Developer Support
Programmers with strong Java background often feel lost with reduced
IDE support.
They miss(ed) code completion, static analysis, compile errors, etc.
How can we reduce the whining
and complaining, while moving
them into the Groovy/Grails
world?
15
16. Episode 5
Get a good IDE.
Spent effort in installing analysis tools into your
build. E.g. run CodeNarc analysis.
Write your own CodeNarc rules according to your
internal regulations and needs
Own rule brought some safety back: “Finding
dynamic variable”.
16
17. Episode 6 – Modularization with Plugins
Each web-app developed services which became useful in the other
web-app.
Inter-web-app communication is easy to set-up but not really a solution
– Architecture, security, etc.
– E.g. RMI
Reusing a Grails service inside a Java web-app is not straight-forward.
How can we leverage functionality
across multiple web-apps, keep good
architecture and independent web-app
development in two teams?
17
18. Episode 6
Grails-ify the Java web-app. Now you have two
Grails apps.
Extract shared services into additional Grails
plugin(s).
Create a new umbrella Grails app that loads the two
main web-apps as plugins.
The two Grails apps consume the extracted services
plugins.
Each of the main web-apps run independently (run-
app) to keep lightweight development for each team.
18
19. From applications to plugins
• Refactor your beans from resources.groovy to a resource location, e.g.
src/java/myBeans.groovy
– Watch out:
• Before: “beans = {“
• After: “beans {”
• For each web-app :
– Refer to the new beans file within resources.groovy
• Merging beans in the umbrella app
– Refer to the new beans files from the underlying web-apps
– Wire beans between web-apps (optional)
• Add plugin descriptor
• Adjust URL mapping
• Merge other resources (e.g. files under web-app/)
– Requires extra scripting
19
21. Summary & Best Practices
• Clearly articulate the benefits of the framework
– Not just cool stuff
• Reduce emotion (they know what you think anyway)
• Create a local community
– find the people that think like you
• Use the external community and help others using it
– Mailing-lists, IRC, etc.
• Provide tools
– IDE, static analysis, plugins
• Find situations/cases in which Groovy/Grails really makes a difference
– E.g
grails run-app vs. classical web-app redeploy cycle with heavy app servers is a
huge time saver
• Stay close to the Grails sweet-spot as long as possible
– E.g. Groovy domain model vs. Java domain model
21
22. Summary & Best Practices (cont’d)
• Be available
– Provide help when necessary
– Don’t let the team swim alone
• Offer/Initiate code reviews/pair-programming
• Maintain a catalog of design principles and guidelines
– HowTo(s)
– Coding guidelines (e.g. use of types, inheritance vs. composition, controller and
services responsibilities, XML generation strategies, Java vs. Groovy coding etc.)
• Ideas:
– Use the create-* scripts to introduce own templates for controllers and services
– Provide own scripts for lab-specific tools
22