These are the slides of the talk given during the Confoo 2012 conference.
For building an Android app from inside the IDE, Google provides with ADT, an Eclipse plugin to create emulators , compile your code, run the tests, package it and deploy it to a device.
Reading this presentation, you will learn how to all those steps in a "headless"way, outside the IDE, so that tools such as Jenkins / Hudson or even Travis-CI can build and test your applications.
Also, this presentation introduces to the reader the concept of Continuous Quality Control with Sonar and Continuous Deployment with Nexus : possible even for Android apps now !
Continous UI testing with Espresso and JenkinsSylwester Madej
Talk from Droidcon Zagreb 2015 about approach to Continous Integration and integration testing we are using in Outline.
In short: we use Jenkins CI on Intel NUC to build, analyse and test apps. To speed up tests we are using Spoon with some devices connected to our CI server via USB hub.
In Coscup 2011, the slide shows why developer should use continue integration(jenkins) toolbox with project management(redmine, trac, google code) toolbox to fulfill the need of software project lifecycle. And share the working step of Android+jenkins.
Explains implementation steps for running Genymotion device as Android emulator with Jenkins headless server. The logic is tried and tested for concurrent Jenkins builds on Ubuntu server
No more waiting for API - Android Stub ServerSylwester Madej
Presentation for FlashTalk I gave at MobileWarsaw meetup.
Describes new Open Source library AndroidStubServer, that we have released, which we use internaly @ byoutline.com, to minimize API dependency of our development process.
Link to source: https://github.com/byoutline/AndroidStubServer
Continous UI testing with Espresso and JenkinsSylwester Madej
Talk from Droidcon Zagreb 2015 about approach to Continous Integration and integration testing we are using in Outline.
In short: we use Jenkins CI on Intel NUC to build, analyse and test apps. To speed up tests we are using Spoon with some devices connected to our CI server via USB hub.
In Coscup 2011, the slide shows why developer should use continue integration(jenkins) toolbox with project management(redmine, trac, google code) toolbox to fulfill the need of software project lifecycle. And share the working step of Android+jenkins.
Explains implementation steps for running Genymotion device as Android emulator with Jenkins headless server. The logic is tried and tested for concurrent Jenkins builds on Ubuntu server
No more waiting for API - Android Stub ServerSylwester Madej
Presentation for FlashTalk I gave at MobileWarsaw meetup.
Describes new Open Source library AndroidStubServer, that we have released, which we use internaly @ byoutline.com, to minimize API dependency of our development process.
Link to source: https://github.com/byoutline/AndroidStubServer
Speaker: Svetlin Nakov
BurgasConf 2021, lightling talk
How to build CI/CD pipelines with GitHub Actions, how to write workflow scripts, how to execute workflows + live demo.
Building the Test Automation Framework - Jenkins for TestersWilliam Echlin
http://www.TestManagement.com: Module 2 of a six module course on building the test automation framework. This second module looks at how to implement Jenkins in the test environment.
Behavior Driven Development (BDD) is very popular with many Agilists out there, specially those focused on Testing. However my view is that BDD is not about Test Automation, it is about collaboration so that the expected behavior of the application can be determined. Cucumber happens to be the tool of choice to implement BDD. While doing this for web applications, we can drive the features through WebDriver.
Lately the application development has been inclined towards mobile apps and we need to extend our exiting BDD frameworks to handle app, be it Android, iOS or Win Mobile.
Appium is a neat tool for anyone who has exposure to WebDriver, irrespective of that also it is an excellent tool for mobile testing.
Here is my video of running Appium tests for android app using Cucumber.
Continuous integration is old hat in the web world, but it’s still rare for native mobile apps. For true continuous integration, we ship every commit directly to production – but this is clearly not realistic in the world of native apps, where binaries must be published in the App Store (with Apple’s week-long review process) and Google Play, then downloaded by members.
On the engineering side, we needed an aggressive goal to ensure we didn’t fall back into the pattern of manual verification of each release. We also wanted our product partners to be free to ship as often as they want (without annoying members of course!). We settled on a rule that we call “3x3”.
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Sargis Sargsyan
In this high technology times, it is really hard to catch up with everything. Especially for the mobile world when there are thousands of mobile devices with different modification of the Android OS. Most of us who work in the mobile testing industry familiar with the Appium framework for UI automation and also aware of complicate setup and hard maintenance of it. Using Docker in Android UI automation is making our life much easier. Docker-Android is a docker image built to be used for everything related to Android mobile website or application testing. All the tools needed (devices, framework, Android SDK, etc.) are packaged in the image. It is free and open-source and supports other features such as video recording. In this session, we will talk about the advantages and disadvantages of Appium and docker-android will go throw getting started with Docker-Android and run sample tests against it.
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
This is a presentation for you that need to learn about testing in other levels than the unit and integration testing and the importance of a testing pipeline in your project.
Bruno Souza and I presented this on JavaOne Conference 2017 in San Francisco on 02/09/2017
An Introduction to Eclipse Che - Next-Gen Eclipse Java IDEKubeAcademy
Presenter: Tyler Jewell, Founder and CEO, Codenvy
Title: A DevOps Workspace for OpenShift & Kubernetes
Abstract: "Introducing a new kind of IDE for Kubernetes & OpenShift. A preview of a Red Hat + Codenvy open source collaboration that makes debuggable dev environments linked to Kubernetes pods.
http://sched.co/4YW4
Java Test Automation for REST, Web and MobileElias Nogueira
Presentation about how to use REST, Web and Mobile open source tools to increase your test codebase.
This presentation was made by me and Edson Yanaga for JavaOne 2017 San Francisco on 04/09/2017
How do you deploy a game with millions of online users, playing across the globe, without interrupting their experience? Learn how Scopely uses AWS automation tools to build, deploy, and manage highly-scalable mobile games. They show how to use AWS CloudFormation and Ansible to build andquot;golden AMIs.andquot; See how they do green/blue deployment of those AMIs using Auto Scaling and Amazon Elastic Load Balancing, to avoid kicking players offline. Then, hear how they leverage Amazon Kinesis, ElasticSearch, and Amazon SNS to create a unified monitoring and alerting infrastructure for your games. Finally, learn how Scopely use Amazon VPC and AWS Identity and Access Management (IAM) to keep your scalable gaming infrastructure safe and secure.
Deploy your app with one Slack commandFabio Milano
See how I created a setup that allows developers to create and upload builds with one Slack command. I will introduce Fastlane and share how I created an advanced setup from starting from scratch.
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.
Speaker: Svetlin Nakov
BurgasConf 2021, lightling talk
How to build CI/CD pipelines with GitHub Actions, how to write workflow scripts, how to execute workflows + live demo.
Building the Test Automation Framework - Jenkins for TestersWilliam Echlin
http://www.TestManagement.com: Module 2 of a six module course on building the test automation framework. This second module looks at how to implement Jenkins in the test environment.
Behavior Driven Development (BDD) is very popular with many Agilists out there, specially those focused on Testing. However my view is that BDD is not about Test Automation, it is about collaboration so that the expected behavior of the application can be determined. Cucumber happens to be the tool of choice to implement BDD. While doing this for web applications, we can drive the features through WebDriver.
Lately the application development has been inclined towards mobile apps and we need to extend our exiting BDD frameworks to handle app, be it Android, iOS or Win Mobile.
Appium is a neat tool for anyone who has exposure to WebDriver, irrespective of that also it is an excellent tool for mobile testing.
Here is my video of running Appium tests for android app using Cucumber.
Continuous integration is old hat in the web world, but it’s still rare for native mobile apps. For true continuous integration, we ship every commit directly to production – but this is clearly not realistic in the world of native apps, where binaries must be published in the App Store (with Apple’s week-long review process) and Google Play, then downloaded by members.
On the engineering side, we needed an aggressive goal to ensure we didn’t fall back into the pattern of manual verification of each release. We also wanted our product partners to be free to ship as often as they want (without annoying members of course!). We settled on a rule that we call “3x3”.
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Sargis Sargsyan
In this high technology times, it is really hard to catch up with everything. Especially for the mobile world when there are thousands of mobile devices with different modification of the Android OS. Most of us who work in the mobile testing industry familiar with the Appium framework for UI automation and also aware of complicate setup and hard maintenance of it. Using Docker in Android UI automation is making our life much easier. Docker-Android is a docker image built to be used for everything related to Android mobile website or application testing. All the tools needed (devices, framework, Android SDK, etc.) are packaged in the image. It is free and open-source and supports other features such as video recording. In this session, we will talk about the advantages and disadvantages of Appium and docker-android will go throw getting started with Docker-Android and run sample tests against it.
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
This is a presentation for you that need to learn about testing in other levels than the unit and integration testing and the importance of a testing pipeline in your project.
Bruno Souza and I presented this on JavaOne Conference 2017 in San Francisco on 02/09/2017
An Introduction to Eclipse Che - Next-Gen Eclipse Java IDEKubeAcademy
Presenter: Tyler Jewell, Founder and CEO, Codenvy
Title: A DevOps Workspace for OpenShift & Kubernetes
Abstract: "Introducing a new kind of IDE for Kubernetes & OpenShift. A preview of a Red Hat + Codenvy open source collaboration that makes debuggable dev environments linked to Kubernetes pods.
http://sched.co/4YW4
Java Test Automation for REST, Web and MobileElias Nogueira
Presentation about how to use REST, Web and Mobile open source tools to increase your test codebase.
This presentation was made by me and Edson Yanaga for JavaOne 2017 San Francisco on 04/09/2017
How do you deploy a game with millions of online users, playing across the globe, without interrupting their experience? Learn how Scopely uses AWS automation tools to build, deploy, and manage highly-scalable mobile games. They show how to use AWS CloudFormation and Ansible to build andquot;golden AMIs.andquot; See how they do green/blue deployment of those AMIs using Auto Scaling and Amazon Elastic Load Balancing, to avoid kicking players offline. Then, hear how they leverage Amazon Kinesis, ElasticSearch, and Amazon SNS to create a unified monitoring and alerting infrastructure for your games. Finally, learn how Scopely use Amazon VPC and AWS Identity and Access Management (IAM) to keep your scalable gaming infrastructure safe and secure.
Deploy your app with one Slack commandFabio Milano
See how I created a setup that allows developers to create and upload builds with one Slack command. I will introduce Fastlane and share how I created an advanced setup from starting from scratch.
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.
"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
Metaprogramming is the writing of computer programs that write or manipulate other programs (or themselves) as their data. - Wikipedia
The Groovy language supports two flavors of metaprogramming:
# Runtime metaprogramming, and
# Compile-time metaprogramming.
The first one allows altering the class model and the behavior of a program at runtime, while the second only occurs at compile-time.
Kotlin is a JVM language developed by Jetbrains. Its version 1.0 (production ready) was released at the beginning of the year and made some buzz within the android community. This session proposes to discover this language, which takes up some aspects of groovy or scala, and that is very close to swift in syntax and concepts. We will see how Kotlin boosts the productivity of Java & Android application development and how well it accompanies reactive development.
Spring one 2012 Groovy as a weapon of maas PaaSificationNenad Bogojevic
to share the same infrastructure for all our customers.
We therefore built a highly sophisticated model of physical and logical farms, partitioning the traffic and optimizing resources. We operate 700+ JEE nodes, split in 30+ logical clusters, deployed on less than 10 physical server pools. Today, this infrastructure is delivering a billion dynamic pages per month, for more than 5 million bookings, with a 10 times factor growth expected in the coming years.
Even though thousands of parameters are available to tailor our products to any one particular needs, the recent evolution of the IT Industry towards PAAS ecosystems modified customer expectations: they are now looking for the capability to extend our applications, interact with their own IT, influence our business logic or even graphical interface.
To support this vision, we started developing an extensibility framework, based on scripting technologies. Though being language agnostic, we quickly decided to invest on the Groovy language and rely on JSR 223 to embed it into our applications.
However, transforming a multi-tenant & community SAAS ecosystem into a flexible PAAS environment implies to take up multiple challenges, especially around sandboxing ? access & resource control ? or productivity and production constraints, such as hot-reloading or instantaneous fallback mechanism.
This presentation will therefore focus on how Groovy and its extensibility mechanisms allow us to progress on these topics, what are the limitations faced due to its dynamicity nature, and how we?re thrilled by the new features coming in next releases.
We thought we were doing continuous delivery and then... Suzie Prince
Are you sure you are doing continuous delivery? Yeah right! We thought we were too. The journey to continuous delivery (CD) is long, winding and always evolving. Like with many things we thought we had achieved all we could with continuous delivery and then... our business model changed, and then...
Originally presented at QCon New York June 2016 https://qconnewyork.com/ny2016/ny2016/presentation/we-thought-we-were-doing-continuous-delivery-and-then.html
A long time ago in a galaxy far, far away...
Java open source developers managed to the see the previously secret plans to the Empire's ultimate weapon, the JAVA™ COLLECTIONS FRAMEWORK.
Evading the dreaded Imperial Starfleet, a group of freedom fighters investigate common developer errors and bugs to help protect their vital software. In addition, they investigate the performance of the Empire’s most popular weapon: HashMap. With this new found knowledge they strike back!
Pursued by the Empire's sinister agents, JDuchess races home aboard her JVM, investigating proposed future changes to the Java Collections and other options such as Immutable Persistent Collections which could save her people and restore freedom to the galaxy....
Apache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.
In this presentation, we'll see how Groovy simplifies the life of Java Developers. Basically, this talk would be for beginners where I would introduce powerful Groovy concepts like - Groovy Collections, Closure, Traits etc.
Reactive Streams and the Wide World of GroovySteve Pember
The concept of Reactive Streams (aka Reactive Extensions, Reactive Functional Programming, or simply Rx) has become increasingly popular recently, and with good reason. The Reactive Streams specification provides a universal abstraction for asynchronously processing data received across multiple sources (e.g. database, user input, third-party services), and includes mechanisms for controlling the rate at which data is received. This makes it a powerful tool within a Microservice platform. And did we mention that the Groovy lang community is quite involved?
In this talk we’ll explore the various features and concepts of Reactive Streams. We’ll talk about some typical use cases for Rx and more importantly, how to implement them. We’ll focus primarily on RxGroovy and Ratpack, then provide example implementations that show you how to get started with this powerful technique.
People are excited about developing Android applications with Kotlin. From new side projects to existing enterprise level Java architectures, Kotlin can improve code quality and readability while reducing lines of code and eliminating entire classes of bugs. Find out why Kotlin is being used by developers at companies like Square, Trello, and Pintrest.
Building an Extensible, Resumable DSL on Top of Apache Groovyjgcloudbees
Presented at: https://apacheconeu2016.sched.org/event/8ULR
n 2014, a few Jenkins hackers set out to implement a new way of defining continuous delivery pipelines in Jenkins. Dissatisfied with chaining jobs together, configured in the web UI, the effort started with Apache Groovy as the foundation and grew from there. Today the result of that effort, named Jenkins Pipeline, supports a rich DSL with "steps" provided by a Jenkins plugins, built-in auto-generated documentation, and execution resumability which allow Pipelines to continue executing while the master is offline.
In this talk we'll take a peek behind the scenes of Jenkins Pipeline. Touring the various constraints we started with, whether imposed by Jenkins or Groovy, and discussing which features of Groovy were brought to bear during the implementation. If you're embedding, extending or are simply interested in the internals of Groovy this talk should have plenty of food for thought.
Apache Groovy: the language and the ecosystemKostas Saidis
An overview of the Groovy language and its awesome ecosystem, advocating Groovy as the language of choice for (a) Java developers that want to dive into dynamic languages or (b) for Javascript, Ruby or Python developers that want to dive into the Java platform.
The presentation was given at the 9th FOSSCOMM (16-17 April 2016) organized by the Software Libre Sociecy of the University of Piraues.
Ionic Mobile Applications - Hybrid Mobile Applications Without CompromisesJacob Friesen
A presentation on Ionic Mobile Applications presented at Boca JS: http://www.meetup.com/Boca-JS/events/227150049/.
Traditionally, building Hybrid Mobile Apps with JavaScript (or other languages) was a middle ground between Mobile websites and Mobile Applications. Generally providing a more native like experience than websites, but with a reduced user experience compared to applications due to issues like slow animations or limited mobile OS access. The Ionic framework was created to provide hybrid development that does not compromise; matching native user experience while still allowing tools and techniques used on websites.
Continuous delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. The idea is to make your software releasable at any moment of time by integrating it continuously and releasing it frequently to get early and frequent feedback.
Because of the approval process that exists in the release process of Android apps, Continuous Delivery is not easy for Android apps as compared to web application deployments. And it's also assumed that not much tools are available to enable Continuous Delivery.
Yes, its still not instant update to the app, but still things are better than how it has been in the past. This talk gives an overview of tools and techniques that can help us to create a pipeline to get fast and frequent feedback through continuous delivery.
Join Matt Netkow, Head of Developer Relations, as he announces the launch of Capacitor, Ionic's new cross-platform app runtime that makes it easy to build web apps that run natively on iOS, Android, Electron, and the web.
View presentation here: https://www.youtube.com/watch?v=tDW2C6rcH6M&t=1s
Ionic vs flutter best platform for hybrid app developmentMarkovate
Both frameworks are inherently different, despite having the common goal of developing high-performing mobile apps. And if you think there will be many similarities between the working process of the leading cross-platform app development frameworks, you are highly mistaken.
Common Ionic Development Mistakes Developers Tend To Make!Techugo
Ionic is a popular framework for building hybrid mobile apps, but it's important to avoid common mistakes during development to ensure a successful project. Some common mistakes to watch out for include neglecting performance optimization, not properly handling errors and exceptions, failing to test on multiple devices and platforms, and not following best practices for security and data privacy. To avoid these mistakes and ensure a smooth development process, it's important to have a clear plan in place, stay up-to-date with the latest best practices, and work with experienced Ionic developers.
What To Choose Between - Native App And Hybrid Mobile AppMindbowser Inc
The most popular mobile development platforms are iOS and Android. Most applications developed are for either or both of these platforms. The most crucial issue that companies have to go through with during app development is whether they should build a Native app or a Hybrid app.
If you do not know the difference between the two, there is no need to worry. Here is everything you need to know about native apps and hybrid apps. Read on to know more at https://success.mindbowser.com/native-app-vs-hybrid-app
Live Streaming Application DevelopmentMarie Weaver
Live streaming is a live broadcast of all actions occurring on a computer connecting thousands of users to watch video in real-time across different geographies.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
Kubernetes won the containers orchestration war. But has it made deploying your apps easier?
Let's explore some of Kubernetes extensive app developer tooling, but mainly what the PaaS space looks like in 2024; 17 years after Heroku made it popular.
Is Heroku still around? What about Cloud Foundry?
And what are those new comers (fly.io, repl.it) worth?
Did the Cloud giants replace them all?
No more Dockerfiles? Buildpacks to help you ship your image!Anthony Dahanne
Do you always create a new Dockerfile for each new project?
Do you implement your own SSL certificate logic in this Dockerfile?
Do you forget to update your base image version?
Do you wonder how to generate a Bill Of Material to comply with your organization requirements?
Have you answered yes to any of those questions? Come and attend this talk to learn a new way to build your images, all use cases included - demos provided along the way!
Buildpacks: the other way to build container imagesAnthony Dahanne
Buildpacks have been around for more than 10 years!
First they were used to detect and build an app before deploying it to a couple of PaaS.
Then we could create Docker (OCI) images with them.
Are they a good alternative to the Dockerfile?
Who's supporting them and how?
Come and find out during this session that will feature demos along the way!
Tu changes d'emploi - retour d'experience d'un développeurAnthony Dahanne
Article de blog: https://blog.dahanne.net/2022/02/22/tu-changes-demploi-retour-dexperience-dun-developpeur-les-notes/
Changer d'emploi est probablement parmi les décisions les plus difficiles dans la carrière d'un développeur; et pourtant çà fait partie des étapes incontournables (et souvent mal préparées...).
Explorons ensemble (à l'aide d'exemples) les points à ne pas rater:
* Est il nécessaire de changer ?
* Se préparer aux entretiens RH, techniques ( puzzles / coder en direct / travail à préparer / entrevue design, etc. )
* Évaluation de l'offre
It's 2021 and containerization has been happening for 7 years already.
In the Java space, there are several ways to package a Java application as a Docker image.
Let's discover them from the Dockerfile to the CNCF Buildpacks, mentioning the Jib way too!
Contribuer à la traduction française de kubernetesAnthony Dahanne
S'il est possible de contribuer à la documentation française de Kubernetes, comment s'y prendre ? Cette présentation décrit l'ensemble des étapes; pour plus de détails, vous pouvez consulter : https://blog.dahanne.net/2019/08/19/devenir-traducteur-pour-la-documentation-kubernetes/
Get you Java application ready for Kubernetes !Anthony Dahanne
In this demos loaded talk we’ll explore the best practices to create a Docker image for a Java app (it’s 2019 and new comers such as Jib, CNCF buildpacks are interesting alternatives to Docker builds !) - and how to integrate best with the Kubernetes ecosystem : after explaining main Kubernetes objects and notions, we’ll discuss Helm charts and productivity tools such as Skaffold, Draft and Telepresence.
Is caching data in your application still relevant today, with all those HTTP caches, very fast key value stores, and microservices? During this presentation, you will learn the basics of caching (TTL, TTI, invalidation, tiering, and so on), key figures in the caching world, how the Java community came up with a specification (JSR 107), and how you can leverage it in your application with the implementation of your choice (EhCache 3). During the multiple demos, you’ll even see how you can sync up your (clustered) caches when you start scaling your application.
Kubernetes for java developers - Tutorial at Oracle Code One 2018Anthony Dahanne
You’re a Java developer? Already familiar with Docker? Want to know more about Kubernetes and its ecosystem for developers? During this session, you’ll get familiar with core Kubernetes concepts (pods, deployments, services, volumes, and so on) before seeing the most-popular and most-productive Kubernetes tools in action, with a special focus on Java development. By the end of the session, you’ll have a better understanding of how you can leverage Kubernetes to speed up your Java deployments on-premises or to any cloud.
This presentation about Kubernetes, targeted for Java Developers was given for the first time (in French) at the Montreal Java User Group on May 2nd, 2018
Talk given during Devoxx Belgium 2016
https://cfp.devoxx.be/2016/speaker/anthony_dahanne
Caching 101
Caching on the JVM
Clustered Caching with Terracotta Server
Deployment examples
On Thursday the 28th of January 2016, Anthony Dahanne gave a talk on how to leverage Docker to package Java applications.
After a quick introduction to Docker principles, Anthony showed some demos (available on github) on how to create Docker images for simple and not so simple Java webapps.
Then, he went on with CI/CD examples, and finished with a quick intro to the Docker Java API.
http://blog.dahanne.net/2016/01/31/docker-and-java-notes-from-the-montreal-jug-presentation/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
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.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
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/
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.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
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.
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.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
2. @anthonydahanne 2
Continuous Integration for Android Apps
Getting to know each other ...
Work @compuware on a APM software based on
OSGi and Equinox
Develop an open source app on Android,
ReGalAndroid
Work on Continuous Integration (contribute to tools
such as Maven Tycho, m2e-android)
3. @anthonydahanne 3
Continuous Integration for Android Apps
Continuous Integration for Android Apps
A gentle introduction to Continuous Integration
Building an Android app
Testing an Android App
Setting up a CI tool for Android development
Going further than CI...
5. @anthonydahanne 5
Continuous Integration for Android Apps
A gentle introduction to CI : what is it ?
“the practice of frequently integrating one's new or changed
code with the existing code repository” Wikipedia
Each code change triggers a new build of the software
Each build should be working (not broken)
CI jobs occur on dedicated machines running CI tools such as
Hudson/Jenkins/CruiseControl/Bamboo/TravisCI
6. @anthonydahanne 6
Continuous Integration for Android Apps
A gentle introduction to CI : benefits ?
Coding within a team,
makes sure no one commits broken code
makes it easy to get the latest good build
And more generally
Eases the distribution of your software
Shows the quality and robustness of your code
10. @anthonydahanne 10
Continuous Integration for Android Apps
Building an Android app : outside the IDE
ADT exists for each major platform (Win, Linux, Mac)
The IDE integration is only (officially) provided for Eclipse
For Continuous Integration, we want to :
Build outside the IDE,
Build on the command line, so that a CI tool can run the
build
11. @anthonydahanne 11
Continuous Integration for Android Apps
Building an Android app : the choices
In the Java world, the main build automation tools are Ant and
Maven (equivalent of make in the C world)
Apache Ant
Appeared in 2000
Very versatile
Still very popular
Apache Maven
Convention over configuration
Build lifecycle
Dependencies management
12. @anthonydahanne 12
Continuous Integration for Android Apps
Building an Android app : with Ant
Ant is the official building tool chosen by the ADT team
The Ant script can be generated and used easily from an
Android project :
> android update project --path ./
Updated local.properties
Added file ./build.xml
Updated file ./proguard.cfg
> ant debug install
[…]
BUILD SUCCESSFUL
Demo : generate an ant script
to build your project
13. @anthonydahanne 13
Continuous Integration for Android Apps
Building an Android app : with Maven
Maven privileges “convention over configuration”
It is extensible via plugins (eg : android-maven-plugin !)
Project dependencies are fetched and cached
It provides a default execution lifecycle (you can bound a
plugin execution to each phase of the lifecycle)
14. @anthonydahanne 14
Continuous Integration for Android Apps
Building an Android app : with Maven
compilerplugin
compile
surefire plugin
test
validate
compile
test
package
integration-test
verify
install
deploy
deploy plugin
deploy
The“default”lifecycle
This schema is taken from Fabrizio Giudici
“Building Android Apps with Maven” slides
15. @anthonydahanne 15
Continuous Integration for Android Apps
Building an Android app : with Maven
2 ways to get started with a Maven enabled Android project :
Start from scratch with android archetypes :
Copy and adapt an existing pom.xml
> mvn archetype:generate
-DarchetypeArtifactId=android-quickstart
-DarchetypeGroupId=de.akquinet.android.archetypes
-DarchetypeVersion=1.0.7
-DgroupId=your.company
-DartifactId=my-android-application
> cd my-android-application
> mvn install android:deploy android:run
Demo : generate a Maven pom
to build your project
16. @anthonydahanne 16
Continuous Integration for Android Apps
Building an Android app : with Maven
commons-gallery
ReGalAndroid app
g2-java-client
g3-java-client
jiwigo-ws-api
commons-io
httpclient
json
httpclient
httpmime
commons-lang
httpcore
commons-logging
commons-codec
(transitive)
dependencies
17. @anthonydahanne 17
Continuous Integration for Android Apps
Building an Android app : which one to choose ?
The Ant script
Is generated by ADT but
Does not deal with dependencies (must copy to lib/)
And is not easily extensible
The Android Maven Plugin
Covers all android specific build steps (proguard, etc...)
Is integrated in the Eclipse IDE (thanks to m2e-android)
Leverages existing Maven plugins (deploy, replace,etc...)
19. @anthonydahanne 19
Continuous Integration for Android Apps
Testing an Android app
Outside an emulator :
Externalize your logic in plain jars
Use an “Android Mocker” (robolectric)
Inside an emulator
Integration testing : tests run in a real device (robotium
helps !)
20. @anthonydahanne 20
Continuous Integration for Android Apps
Testing an Android App
ReGalAndroid app
ReGalAndroid Integration tests
1. Install the app
2. Install the test app
3. run the app and run the test app
Demo : running ReGalAndroid
integration tests
22. @anthonydahanne 22
Continuous Integration for Android Apps
Setting up a CI tool
As long as the CI tool supports Maven it should work
Environment must be set up
PATH + JAVA_HOME, M2_HOME, ANDROID_HOME set
Download the SDK and :
> android update sdk --no-ui --obsolete –force
(be careful >2GB as of January '12)
> android update sdk --no-ui -t platform –force
(just the Android platforms, no samples, no addons, no extras...)
> android update sdk --no-ui -t platform-tools –force
(Android platform-tools : aadt, adb, etc...)
> android create avd -n 23 -t 9 -c 16M -b armeabi
(to create an AVD/Emulator)
23. @anthonydahanne 23
Continuous Integration for Android Apps
Setting up a CI tool : case of a server (not GUI)
Android Emulator
Is needed for the integration tests
But needs an X server !
Hudson/Jenkins Xvnc plugin to the rescue !
Or, even better, Hudson/Jenkins Android Emulator PluginDemo : a Jenkins job building
an android app
25. @anthonydahanne 25
Continuous Integration for Android Apps
Going further than CI : continuous quality control
At each build, check :
The tests run
Code coverage of the tests
Quality metrics of the tests, with Checkstyle, Findbugs,
PMD /CPD
Sonar does it all !
Quality dashboard of your projects
Provides : timeline, rules, diagrams, high level views, etc.
26. @anthonydahanne 26
Continuous Integration for Android Apps
Going further than CI : continuous deployment
At each build (or milestone / nightly builds)
Deploy to a an archive repository (such as Nexus)
Use some tooling to push to devices ?
27. @anthonydahanne 27
Continuous Integration for Android Apps
Thank you …
Now please vote
and react on https://joind.in/6032 !
Art
The template used for this presentation was the LibreOffice Presentation Template 1.0
The Android pictures belong to Google http://tools.android.com/overview
Tools, documentation, useful blogs for Android development and CI
Documentation on the Android Maven Plugin can be found reading the
Maven Reference Book
Updating Android SDK from the command line
Manfred Moser's blog
Using Android Maven Artifacts
See a device screen on your computer : Droid@Screen
Use Hudson/Jenkins or try TravisCI out, for CI Sonar, to check on your code quality , and
Nexus as an artifact repository manager
Editor's Notes
Code compiles
Tests pass
Packages build (jar, apk, etc..)
See this as a Cron table
From wikipedia :
Advantages
when unit tests fail or a bug emerges, developers might revert the codebase to a bug-free state, without wasting time debugging
developers detect and fix integration problems continuously - avoiding last-minute chaos at release dates, (when everyone tries to check in their slightly incompatible versions).
early warning of broken/incompatible code
early warning of conflicting changes
immediate unit testing of all changes
constant availability of a "current" build for testing, demo, or release purposes
immediate feedback to developers on the quality, functionality, or system-wide impact of code they are writing
frequent code check-in pushes developers to create modular, less complex code[citation needed]
metrics generated from automated testing and CI (such as metrics for code coverage, code complexity, and features complete) focus developers on developing functional, quality code, and help develop momentum in a team[citation needed]
Disadvantages
initial setup time required
well-developed test-suite required to achieve automated testing advantages
hardware costs for build machines can be significant
Many teams using CI report that the advantages of CI well outweigh the disadvantages.[9] The effect of finding and fixing integration bugs early in the development process saves both time and money over the lifespan of a project.
Hint !
> ant -p
To list all available targets
Hint !
> mvn help:describe -Dplugin=android
to list all availlable goals
Hint !
Use :
> echo no | android create avd -n 23 -t 9 -c 16M -b armeabi
not to be promped to create a hardware profile !