Off to a new island - Kotlin for backend development
Tobias Schneck, Simon Hofmann
Get a first insight to new JVM language Kotlin and learn how you can use Kotlin also for backend development. We will compare traditional Java code to the new fancy Kotlin code and show why we fell in love with it. We will also show how you can spin up your Kotlin Spring Boot backend server in just a few minutes and how you use Java and Kotlin code together in one project.
Droidcon Poland - From Kotlin to Machine CodeTomasz Polanski
Every new language aspires to abstract complexity using neat syntax or cool features. Kotlin is no different. Yet knowing how it works under the hood can bring benefits to developers. I will explore how Kotlin ends up as machine code and how we can leverage that knowledge.
First, let’s talk about Kotlin performance faux pas that developers make and how you can easily discover and prevent them.
Next, I will mention the differences between the JVM, Dalvik and Android Runtime (ART) and how Android system optimizes your applications without you even knowing.
Finally, we will focus on how you can improve performance and reliability of your application when working with ART and what optimizations you get for free from the system.
After this presentation, you will have a better understanding how to write more performant Kotlin and Java so your users will have even more sublime app experience.
“PostgreSQL, Python and Squid” (otherwise known as, “using Python in PostgreSQL and PostgreSQL from Python”) presented at PyPgDay 2013 at PyCon 2013-Christophe Pettus
Euro python2011 High Performance PythonIan Ozsvald
I ran this as a 4 hour tutorial at EuroPython 2011 to teach High Performance Python coding.
Techniques covered include bottleneck analysis by profiling, bytecode analysis, converting to C using Cython and ShedSkin, use of the numerical numpy library and numexpr, multi-core and multi-machine parallelisation and using CUDA GPUs.
Write-up with 49 page PDF report: http://ianozsvald.com/2011/06/29/high-performance-python-tutorial-v0-1-from-my-4-hour-tutorial-at-europython-2011/
As a part of kotlinx.coroutines 1.2 Flow was introduced as a cold asynchronous data stream. How does it work? What we can do with it? Is it that we waiting so long for replacing Rx? The talk has answers to them.
Android & Kotlin - The code awakens #02Omar Miatello
A series of 3 events for building apps with Kotlin on Android.
Introduction to Kotlin, a modern language, developed by JetBrains (those who developed the IDE on which is based Android Studio) that compared to Java is more concise, versatile and with better error handling. The code is 100% interoperable with Java, and can be used to write native Android apps or small component.
Android & Kotlin - The code awakens #03Omar Miatello
A series of 3 events for building apps with Kotlin on Android.
Introduction to Kotlin, a modern language, developed by JetBrains (those who developed the IDE on which is based Android Studio) that compared to Java is more concise, versatile and with better error handling. The code is 100% interoperable with Java, and can be used to write native Android apps or small component.
In which Richard will tell you about some things you should never (probably ever) do to or in Python. Warranties may be voided. The recording of this talk is online at http://www.youtube.com/watch?v=H2yfXnUb1S4
Vapor – Swift is not only for iOS anymoreMilan Vít
Slides from talk I have as part of Vapor Meetup 2 in Tokyo on 2018-07-06.
The video recording from this talk is available on YouTube (https://www.youtube.com/watch?v=Uq1fJifXcOc) but unfortunately, audio issues plagued my talk. At the very least, here are slides from that evening.
Introduction to Kotlin, a modern language, developed by JetBrains (those who developed the IDE on which is based Android Studio) that compared to Java is more concise, versatile and with better error handling. The code is 100% interoperable with Java, and can be used to write native Android apps or small component.
Google Presentation: https://docs.google.com/presentation/d/1XTm-9WnwoiYhyHGamt-dHJBKmkEr3WajDCOGxgfIRsc/edit?usp=sharing
An introduction to Kotlin for advanced Android beginners, covering command-line compilation of Kotlin files, conditional logic, val/var, basic functions, higher order functions, recursion.
With the announcement on officially supporting Kotlin for Android, this presentation tries to compare Java and Kotlin to encourage people to switch to Kotlin
Droidcon Poland - From Kotlin to Machine CodeTomasz Polanski
Every new language aspires to abstract complexity using neat syntax or cool features. Kotlin is no different. Yet knowing how it works under the hood can bring benefits to developers. I will explore how Kotlin ends up as machine code and how we can leverage that knowledge.
First, let’s talk about Kotlin performance faux pas that developers make and how you can easily discover and prevent them.
Next, I will mention the differences between the JVM, Dalvik and Android Runtime (ART) and how Android system optimizes your applications without you even knowing.
Finally, we will focus on how you can improve performance and reliability of your application when working with ART and what optimizations you get for free from the system.
After this presentation, you will have a better understanding how to write more performant Kotlin and Java so your users will have even more sublime app experience.
“PostgreSQL, Python and Squid” (otherwise known as, “using Python in PostgreSQL and PostgreSQL from Python”) presented at PyPgDay 2013 at PyCon 2013-Christophe Pettus
Euro python2011 High Performance PythonIan Ozsvald
I ran this as a 4 hour tutorial at EuroPython 2011 to teach High Performance Python coding.
Techniques covered include bottleneck analysis by profiling, bytecode analysis, converting to C using Cython and ShedSkin, use of the numerical numpy library and numexpr, multi-core and multi-machine parallelisation and using CUDA GPUs.
Write-up with 49 page PDF report: http://ianozsvald.com/2011/06/29/high-performance-python-tutorial-v0-1-from-my-4-hour-tutorial-at-europython-2011/
As a part of kotlinx.coroutines 1.2 Flow was introduced as a cold asynchronous data stream. How does it work? What we can do with it? Is it that we waiting so long for replacing Rx? The talk has answers to them.
Android & Kotlin - The code awakens #02Omar Miatello
A series of 3 events for building apps with Kotlin on Android.
Introduction to Kotlin, a modern language, developed by JetBrains (those who developed the IDE on which is based Android Studio) that compared to Java is more concise, versatile and with better error handling. The code is 100% interoperable with Java, and can be used to write native Android apps or small component.
Android & Kotlin - The code awakens #03Omar Miatello
A series of 3 events for building apps with Kotlin on Android.
Introduction to Kotlin, a modern language, developed by JetBrains (those who developed the IDE on which is based Android Studio) that compared to Java is more concise, versatile and with better error handling. The code is 100% interoperable with Java, and can be used to write native Android apps or small component.
In which Richard will tell you about some things you should never (probably ever) do to or in Python. Warranties may be voided. The recording of this talk is online at http://www.youtube.com/watch?v=H2yfXnUb1S4
Vapor – Swift is not only for iOS anymoreMilan Vít
Slides from talk I have as part of Vapor Meetup 2 in Tokyo on 2018-07-06.
The video recording from this talk is available on YouTube (https://www.youtube.com/watch?v=Uq1fJifXcOc) but unfortunately, audio issues plagued my talk. At the very least, here are slides from that evening.
Introduction to Kotlin, a modern language, developed by JetBrains (those who developed the IDE on which is based Android Studio) that compared to Java is more concise, versatile and with better error handling. The code is 100% interoperable with Java, and can be used to write native Android apps or small component.
Google Presentation: https://docs.google.com/presentation/d/1XTm-9WnwoiYhyHGamt-dHJBKmkEr3WajDCOGxgfIRsc/edit?usp=sharing
An introduction to Kotlin for advanced Android beginners, covering command-line compilation of Kotlin files, conditional logic, val/var, basic functions, higher order functions, recursion.
With the announcement on officially supporting Kotlin for Android, this presentation tries to compare Java and Kotlin to encourage people to switch to Kotlin
Ever wonder what this "new" Kotlin thing is? Curious what the syntax looks like? Unsure how to implement this at your own company? Or do you just want to know what Nick and Cody's favorite things are about this language?
All that and (maybe) more are revealed in Privet Kotlin.
https://www.youtube.com/watch?v=QIRJKIDLZgU
Effective Java는 효율적이고 잘 설계된 Java 프로그램을 구현하기 위한 지침들을 소개하는 책입니다. Kotlin에서는 이 지침들이 잘 적용될 수 있는 설계를 갖추고 있는데요, Kotlin Reference 문서에서는 설명을 뒷받침하기 위해 이 책을 인용하기도 합니다. 세션에서는 "이펙티브 자바" 책의 규칙들을 짚어가면서, Kotlin에 어떻게 반영되었는지, 혹은 어떻게 적용될수 있는지에 대해 공유합니다.
This presentation shows tools and technologies used in Android Development such as Kotlin, Retrofit, and Room. It also shows different architectural patterns such as MVC, MVP, and MVVM
Kotlin 1.2: Sharing code between platformsKirill Rozov
Discover what's new in Kotlin 1.2: syntax, standard library, performance and , of course, "Multiplatform project". Take closer look at how Kotlin authors see way of reusing code between platforms.
SpringOne Platform 2017
Sébastien Deleuze, Pivotal
"In this new talk, I will explain why Spring <3 Kotlin and how you can leverage Spring official support for Kotlin (in Framework, Boot, Data) to build your next Spring project more efficiently and with more pleasure.
I will describe gradually how you can transform your Spring Boot 1.0 Java + Javascript project with into a Spring Boot 2.0 pure Kotlin project running on top of the new WebFlux functional web framework."
Practical tips for building apps with kotlinAdit Lal
Kotlin with Android
Code snippets and explanation of how kotlin can help do better with less code, it would help to understand the various Kotlin-specific behaviors
This talk would help people to take a swing at kotlin and see it in action
Introduction to the Kotlin statically typed programming language, a concise and elegant language targeting the Java Virtual Machine (JVM) and Javascript which has good support for functional programming and also object-oriented programming.
Includes examples of key features.
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.
Kubernetes in the Manufacturing Line @KubeCon EU Valencia 2022 Tobias Schneck
Imagine your manufacturing line is controlled by services running in your datacenters’ Kubernetes clusters. You have facilities in locations all over the world. You provide a managed service with uptime SLA. Now, there is an issue with the internet connection. Or security is shutting down all connections to defend against a cyberattack. And your production line must keep working because every downtime is money. This was the challenge to solve, and we did! Did you ever think about - How to run basic Infrastructure Services like DHCP and DNS in a cloud native way for manufacturing services? How to autoscale cluster on-prem? Follow us in the rabbit hole using all kinds of CNCF projects to build a setup that scales, is able to shift and redeploy workloads, and continues to function without relying on cloud vendors or external services. We will show you the obvious and non-obvious challenges of cloud native adopters in the industry 4.0 sector, including some true edge computing cases.
https://kccnceu2022.sched.com/event/ytuM/running-kubernetes-in-a-manufacturing-line-what-could-possibly-go-wrong-mario-fahlandt-tobias-schneck-kubermatic-gmbh
If you just stated with Kubernetes, one of the first thing you have to learn is the `kubectl` CLI. Join me at a live hacking journey trough the world of kubectl and how you can improve your daily work to be more productive. Find out the handy day-by-day time savers for your working routine by a pure hands-on talk without slides. In Detail we will look together into:
* kubectl basics
* kubectl for scripting
* kubectl extensions
* the fuzzy side of kubectl
* KubeOps - use kubectl to manage k8s clusters, workers and static virtual machines.
Will ARM be the new Mainstream in our Data Centers? @Rejekts Paris 2024Tobias Schneck
As I have been working with my new Apple Mac M1 for over a year, I was wondering why ARM is not used more in regular application workload scenarios? ARM for desktop computing is really stable, seamless, reliable and for me a game changer - when will we recognize the same for our servers? Especially in times when energy and raw materials are expensive, we should also benefit from the efficiency of ARM technology in our Data Centers. So what’s missing?
We have Kubernetes on ARM, images!
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...Tobias Schneck
Have you ever thought about migrating your Kubernetes clusters to Google Cloud to get your services closer to your customers? Yes? We too! Join us on an interactive journey to discover the main challenges of live migration at scale of etcd's, traffic routing and application workloads from your on-premise platform to GCP. The talk will discuss the current state of the technical concept, known problems and insides of the already proven migration steps for stateless workload.
As part of the journey, we'll see the differences between migrating one or one hundred clusters with productive workloads; What parts can be automated? What steps may need to be manual? Let's see how an automated solution could look like in the future and what steps are missing.
Thanks to tools like kubeadm, Terraform or Ansible setting up a Kubernetes cluster on a dedicated environment is getting reachable, but what’s about setting up a bunch of cluster in multiple clouds in automatic way? This is still a challenge. Also if you want to do same in your own datacenter. In this talk we will take a look to the approach to orchestrate and manage a whole set of k8s cluster by the Cluster API project of kubernetes (a sub-project of sig-cluster-lifecycle). The main idea behind it is to use the Kubernetes API itself to manage multiple clusters with there master and worker nodes in same way you would manage your PODs - define the needed resources and the responsible controller will take care for providing it.
After an overview about the concepts of cluster API, I will show what’s needed to implement a cluster API conform machine class/deployment. There I will see that adding your own provider isn’t that hard as you may aspect. At the end of the day it just requires a simple interface to implement. The corresponding Kubermatic machine-controller we implemented at Loodse are available as open source, so its possible to play around with it. A live demo will show how easy it is to spin up and maintain multiple Kubernetes cluster at different public and on-premise cloud providers over one managing cluster. A final wrap up will summarize the current state of the Cluster API project and the advantages of managing clusters with CRDs and Controllers instead of stateful scripts.
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupTobias Schneck
Thanks to tools like kubeadm, Terraform or Ansible setting up a Kubernetes cluster on a dedicated environment is getting reachable, but what’s about setting up a bunch of cluster in multiple clouds in automatic way? This is still a challenge. Also if you want to do same in your own datacenter. In this talk we will take a look to the approach to orchestrate and manage a whole set of k8s cluster by the Cluster API project of kubernetes (a subproject of sig-cluster-lifecycle). The main idea behind it is to use the Kubernetes API itself to manage multiple clusters with there master and worker nodes in same way you would manage your PODs - define the needed resources and the responsible controller will take care for providing it.
After an overview about the concepts of cluster API, I will show what’s needed to implement a cluster API conform machine class/deployment. There I will see that adding your own provider isn’t that hard as you may aspect. At the end of the day it just requires a simple interface to implement. The corresponding kubermatic controllers we implemented at Loodse are available as open source, so its possible to play around with it. A live demo will show how easy it is to spin up and maintain multiple Kubernetes cluster at different public and on-premise cloud providers over one managing cluster. A final wrap up will summarize the current state of the Cluster API project and the advantages of managing clusters as cattles instead of pets.
KubeCI - Cloud Native Continuous Delivery for KubernetesTobias Schneck
Getting CI/CD pipelines to work on Kubernetes is a tricky endeavor, especially if you are looking for a Cloud Native CI/CD solution.
KubeCI is an open source Continuous Delivery system built on Drone for Kubernetes. A simple YAML configuration file is used to the define and execute pipelines inside Kubernetes Pods.
We will talk about why CI/CD pipelines are painful today. We will do some live coding, and show you how KubeCI can make a CI/CD deployment on Kubernetes simple. The audience will get insights about why we build KubeCI and how we want to extend it in the future.
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...Tobias Schneck
Thanks to tools like kubeadm, Terraform or Ansible setting up a Kubernetes cluster on a dedicated environment is getting reachable, but what’s about setting up a bunch of cluster in multiple clouds in automatic way? This is still a challenge. Also if you want to do same in your own datacenter. In this talk we will take a look to the approach to orchestrate and manage a whole set of k8s cluster by the Cluster API project of kubernetes (a subproject of sig-cluster-lifecycle). The main idea behind it is to use the Kubernetes API itself to manage multiple clusters with there master and worker nodes in same way you would manage your PODs - define the needed resources and the responsible controller will take care for providing it.
After an overview about the concepts of cluster API, I will show what’s needed to implement a cluster API conform machine class/deployment. There I will see that adding your own provider isn’t that hard as you may aspect. At the end of the day it just requires a simple interface to implement. The corresponding kubermatic controllers we implemented at Loodse are available as open source, so its possible to play around with it. A live demo will show how easy it is to spin up and maintain multiple Kubernetes cluster at different public and on-premise cloud providers over one managing cluster. A final wrap up will summarize the current state of the Cluster API project and the advantages of managing clusters as cattles instead of pets.
Building up your application's UI interface is certainly a challenge by itself, but writing automated web UI tests is an even bigger one! And after you are done, your project comes across more questions:
* Validate the order confirmation PDF?
> Yes of course!
* Test the rich-client implementation as well?
> Would be fantastic!
* Where to run the test?
> For sure inside of a container!
* Rewrite all of our tests?
> Are you kidding me? We want to reuse them!
* Scale your test executors?
> What's about Kubernetes!?
If you already have a bunch of Selenium tests in your project, you won't throw them all away if some new test requirements, like the ones mentioned above, come up. Therefore we have developed a solution, which will keep your Selenium tests as they are, but with the possibility to test even more. PDF validation or controlling a Flash Player will be as easy as the validation of an HTML button. While we are at it, why not testing a whole rich-client app with the same test setup? With "Sakuli Se" as a Selenium extension, you will be able to do this and execute all tests inside of a preconfigured UI testing container. Afterwards you can scale your test environment with Kubernetes/OpenShift and let them do the work. The talk will answer all the above-mentioned questions and demonstrate the different use cases in a live coding session.
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner CloudTobias Schneck
Based on Fabian’s talk, where we learned how to setup a Kubernetes cluster at Hetzner for small environments, Tobias and Alvaro will take a look to the approach to orchestrate and manage one or more cluster by the Cluster API project (a subproject of sig-cluster-lifecycle). The main idea behind it is to use the Kubernetes API itself to manage multiple clusters with there master and worker nodes in same way you would manage your PODs - define the needed resources and the responsible controller will take care for providing it.
After an overview about the concepts of cluster API, we will show what’s needed to implement a cluster API conform machine class/deployment on top of the Hetzner Cloud API. There we will see that adding your own provider isn’t that hard as you may aspect. At the end of the day it just requires a simple interface to implement. The corresponding controller is available as open source, so its possible to play around with it.
At least a final demo will show how easy it is to spin up and maintain multiple Kubernetes cluster in Hetzner (or other cloud/on-premise providers) over one managing seed cluster. A final wrap up will summarize the current state of the Cluster API project and the advantages of managing clusters as cattles instead of pets.
OpenShift Build Pipelines @ Lightweight Java User Group MeetupTobias Schneck
A reliable test infrastructure is half the battle to get stable tests into your delivery pipeline. Therefore container technologies like Docker can help to build up an immutable deployment and test infrastructure. If you think one step further, you will soon get to the point where scalability came into your glance. To get this challenge done, something like a container-based CI/CD environment will be needed. Therefore we will take a look at the open-source solution "OpenShift". The container platform combined the Jenkins build pipeline and Kubernetes concepts to a ready-to-use CI/CD solution. The talk will show what of the platform components can be used to build up your self-hosted automated build, test and deployment pipeline. In a live demo session we will build a microservice application, unit test it, deploy it, execute API integration tests and at least run real UI-Tests in dockerized desktop containers.
OpenShift-Build-Pipelines: Build -> Test -> Run! @JavaForumStuttgartTobias Schneck
Stabile und skalierbare Continuous-Integration-Umgebungen sind seit jeher schwer aufzusetzen und zu pflegen. Besonders in Zeiten von Containern und Cloud-Native-Apps, wird der nächste Schritt hin zur voll-automatisierten Build-Pipeline eingefordert. Sowohl der Aufbau des automatisierten Deployments als auch die Ausführung von automatisierten Integration- und UI-Tests stellen die DevOps-Teams vor neue Hürden. Einen eleganten Ausweg bieten Container-basierte CI/CD-Umgebungen, die dynamisch zum Build-Zeitpunkt bereitgestellt werden. An diesen Punkt setzt die Open-Source-Container-Plattform "OpenShift" an. Durch den Infrastructure-as-Code-Ansatz wird sowohl der CI-Server als auch der komplette Build-Lifecycle vom Bau der Artefakte bis zum Testen der Anwendung in den Container-Cluster verschoben.
Der Talk zeigt auf wo die Unterschiede von OpenShift zur Kubernetes-API liegen, wie durch Jenkins-Build-Pipelines Artefakte gebaut, in Docker Images verpackt, getestet und deployed werden können. In mehreren Live-Demos wird aufgezeigt, wie mit geschickten Einsatz von Open-Source-Tools sowohl Server-APIs als auch grafische Web- und Rich-Client-Oberflächen in Container-Clustern als Black-Box getestet werden können. Eine abschließende, kritische Bewertung der gesammelten Erfahrungen, zeigt wo das Potenzial dieses Ansatz liegt, aber auch welche Fallstricke derzeit (noch) zu meistern sind.
OpenShift-Build-Pipelines: Build ► Test ► Run!Tobias Schneck
GitHub Repo: https://github.com/toschneck/openshift-example-bakery-ci-pipeline
Stabile und skalierbare Continuous-Integration-Umgebungen sind seit jeher schwer aufzusetzen und zu pflegen. Besonders in Zeiten von Containern und Cloud-Native-Apps, wird der nächste Schritt hin zur voll-automatisierten Build-Pipeline eingefordert. Sowohl der Aufbau des automatisierten Deployments als auch die Ausführung von automatisierten Integration- und UI-Tests stellen die DevOps-Teams vor neue Hürden. Einen eleganten Ausweg bieten Container-basierte CI/CD-Umgebungen, die dynamisch zum Build-Zeitpunkt bereitgestellt werden. An diesen Punkt setzt die Open-Source-Container-Plattform "OpenShift" an. Durch den Infrastructure-as-Code-Ansatz wird sowohl der CI-Server als auch der komplette Build-Lifecycle vom Bau der Artefakte bis zum Testen der Anwendung in den Container-Cluster verschoben.
Der Talk zeigt auf wo die Unterschiede von OpenShift zur Kubernetes-API liegen, wie durch Jenkins-Build-Pipelines Artefakte gebaut, in Docker Images verpackt, getestet und deployed werden können. In mehreren Live-Demos wird aufgezeigt, wie mit geschickten Einsatz von Open-Source-Tools sowohl Server-APIs als auch grafische Web- und Rich-Client-Oberflächen in Container-Clustern als Black-Box getestet werden können. Eine abschließende, kritische Bewertung der gesammelten Erfahrungen, zeigt wo das Potenzial dieses Ansatz liegt, aber auch welche Fallstricke derzeit (noch) zu meistern sind.
Building up your application's UI interface is certainly a challenge by itself, but writing automated web UI tests is an even bigger one! And after you are done, your project comes across more questions:
* Validate the order confirmation PDF?
> Yes of course!
* Test the rich-client implementation as well?
> Would be fantastic!
* Where to run the test?
> For sure inside of a container!
* Rewrite all of our tests?
> Are you kidding me? We want to reuse them!
* Scale your test executors?
> What's about Kubernetes!?
If you already have a bunch of Selenium tests in your project, you won't throw them all away if some new test requirements, like the ones mentioned above, come up. Therefore we have developed a solution, which will keep your Selenium tests as they are, but with the possibility to test even more. PDF validation or controlling a Flash Player will be as easy as the validation of an HTML button. While we are at it, why not testing a whole rich-client app with the same test setup? With "Sakuli Se" as a Selenium extension, you will be able to do this and execute all tests inside of a preconfigured UI testing container. Afterwards you can scale your test environment with Kubernetes/OpenShift and let them do the work. The talk will answer all the above-mentioned questions and demonstrate the different use cases in a live coding session.
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesTobias Schneck
Stabile und skalierbare Testumgebungen sind seit jeher schwer aufzusetzen und zu warten. Besonders in Zeiten von Continuous Delivery ist das Aufsetzen von Build-Pipelines in Verbindung mit automatisierten Integration- und UI-Tests eine besonders große Herausforderung. Einen eleganten Ausweg bieten containerbasierte Testumgebungen, die dynamisch zum Build-Zeitpunkt bereitgestellt werden. Der Talk zeigt anhand von mehreren Live-Demos, wie mit Hilfe von OpenShift-Build-Pipeline sowohl Server-APIs als auch grafische Web- und Rich-Client-Oberflächen getestet werden können. Zum Einsatz kommen hierfür die Open-Source-Test-Frameworks Citrus und Sakuli, die bereits für die Verwendung in OpenShift vorbereitet sind.
Das Entwickeln und Gestalten von einer UI ist für sich allein genommen bereits eine große Herausforderung. Ganz zu schweigen von der Aufgabe die UI-Tests zu automatisieren. Wurde beides erfolgreich gemeistert, kommen allerdings die nächsten Fragen:
* Sollen wir auch die PDF-Auftragsbestätigung im Test validieren?
> Natürlich sollten wir!
* Ist der Rich-Client auch zu testen?
> Ja, wieso denn auch nicht!
* Wo sollen die Tests ausgeführt werden?
> Natürlich im Docker-Container und im Kubernetes-Cluster!
* Können wir die Tests auf ein anderes Framework migrieren?
> Was bringt uns das? Wir wollen die bestehenden Tests doch weiterverwenden!
Diese Fragen sind den Einen oder Anderen bestimmt nicht neu, aber was tun? Es wurde bereits viel Aufwand und Mühe in die Pflege der umfangreichen Selenium-Testsuiten gesteckt! Daher möchte man diese nur ungern verwerfen, nur um neue Anforderungen umzusetzen. Der Talk zeigt hierfür eine Lösung auf, die mit geringen Aufwand die bestehenden Selenium-Tests einfach erweitert. Die Open-Source-Erweiterung "Sakuli Se" bietet eine umfangreiche API, die es ermöglicht Rich-Clients, PDF-Inhalte oder auch Flash-Anwendungen ebenso leicht wie ein HTML-Button im selben Ausführungskontext zu testen. An Praxisbeispielen wird ebenso demonstriert wie durch vorgefertigte Dockerimages die Testausführung skalierbar bis in Cloud-Umgebung, wie Kubernetes oder OpenShift, aufgebaut werden kann.
See: http://www.oop-konferenz.de/oop2017/konferenz/konferenzprogramm/sessiondetails/action/detail/session/do-54/title/containerized-end-2-end-testing-automate-it.html
Setting up unit- and integration tests are tasks which developers have learned to deal. But testing UIs from the perspective of an end user is mostly still a challenge. The key question usually to answer is: How it is possible to make these end-2-end tests stable, scalable and reproducible? The upcoming container technologies bring the hope of managing and automating your UI tests as easily as your container deployment. A live demo will show how it is possible to test and monitor a web- or a rich-client application in a containerized Linux UI.
Target Audience: Architects, Developers, Tester, DevOps, Monitoring Teams
Prerequisites: none
Level: Practicing
Extended Abstract
The end-2-end test example will be demonstrated by the open source tools "Docker" and "Sakuli". The demo shows how to do a blackbox UI test of a complex application, which is build on purpose of the current microservice pattern. The results will be interpreted and visualized in the Jenkins CI build pipeline and we will take a look into the UI activity of the testing container during the test execution.
In an alternative scenario the previous build end-2-end tests will be executed with the objective to forward there results to a monitoring system like OMD Nagios. This use case makes it possible to continuously measure the runtime of different test execution steps and create alerts on broken thresholds. This approach enables a new perspective of monitoring. It is now possible to check constantly if the functionality of an application, like the user login or the search engine is up and running - not just the sever healthy state.
# Containerized end-2-end testing with Docker and Sakuli
Linkt to online presentation: https://rawgit.com/toschneck/presentation/agile-testing-meetup/index.html#/
Stabile und skalierbare Testumgebungen für End-2-End-Tests sind seit jeher schwer aufzusetzen und zu warten. Besonders in Kombination mit automatisierten UI-Tests stellen sie Tester und Entwickler immer wieder vor große Hürden. Einen eleganten Ausweg bieten in Container verpackte Testumgebungen, die sowohl Web- als auch Rich-Clients in echten Desktop-Umgebungen testen können. Als "Immutable Infrastruktur" betrieben, wird es dadurch möglich, einen definierten Systemstand jederzeit reproduzierbar aufzurufen und Tests darin performant auszuführen. Es wird gezeigt, wie z. B. parallele GUI-Tests in verschiedenen Umgebungen zur Qualitätssicherung beitragen. Die Beispiele sind mit dem Open-Source-Tools „Sakuli“ und „Docker“ realisiert.
Bei der Konzeption von End-2-End-Tests ist eines der größten Probleme die Frage, wie die Testausführung möglichst robust, reproduzierbar und skalierbar gestaltet werden kann. Diese Hürde lässt sich mit klassischen Ansätzen nicht überwinden.
Einen eleganten Ausweg bieten in Container verpackte Testumgebungen. Durch sie wird es möglich, einen definierten Systemstand reproduzierbar aufzurufen und Tests performant auszuführen.
Im Vortrag wird gezeigt, wie z.B. parallele GUI-Tests in verschiedenen Umgebungen zur Qualitätssicherung beitragen. Die Beispiele sind mit den Open-Source-Tools Sakuli und Docker realisiert und testen Web- und Rich-Client-Applikationen.
Lernziele:
Ziel ist es, dem Zuhörer aufzuzeigen, wie das Potenzial von Container-Technologien genutzt werden kann, um die Softwarequalität zu erhöhen und den manuellen Testaufwand drastisch zu verringern. Eine abschließende Bewertung der Erfahrungen sowie ein Ausblick auf weitere Einsatzszenarien und Entwicklungsschritte runden den Vortrag
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
27. Kotlin
Getters and Setters
private class Person {
var name = "defaultName"
set(value) {
// Special logic
}
get() = "Person $field"
}
Overwrite default getters
and setters
28. Kotlin
Getters and Setters
private class Person {
var name = "defaultName"
set(value) {
// Special logic
}
get() = "Person $field"
}
@Test
fun testPerson() {
val p = Person()
p.name = "unusedValue"
assertEquals("Person defaultName", p.name)
}
no value set!
67. Kotlin
When without argument
fun evaluatePassword(password: String): String {
return when {
password.isEmpty() -> ”Please enter password"
password.length < 5 -> ”Password not long enough"
!password.containsNumber() -> ”Password must contain a number"
else -> ”Password valid"
}
}
79. Kotlin
Lambda Functions
val dog = Dog("Bruno")
val greetDog: (Dog) -> String = { dog -> "Hey! ${dog.name}" }
println(greetDog(dog))
80. Kotlin
Lambda Functions
val dog = Dog("Bruno")
val greetDog: (Dog) -> String = { dog -> "Hey! ${dog.name}" }
println(greetDog(dog))
Parameter type Return type
81. Kotlin
Lambda Functions
val dog = Dog("Bruno")
val greetDog: (Dog) -> String = { dog -> "Hey! ${dog.name}" }
println(greetDog(dog))
Parameter name Lambda Body