This document provides an overview of Lift, a Scala web framework. It discusses key aspects of Lift including its architecture, templates, tags, snippets, template processing, and head merge functionality. Lift combines object-oriented and functional programming using the Scala language. It follows a "view first" design where templates contain no code and can be edited by designers without Scala knowledge.
Cartografía, anexos y estudios completos en: http://goo.gl/t9YaXM
Objetivo General: Conseguir que la Bicicleta se posicione como un modo de transporte consolidado dentro del área Metropolitana de Monterrey, es decir, que el número de viajes en bicicleta aumente y que pueda llegar al menos hasta el 5% del reparto modal.
Slides for a presentation on how to research social media. I discuss legal, ethical and privacy issues in accessing social media. I address specific sites and explore how privacy settings impact searches. I also discuss whether sites will cooperate with subpoenas along with getting the other side to download and provide accounts. In addition, I go over some question you will want to ask during the discovery process. Last I mention some specific cases and explore some ethics violations. This was presented in Philadelphia on July 30, 2015.
INTRODUCCIÓN AL LIDERAZGO INNOVADOR 4h (parte 2de2)Carlos Goga
Presentación de la segunda parte del curso INTRODUCCIÓN AL LIDERAZGO INNOVADOR 4h. Este curso es una reflexión introductoria sobre el rol que toda persona que decida innovar desde la tecnología debe desempeñar con éxito para alcanzar sus objetivos personales y empresariales. Esta segunda parte se centra en ampliar el entendimiento sobre el rol del innovador y emprendedor y sus implicaciones 360º. Este curso es una introducción que complementa al curso ENTENDIENDO EL LIDERAZGO INNOVADOR 9h.
Cartografía, anexos y estudios completos en: http://goo.gl/t9YaXM
Objetivo General: Conseguir que la Bicicleta se posicione como un modo de transporte consolidado dentro del área Metropolitana de Monterrey, es decir, que el número de viajes en bicicleta aumente y que pueda llegar al menos hasta el 5% del reparto modal.
Slides for a presentation on how to research social media. I discuss legal, ethical and privacy issues in accessing social media. I address specific sites and explore how privacy settings impact searches. I also discuss whether sites will cooperate with subpoenas along with getting the other side to download and provide accounts. In addition, I go over some question you will want to ask during the discovery process. Last I mention some specific cases and explore some ethics violations. This was presented in Philadelphia on July 30, 2015.
INTRODUCCIÓN AL LIDERAZGO INNOVADOR 4h (parte 2de2)Carlos Goga
Presentación de la segunda parte del curso INTRODUCCIÓN AL LIDERAZGO INNOVADOR 4h. Este curso es una reflexión introductoria sobre el rol que toda persona que decida innovar desde la tecnología debe desempeñar con éxito para alcanzar sus objetivos personales y empresariales. Esta segunda parte se centra en ampliar el entendimiento sobre el rol del innovador y emprendedor y sus implicaciones 360º. Este curso es una introducción que complementa al curso ENTENDIENDO EL LIDERAZGO INNOVADOR 9h.
Scala.js is a compiler that compiles Scala source code to equivalent Javascript code. It can be seen as the start of a revolution in developing web application. In this talk, I'll present Scala.js project, common libraries for having a pleasure web development (such as scalatags, autowire and upickle) and integration with well known javascript libraries such as AngularJS and React.js.
lldb kann mehr als nur einfache Breakpoints oder po. In dem Vortrag zeigt Oliver Bayer, wie sich mit Hilfe von lldb Programmcode zur Ausführungszeit manipulieren lässt, ohne das hierfür der Sourcecode anzupassen ist. Sei es, damit Test- oder Debugcode nicht in die produktiv App gelangt, oder weil der Sourcecode für einen Teil der App nicht vorliegt.
Event: macoun, 04.10.2019
Speaker: Oliver Bayer, inovex
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
With the advent of Deep Learning (DL), the field of AI made a giant leap forward and it is nowadays applied in many industrial use-cases. Especially critical systems like autonomous driving, require that DL methods not only produce a prediction but also state the certainty about the prediction in order to assess risks and failure.
In my talk, I will give an introduction to different kinds of uncertainty, i.e. epistemic and aleatoric. To have a baseline for comparison, the classical method of Gaussian Processes for regression problems is presented. I then elaborate on different DL methods for uncertainty quantification like Quantile Regression, Monte-Carlo Dropout, and Deep Ensembles. The talk is concluded with a comparison of these techniques to Gaussian Processes and the current state of the art.
Speaker: Dr. Florian Wilhelm, Simon Bachstein, inovex
Event: PyCon/PyData Berlin 2019
Datum: 10.10.2019
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Why natural language is next step in the AI evolutioninovex GmbH
In 2010 ImageNet finally ended the AI winter and gave machines the sense of sight. Within the following years dramatic improvements in tasks such as image classification and object detection lead to innovations like face ID and autonomous driving. Recently, similar developments happened in the field of natural language. Using Attention mechanism and transformers tasks such as question answering and text summarization reached new benchmarks.
This talk will not only explain those, but point out how Transfer Learning and open source models such as Google Bert will open the field to new innovations in AI.
Speaker: Nico Kreiling, inovex
Event: AIxIA, 01.10.2019
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Die Worldwide Developers Conference (WWDC) ist eine von Apple jährlich durchgeführte Konferenz für Software-Entwickler (MacOS, iOS und WatchOS). Um die WWDC 2019 nochmal Revue passieren zu lassen, wurde beim Mobile Development Karlsruhe Meetup zu einer offenen Diskussionsrunde eingeladen. Die Slides fassen die für inovexler Philipp interessantesten Neuigkeiten der WWDC2019 zusammen und dienten beim Meetup als Diskussionsgrundlage.
Event: 9. Mobile Development Meetup (WWDC Edition)
Speaker: Philipp Wallrich, inovex
Datum: 17.06.2019
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Trust is good, control is better – A short story about Network Policies.
Abstract:
Probably everybody who uses Kubernetes in a productive environment with multiple users possibly has looked at policies. Often the operators of the cluster(s) just trust the policies but in some cases it might be useful to control if the policies actually have taken action and often there are just to many Policies in the cluster setup to manually test them all (and obviously you don’t want to do this). Testing the effectiveness of the Network Policies can be done in different approaches. In this talk we will show you the benefits and drawbacks of different approaches and what solution we finally chose. Also we will show you some other tools and how they complement our solution. As a takeaway you will get an overview of different testing strategies for policies, as well as understanding challenges in testing policies in general and the Kubernetes ecosystem.
Event: ContainerDays 2019
Datum: 26.06.2019
Speaker: Johannes M. Scheuermann, Maximilian Bischoff (beide inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Interpretierbarkeit von ML-Modellen hat die Zielsetzung, die Ursachen einer Prognose offenzulegen und eine daraus abgeleitete Entscheidung für einen Menschen nachvollziehbar zu erklären. Durch die Nachvollziehbarkeit von Prognosen lässt sich beispielsweise sicherstellen, dass deren Herleitung konsistent zum Domänenwissen eines Experten ist. Auch ein unfairer Bias lässt sich durch die Erklärung aussagekräftiger Beispiele identifizieren.
Prognosemodelle lassen sich grob in intrinsisch interpretierbare Modelle und nicht-interpretierbare (auch Blackbox-) Modelle unterscheiden. Intrinsisch interpretierbare Modelle sind dafür bekannt, dass sie für einen Menschen leicht nachvollziehbar sind. Ein typisches Beispiel für ein solches Modell ist der Entscheidungsbaum, dessen regelbasierter Entscheidungsprozess intuitiv und leicht zugänglich ist. Im Gegensatz dazu gelten Neuronale Netze als Blackbox-Modelle, deren Prognosen durch die komplexe Netzstruktur schwer nachvollziehbar sind.
In diesem Talk erläuterte Marcel Spitzer das Konzept von Interpretierbarkeit im Kontext von Machine Learning und stellte gängige Verfahren zur Interpretation von Modellen vor. Besonderen Fokus legte er dabei auf modellunabhängige Verfahren, die sich auch auf prognosestarke Blackbox-Modelle anwenden lassen.
Event: M3 Minds Mastering Machines
Speaker: Marcel Spitzer
Blog-Artikel: https://www.inovex.de/blog/machine-learning-interpretability/
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
Das Ökosystem rund um Kubernetes wächst täglich. Insbesondere cloud-native Continuous-Deployment-Strategien stehen Hoch im Kurs und werden in diversen Open-Source-Projekten vorangetrieben. In einer Reihe von Evalutionen nimmt inovex diese Tools genauer unter die Lupe - den Anfang macht Jenkins X.
Jenkins X wurde im März 2018 veröffentlicht. Das Konzept hinter dem Tool ist primär, bestehende Teillösungen (Helm, Skaffold, Prow, Tekton) einzusetzen, um sie abstrahiert in ein Kommandozeilen-Interface zu packen. Der Vortrag beschreibt sowohl die klassische Architektur als auch den "Severless"-Ansatz. Des weiteren werden das Kommandozeilen-Tool "jx", der allgemeine Entwicklungs-Workflow sowie diverse Features vorgestellt.
Bei unseren Tests im Rahmen der Evaluation sind uns einige Stolpersteine aufgefallen. Es sind vor allem die vielen eingesetzten Dritt-Tools, die den Betrieb und den Upkeep eines mit Jenkins X erstellten Clusters verkomplizieren. Als Fazit stellen wir Jenkins X im Mai 2019 ein "befriedigend" aus und beobachten gespannt, wie sich das Tool in den kommmenden Monaten und Jahren weiterentwickeln wird.
Event: Talk4Nerds, 29.04.2019
Speaker: Simon Kienzler, Johannes M. Scheuermann (beide inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Neben dem großen Machine-Learning-Trend in der Cloud zeichnet sich zunehmend die Tendenz ab, bestimmte Aufgaben direkt auf Edge-Geräten auszuführen. Wir erkunden die Vorteile von Auswertungen direkt an der Quelle der Daten und die damit verbundenen Herausforderungen. Denn die Rechenleistung der Cloud steht uns hier leider nicht zur Verfügung.
Zur Lösung stehen uns verschiedene Hardwareoptionen wie CPUs, GPUs, FPGAs oder spezielle ASICs und Frameworks zur Verfügung, die wir am Beispiel von einem Convolutional Neural Network evaluieren. Dabei gibt es praktische Tipps und Erfahrungen aus realen Projekten sowie anschauliche Demos auf verschiedenen Hardwareplattformen.
Vorkenntnisse:
Vorkenntnisse über tiefe neuronale Netze sind von Vorteil.
Lernziele:
- Verständnis über die Vorteile von AI auf Edge-Geräten und den damit verbundenen Herausforderungen.
- Wissen über die verschiedenen Hard- und Softwarelösungen erlangen, um diese in eigenen Projekten einzusetzen.
Event: building IoT, 03.04.2019
Speaker: Dominik Helleberg, inovex
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Blog-Artikel: inovex.de/blog
Der Talk auf der Konferenz „Talk4Nerds“ der R+V Versicherung bot eine Einführung in Prometheus als Monitoring-Lösung. Dabei ging inovexler Christoph auf die Anforderungen an ein modernes Monitoring Tool ein, wie Prometheus diesen Anforderungen entspricht und warum es zum defacto Standard im Kubernetes-Umfeld geworden ist. Abschließen beleuchtete Christoph die Non-Goals und wie man diese mit zusätzlichen Tools dennoch erreichen kann.
Speaker: Christoph Petrausch (inovex)
Event: Talk4Nerds
Datum: 29.04.2019
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Recommender systems support the decision making processes of customers with personalized suggestions. These widely used systems influence the daily life of almost everyone across domains like ecommerce, social media, and entertainment. However, the efficient generation of relevant recommendations in large-scale systems is a very complex task. In order to provide personalization, engines and algorithms need to capture users’ varying tastes and find mostly nonlinear dependencies between them and a multitude of items. Enormous data sparsity and ambitious real-time requirements further complicate this challenge. At the same time, deep learning has been proven to solve complex tasks like object or speech recognition where traditional machine learning failed or showed mediocre performance.
Join Marcel Kurovski to explore a use case for vehicle recommendations at mobile.de, Germany’s biggest online vehicle market. Marcel shares a novel regularization technique for the optimization criterion and evaluates it against various baselines. To achieve high scalability, he combines this method with strategies for efficient candidate generation based on user and item embeddings—providing a holistic solution for candidate generation and ranking.
The proposed approach outperforms collaborative filtering and hybrid collaborative-content-based filtering by 73% and 143% for MAP@5. It also scales well for millions of items and users returning recommendations in tens of milliseconds.
Event: O'Reilly Artificial Intelligence Conference, New York, 18.04.2019
Speaker: Marcel Kurovski, inovex GmbH
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
In seinem Meetup Talk berichtete Maximilian von den aktuellen Problemen von Cloud Computing – insbesondere im Internet of Things – und wie diese durch Edge Computing mitigiert werden können. Er erklärte, wie eine generische Edge-Computing-Architektur aussehen kann und zeigte Anwendungsfälle, von denen manche auch schon in existierenden Produkten umgesetzt sind.
Im Anschluss stellte er Azure IoT Edge vor und erläuterte, wie es das bestehende IoT Framework von Microsoft erweitert sowie die Grundkonzepte, die IoT Edge bereitstellt. Auch die Probleme in dem noch jungen Produkt wurden angesprochen, aber auch die Vorteile und Features, die es liefert.
In der gemeinsamen Demo mit Eli haben dann beide Speaker die technischen Details von Azure IoT Edge gezeigt und demonstriert, beispielsweise wie Code automatisiert von einer CI/CD-Pipeline in Azure DevOps auf ein IoT-Gerät deployed werden kann.
Event: inovex Meetup, 12.03.& 19.03.2019
Speaker: Maximilian Bischoff, inovex
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Es liegt in der Natur des Menschen das Unvorhersehbare vorherzusagen: Wetter, Aktienkurse, Krankheitsverläufe, die Reaktion eines Menschen. Neueste Deep Learning Ansätze sind in der Lage solche sequentielle Sachverhalte immer genauer zu prognostizieren, setzen aber auch immer größere Datenmengen und Rechenleistungen voraus, die sowohl in Forschung als auch in der Praxis häufig nicht vorliegen. Wie kann man gute Ergebnisse erreichen, wenn nur wenig Daten vorliegen?
Marisa Mohr stellte in ihrem Vortrag einen neuen und vielversprechenden informationstheoretischen Ansatz zum Feature Learning von sequentiellen Daten vor, der potenziell auch mit wenigen Daten auskommt. Dabei ging es speziell um ordinale Muster in Zeitreihen, wie sie beispielsweise als Veränderung von Emotionen im Gesprächsverlauf zu finden sind. Eine solche Entwicklung ist für Menschen in der Regel leicht zu erkennen. Chatbots hingegen können nicht intuitiv auf solche Emotionsverläufe reagieren, sondern müssen entsprechend programmiert werden.
Details:
Deep-Learning-Ansätze wie LSTMs, RNNs oder TCNs haben sich im Umgang mit sequentiellen Daten bewährt. Neuronale Netzwerke sind tief im technischen Sinn, weil sie mehrere (verborgene) Schichten besitzen, aber nicht weil sie ein tiefes Verständnis von Problemen entwickeln. In diesem Vortrag stellte Marisa einen symbolischen informationstheoretischen Ansatz des Representation Learnings von Zeitreihen vor und damit eine Möglichkeit, konzeptionelle Schichten zu konstruieren. Die Idee hinter der sogenannten Permutationsentropie besteht darin, anstelle der Werte einer Zeitreihe die Ordnungsrelation zwischen den Werten zu betrachten, und so auf das natürliche Auf und Ab des zugrundeliegenden dynamischen Systems zurückzugreifen.
Event: inovex Meetup: Das Unvorhersehbare vorhersagen: Zeitreihen und Chatbots, 26.03.2019
Speakerin: Marisa Mohr (inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Talk to me – Chatbots und digitale Assistenteninovex GmbH
Menschliche Kommunikation folgt zwar einer ganzen Reihe von Regeln, diese lassen sich aber schwer formalisieren. Nicht zuletzt deshalb, weil in unseren Interaktionen immer auch eine Fülle von Welt- und implizitem Kontextwissen eine Rolle spielt. Rein regelbasierte Chatbots sind daher nicht nur äußert komplex in der Programmierung, sondern stoßen in vielen Anwendungsbereichen schnell an ihre Grenzen.
In diesem Vortrag gab Anna Weißhaar einen Überblick über die aktuellen Lösungen und Herausforderungen im Bereich digitale Assistenten. Der Fokus lag dabei auf Ansätzen, die Chatbots „chatty“ machen, sie also möglichst adäquat auf im Voraus unbekannte Nutzereingaben reagieren zu lassen.
Event: inovex Meetup: Das Unvorhersehbare vorhersagen: Zeitreihen und Chatbots, 26.03.2019
Speaker: Anna Weißhaar (inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Nicht zuletzt durch die medienwirksame Erfolge des maschinellen Lernens durch DeepMind, OpenAI und Kollegen ist Künstliche Intelligenz im Moment wieder in aller Munde. Einerseits locken zahlreiche neue, vorher undenkbare Anwendungen wie die automatische Diagnose von Krankheiten, autonome Fahrzeuge und Drohnen, oder die automatische Übersetzung gesprochener Wörter. Andererseits warnen mahnenden Stimmen wird vor dem zunehmendem Einflussnahme der „Algorithmen“ auf fast alle Bereiche unseres Lebens sowie vor unerwünschten Folgen von sich verselbstständigenden Computern gewarnt. Einige träumen von – oder fürchten sich vor – der vermeintlich unausweichlichen Singularität, an der sich nichts weniger als das Schicksal der gesamten Menschheit entscheiden wird. Doch was verbirgt sich hinter dem Begriff Künstliche Intelligenz? Je nachdem, wen man fragt, erhält man unterschiedliche, bisweilen gegensätzliche Antworten. Dieser Vortrag stellt einige dieser Antworten vor und versucht sie (nicht nur) anhand von Beispielen aus Forschung und Anwendung einzuordnen.
Event: Business Analytics Day, 07.03.2019
Speaker: Dr. Matthias Richter, Dr. Stefan Igel (inovex)
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
In den letzten drei Jahren haben wir die Infrastruktur der Fernseh-Plattform waipu.tv gebaut. Dabei haben wir angefangen Tools für den Betrieb in Golang zu schreiben. Aus einigen der Tools wurden Core-Services, die auch die Last einer Fußball-WM-Übertragung locker wegstecken. Wir wollen euch zeigen, wie wir mit der selben Tool-Chain (Golang & Co) Betriebs-Probleme lösen und kritische Business-Applikationen entwickeln. Klassisch DevOps oder Golden Hammer?
Speaker: Christoph Petrausch, Igor Lankin (beide inovex)
Event: DevOpsConference, 04.12.2018
Mehr Tech-Vorträge: inovex.de/vortraege
Mehr Tech-Artikel: inovex.de/blog
Das Android Open Source Project, kurz AOSP, ist das Betriebssystem, das auf den meisten heutigen und wahrscheinlich auch auf deinem Smartphone läuft. Es ist die Basis für das Android-App-Universum und wird von Millionen Nutzern und Entwicklern auf der Welt verwendet. Wegen der offenen Verfügbarkeit des Source Codes ist es auch die Basis für bekannte Custom ROMs wie LineageOS.
Der erste Teil des Talks gab eine Übersicht über die Architektur des Betriebssystems, das App-Ökosystem, den Hardware Abstraction Layer (HAL), die Sicherheitskonzepte und einige neue Betriebssystementwicklungen wie Project Treble in Android 8.0.
Der zweite Teil des Talks gab einen Einblick in den Quellcode und die Struktur des AOSP: Wie lädt man sich den Source Code herunter, wie baut man das AOSP für unterstützte Geräte und wie kann man die eigenen ROMs auf ein Smartphone flashen? Zum Spaß wurde auch noch in einige Implementierungsdetails von Android-App-API-Funktionen geblickt, die man als App Developer schon aufgerufen hat.
Speaker: Stefan Lengfeld, inovex
Event: inovex Meetup Köln, 23.10.2018
Mehr Tech-Vorträge: www.inovex.de/vortraege
Mehr Tech-Artikel: www.inovex.de/blog
Interpretable Machine Learning describes the process of revealing causes of predictions and explaining a derived decision in a way that is understandable to humans. The ability to understand the causes that lead to a certain prediction enables data scientists to ensure that the model is consistent to the domain knowledge of an expert. Furthermore, interpretability is critical to obtain trust in a model and to be able to tackle problems like unfair biases or discrimination against particular subgroups. This talk covers an introduction to the concept of interpretability and an overview of popular interpretability techniques.
Speaker: Marcel Spitzer, inovex
Event: Kaggle Munich Meetup, 20.11.2018
Mehr Tech-Vorträge: www.inovex.de/vortraege
Mehr Tech-Artikel: www.inovex.de/blog
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
Online vehicle marketplaces are embracing artificial intelligence to ease the process of selling a vehicle on their platform. The tedious work of copying information from the vehicle registration document into some web form can be automated with the help of smart text-spotting systems, in which the seller takes a picture of the document, and the necessary information is extracted automatically.
Florian Wilhelm details the components of a text-spotting system, including the subtasks of object detection and optical character recognition (OCR). Florian elaborates on the challenges of OCR in documents with various distortions and artifacts, which rule out off-the-shelf products for this task. After offering an overview of semisupervised learning based on generative adversarial networks (GANs), Florian evaluates the performance gains of this method compared to supervised learning. More specifically, for a varying amount of labeled data, he compares the accuracy of a convolution neural network (CNN) to a GANthat uses additional unlabeled data during the training phase, showing that GANs significantly outperform classical CNNs in use cases with a lack of labeled data.
What you'll learn:
Understand how semisupervised learning with GANs works
Explore beneficial semisupervised methods based on GANs for use cases with a limited amount of labeled data
Gain insight into an interesting OCR use case of an online vehicle marketplace
Event: O'Reilly Artificial Intelligence Conference, London, 11.10.2018
Speaker: Dr. Florian Wilhelm
Mehr Tech-Vorträge: www.inovex.de/vortraege
Mehr Tech-Artikel: www.inovex.de/blog
People & Products – Lessons learned from the daily IT madnessinovex GmbH
IT im 21. Jahrhundert – What a time to be alive! Es gibt einen (unüberschaubaren) Zoo an Methoden und Produkten die uns so viel Freude an der Arbeit bereiten! Sie sind modern, weil sie neu sind. Sie fordern unser Können heraus, weil sie komplex sind. Sie lösen einige Probleme, die wir vorher nicht hatten. Jeder will sie verwenden, weil Google, Netflix & Co. sie propagieren und Hand auf’s Herz: Will nicht jeder gerne so arbeiten wie Google, Netflix & Co.? Aber macht das wirklich Sinn?
In diesem Vortrag blicken wir auf diverse Erkenntnisse aus dem Einsatz agiler Produktentwicklung, DevOps, Continuous Integration/Delivery, Infrastructure as Code, Immutable Infrastructure (bspw. Docker/Kubernetes), Application Logging und Service Monitoring.
Learning Goals:
- Wir müssen den Einsatz von Methoden und Tools an die Menschen ausrichten, die sie (weiter-)entwickeln und benutzen sollen.
- Manchmal lösen wir mit neuen Tools Probleme, die wir vorher nicht hatten.
- Die Suche nach einfachen Lösungen für komplexe Probleme ist essentiell, aber nicht immer einfach.
Event: Continuous Lifecycle, 15.11.2018
Speaker: Arnold Bechtoldt
Mehr Tech-Vorträge: www.inovex.de/vortraege
Mehr Tech-Artikel: www.inovex.de/blog
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
Pulumi (pulumi.io) offers an open source platform to create/manage and deploy your infrastructure in realy programming languages like JavaScript/TypeScript, Go and Python. As Cloud platforms the major 3 cloud providers are supported and additionally you can also use Pulumi with OpenStack and Kubernetes to deploy your applications in the cloud.
In this talk we will take a look how Pulumi is different to traditional solutions like Terraform or the Cloud Provider specific solutions (e.g. CloudFormation). The main focus will be on deploying your services on top of Kubernetes. The talk will contain a little theory part about Pulumi, the rest of the talk is more focused on demos and practical parts. One focus of the talk is the difference of Pulumi to kubectl and helm (or to be precise how they complement each other.
As a takeaway of this talk you should understand the basics of Pulumi and know what are the differences to the traditional deployment tools.
Event: CNCF Meetup Hamburg & Stuttgart, 29.10.2018 & 07.11.2018
Speaker: Johannes M. Scheuermann, inovex
Mehr Tech-Vorträge: https://www.inovex.de/de/content-pool/vortraege/
Mehr Tech-Artikel: https://www.inovex.de/blog/
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
5. Scala = SCAlable LAnguage
wächst mit den Bedürfnissen der User
kleine Skripte bis hin zu großen und komplexen
Systemen
Multiparadigmensprache
verbindet objektorientierte (imperative) und funktionale
Programmierung
pragmatisch, typsicher, strikt objektorientiert
interoperabel mit Standard Plattformen (Java, .NET) 4
6. Wurzeln reichen zurück in das Jahr 1995
Philip Wadler und Martin Odersky
Funktionale Programmiersprachen für die JVM
Pizza
GJ (Generic Language Extension für Java)
javac
Java Generics
1999 verfolgte Martin Odersky das Ziel funktionale mit
OO Programmierung zu kombinieren
Funnel
Scala
*2001, 2003 erstes Public Release, 2006 Version 2.0,
aktuell 2.7.4 RC1 5
7. Ziel von Scala:
Das Beste aus beiden Welten (OO und FP)
Statisch typisiert + Typinferenz
Funktionen höherer Ordnung
Traits, Mixin-Komposition
Option-Klasse (None und Some vs. null)
Pattern Matching
Algebraische Typen
Native XML-Unterstützung inkl. XPath Unterstützung (Bibliothek)
Actor Model
Currying
Anonyme Funktionen
Parametrische Polymorphie 6
8. Einige reservierte Schlüsselwörter in Scala
class, case class, object
new
with
extends
abstract
sealed
trait
def, var, val
override
match, case
7
13. Imperative vs. funktionale Programmierung (I)
public class Example1 {
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
}
10
14. Imperative vs. funktionale Programmierung (I)
public class Example1 {
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
}
object Example1 {
def main(args: Array[String]) {
args.foreach(println)
}
}
10
15. Imperative vs. funktionale Programmierung (II)
public class Example2 {
public static void main(String[] args) {
for (String arg : args) {
if (arg.startsWith("JAX09")) {
System.out.println(arg);
}
}
}
}
11
16. Imperative vs. funktionale Programmierung (II)
public class Example2 {
public static void main(String[] args) {
for (String arg : args) {
if (arg.startsWith("JAX09")) {
System.out.println(arg);
}
}
}
}
object Example2 {
def main(args: Array[String]) {
args.filter(_.startsWith("JAX09")).foreach(println)
}
} 11
17. Imperative vs. funktionale Programmierung (III)
public class Example3 {
public static void main(String[] args) {
boolean exists = false;
for (String arg : args) {
if (arg.startsWith("JAX09")) {
exists = true;
break;
}
}
System.out.print(exists);
}
}
12
18. Imperative vs. funktionale Programmierung (III)
public class Example3 {
public static void main(String[] args) {
boolean exists = false;
for (String arg : args) {
if (arg.startsWith("JAX09")) {
exists = true;
break;
}
}
System.out.print(exists);
}
}
object Example3 {
def main(args: Array[String]) {
print(args.exists(_.startsWith("JAX09")))
}
} 12
20. David Pollak
Gründer von Lift
Kommerzielle Softwareentwicklung seit 1977
Web-Applikationen seit 1996
15. Februar 2007:
Initial Import (GitHub) in der Version 0.1.0
Gründung von Lift als OS Projekt in 2007
26. Februar 2009:
Lift 1.0
Aktuelles Lift-Team besteht aus 13 Comitter
Aktive Community
http://groups.google.com/group/liftweb 14
21. „Best of all“
Scala als zugrundeliegende Sprache
nativer XML-Support (XHTML nativ innerhalb von Snippets!)
Scala Actors für mächtige Comet-Anwendungen
fein granulare Sessions und Security (Seaside)
schnelles Projektsetup durch „convention over
configuration“ + geringe Turnaround-Zeiten (Rails)
Django's "more than just CRUD is included"
Designer freundliche Templates (Wicket / Lift View First)
Offen für die Nutzung von zahlreichen OSS-Bibliotheken
(Java)
Etablierte Deployment-Prozesse (JEE / Java) 15
22. Weitere Eigenschaften / Ziele von Lift
Sicherheit
XSS, replay Attacken, Parameter tampering
Wartbarkeit
Skalierbarkeit
Performance
Hohe Produktivität
Einfach
Convention over configuration
DRY
16
23. „View First“ Design-Prinzip
Templates enthalten keinen Code
Pures XHTML
Können mit Standard Design-Werkzeugen bearbeitet
werden
Frontend ist ohne Scala-Kenntnisse von einem Designer
realisierbar
<lift:surround with="default" at="content">
<h2>Welcome to your project!</h2>
<p><lift:helloWorld.howdy /></p>
</lift:surround>
17
50. Template
Template Verarbeitung
Request Mapping nach folgendem Schema
<path>[_<language, optional>][.<suffix>]
Lift wählt die passende Sprache und Endung
22
51. Template
Template Verarbeitung
Request Mapping nach folgendem Schema
<path>[_<language, optional>][.<suffix>]
Lift wählt die passende Sprache und Endung
Links ohne Sprache und Endung angeben
22
52. Template
Template Verarbeitung
Request Mapping nach folgendem Schema
<path>[_<language, optional>][.<suffix>]
Lift wählt die passende Sprache und Endung
Links ohne Sprache und Endung angeben
Lift versteckt Templates und
Ressourcen in Verzeichnissen
welche als Endung -hidden im
Namen tragen
22
53. Template
Template Verarbeitung
Request Mapping nach folgendem Schema
<path>[_<language, optional>][.<suffix>]
Lift wählt die passende Sprache und Endung
Links ohne Sprache und Endung angeben
Lift versteckt Templates und
Ressourcen in Verzeichnissen
welche als Endung -hidden im
Namen tragen
22
58. ›
Template
Template Verarbeitung von Außen nach Innen
24
59. ›
Template
Template Verarbeitung von Außen nach Innen
/index.html
<lift:surround with="default" at="content">
<h2>Welcome to your project!</h2>
<p><lift:HelloWorld.howdy /></p>
</lift:surround>
24
60. ›
Template
Template Verarbeitung von Außen nach Innen
/index.html
<lift:surround with="default" at="content">
<h2>Welcome to your project!</h2>
<p><lift:HelloWorld.howdy /></p>
</lift:surround>
/templates-hidden/default.html
<html xmlns="..." xmlns:lift="http://liftweb.net/">
<head>...</head>
<body>
...
<lift:bind name="content" />
</body>
</html>
24
61. ›
Template
Template Verarbeitung von Außen nach Innen
/index.html
<lift:surround with="default" at="content">
<h2>Welcome to your project!</h2>
<p><lift:HelloWorld.howdy /></p>
</lift:surround>
/templates-hidden/default.html
<html xmlns="..." xmlns:lift="http://liftweb.net/">
<head>...</head>
<body>
...
<lift:bind name="content" />
</body>
</html>
Ausführung von HelloWorld#howdy 24
99. Boot.scala
def boot {
if (!DB.jndiJdbcConnAvailable_?)
DB.defineConnectionManager(DefaultConnectionIdentifier, DBVendor)
// where to search snippet
LiftRules.addToPackages("de.inovex.jax2009.lift")
// create or update the database schema
Schemifier.schemify(true, Log.infoF _, User)
// build site map
val entries = Menu(Loc("Home", List("index"), "Home")) :: User.sitemap
LiftRules.setSiteMap(SiteMap(entries:_*))
// Show the spinny image when an Ajax call starts
LiftRules.ajaxStart = Full(() => LiftRules.jsArtifacts.show("ajax-loader").cmd)
// Make the spinny image go away when it ends
LiftRules.ajaxEnd = Full(() => LiftRules.jsArtifacts.hide("ajax-loader").cmd)
// force the request to be UTF-8
LiftRules.early.append(makeUtf8)
S.addAround(DB.buildLoanWrapper)
} 37
121. Pro
Sehr schicke Sprachfeatures
„Best of all“ Prinzip
Junge und dynamische Community
Sehr gut für interaktive Webbapplikationen („Real time web“)
Native, volle JVM Geschwindigkeit
100% kompatibel mit Java
Läuft auf Standard Servlet-Container (Jetty, Tomcat, ...)
44
122. Pro
Sehr schicke Sprachfeatures
„Best of all“ Prinzip
Junge und dynamische Community
Sehr gut für interaktive Webbapplikationen („Real time web“)
Native, volle JVM Geschwindigkeit
100% kompatibel mit Java
Läuft auf Standard Servlet-Container (Jetty, Tomcat, ...)
Cons
Steile Lernkurve
Wenig Scala Ressourcen am Markt verfügbar (XING: 164)
Noch weniger Lift Ressourcen verfügbar (XING: 3)
Keine mir bekannten große Installationen aktuell vorzeigbar 44
123. Aktuell Roadmap 1.1 (Auszug der Lift Newsgroup)
Improved documentation: better VScalaDoc coverage as well as better tutorial and
cook-book documentation.
Improved J2EE support including JTA and Portlets.
Finish Record/Field code with backing store including JDBC, JPA and Goat Rodeo
(what's Goat Rodeo? http://goatrodeo.org)
Improved client-side JavaScript support and better JavaScript abstractions.
Client/Server data synchronization (integrated with Record/Field)
Improved support for REST.
Improved performance including caching templates when running in production
mode.
OSGi support.
Improved testing framework and better testing support when running in "test" mode.
Implement Servlet 3.0 support.
HTML 5 and Web Sockets support and integration with Kaazing's Web Sockets
server. Also, sensing which browser is making the request and performing
optimizations based on that browser's characteristics (specifically, Chrome and
Firefox 3.1 support) 45
125. Exploring Lift
Mail 2009, oder LyX Version!
Derek Chen-Becker,
Tyler Weir, Marius Danciu
Beginning Scala
Mail 2009
David Pollak
Programming in Scala
Martin Odersky,
Lex Spoon, and Bill Venners
...
47
126. Fragen & Antworten
Tobias Joch
System Architecture
Project Management
inovex GmbH
Karlsruher Straße 71
75179 Pforzheim
0173.3181 004
tobias.joch@inovex.de
www.inovex.de
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
127. Vielen Dank! ;)
Tobias Joch
System Architecture
Project Management
inovex GmbH
Karlsruher Straße 71
75179 Pforzheim
0173.3181 004
tobias.joch@inovex.de
www.inovex.de
Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.