IT-Tage 2021: Java to Go - Google Go für Java-Entwickler Jan Stamer
Die Programmiersprache Go ist angesagt – und das zu Recht. Populäre Projekte wie Kubernetes, Docker oder Terraform zeigen, dass Go bestens geeignet ist, um moderne Anwendungen für die Cloud zu entwickeln. Aber was macht Go interessant für Java-Entwickler? Go ist durch und durch auf Nebenläufigkeit und Parallelisierung ausgelegt. Außerdem hat Go ein statisches Typsystem und ist rasend schnell. Aber vor allem: Go macht Spaß.
In dieser Session lernt Ihr die Sprache Go mit ihren Stärken und Schwächen aus Sicht eines Java Entwicklers kennen. Ihr bekommt einen sehr praxisbezogenen Einstieg, HandsOn anhand von kleinen Projekt Beispielen.
Funktionale Programmierung und mehr mit Scalathoherr
Anhand von Beispielen werden einige Konzepte der funktionalen Programmierung im Allgemeinen und die objekt-funktionale Sprache Scala im Besonderen vorgestellt.
Vortrag von 42ways im Rahmen der IT-Weiterbildungsveranstaltungen bei der SwissLife AG, Niederlassung für Deutschland, München.
der aktuelle Stand Perl 5.20 an features und Kultur: beeinflusst von Perl 6 wird an den wesentlichen Stellen aufgeräumt: dies war das Update für den Linuxtag in Chemnitz März 2015
Warum ECMAScript 6 die Welt ein Stückchen besser machtSebastian Springer
Wo die Neuerungen von ECMAScript 5 recht unspektakulär waren, sind die Features des neuen Sprachstandards umso interessanter. ECMAScript 6 versucht einige Anforderungen zu erfüllen, mit denen man als JavaScript-Entwickler täglich konfrontiert ist. Klassische Beispiele sind hier Promises zum Umgang mit asynchronen Funktionen, ein Module Loader zur Strukturierung der Applikation, Generatoren und Iteratoren oder aber ein neuer Gültigkeitsbereich für Variablen. Aber nicht nur große Änderungen, sondern auch sinnvolle Erweiterungen bestehender Objekte wie String und Array halten mit dem neuen Standard Einzug in den Browser. Problematisch wird die Situation jedoch, wenn man in den Genuss verschiedener Features kommen möchte, die aktuell noch von keinem Browser unterstützt werden. Hier schafft Traceur, der ECMAScript-6-Compiler von Google, Abhilfe.
nagiosplugin - eine Python-Bibliothek für Monitoring-Plugins Christian Kauhaus
Auch wenn in der letzten Zeit sehr viel Bewegung in die Monitoring-Szene gekommen ist (#monitoringsucks etc.), werden die Platzhirsche Nagios/Icinga und ihre Standards auf absehbare Zeit nicht verschwinden. Das Nagios-Plugin-API stellt eine sehr weit verbreitete Schnittstelle zur Anbindung einzelner Checks an Monitoring-Systeme dar. Obwohl das API in den Grundzügen sehr einfach ist, ist der Programmieraufwand für vollständig konforme Plugins erstaunlich hoch.
Die nagiosplugin-Bibliothek nimmt dem Entwickler viele Details ab, so dass er sich auf den Inhalt seiner Checks konzentrieren kann. Der Vortrag führt in das Schreiben von Nagios-kompatiblen Plugins ein, zeigt den typischen Aufbau von Nagios-Plugins und das Grundprinzip eigener Plugins. Die Konfiguration und der Betrieb von Monitoring-Systemen im Großen sollen nicht thematisiert werden.
Video: http://pyvideo.org/video/1460/nagiosplugin-eine-python-bibliothek-fur-monitor
Konferenzseite: https://2012.de.pycon.org/programm/schedule/sessions/45/
Projekt-Homepage: https://projects.gocept.com/projects/nagiosplugin/wiki
Vortrag der OOP 2014
Überblick über die Vorteile der Programmiersprache Go für skalierbare Anwendungen sowie ein Einblick in hierbei zu beachtende Probleme und ihre Lösung.
Überblick über die Entwicklung mit Clojure bei HEROLABS.
* Warum haben wir uns für Clojure entschieden? (Simplicity, Erweiterbarkeit, Java-Interop)
* Was heißt Funktionale Programmierung?
=> Man braucht ein anderes Mindset
* Was uns stört.
* Und wie entwickelt man mit Clojure (Ecosystem)?
Anlass war ein Talk bei mgm-tp.
Nagios Conference 2007 | Monitoring von Logfiles mit check_logfiles by Gerhar...NETWAYS
Viele Fehlerzustände lassen sich nicht durch Kommandos abfragen, sondern werden von den entsprechenden Betriebssystemen/Treibern/Applikationen in Logfiles geschrieben. Solche "Hilferufe" aufzuspüren ist die Aufgabe des Plugins check_logfiles. Auch nach dem Rotieren und Komprimieren von Logfiles entstehen keine Lücken. Check_logfiles lässt keine Zeile ungeprüft. In der Praxis wird das Plugin eingesetzt zur Überwachung von Betriebssystemmeldungen, MySQL, Oracle, SAN-Devices, Hardware-Health, Snort, Cisco-Routern, eben allem, was Meldungen in Logfiles schreibt. --> Zur ConSol* Newsmeldung
Bei uns testen lauter Affen - Das Ende der BanensoftwareSAP SE
Wer hat den Teufelskreis aus Testing und Debugging noch nicht erlebt:
In zwei Wochen ist Release-Date und die Tester finden täglich neue Fehler.
Jeder Fehler führt zu einer Änderung im Programm.
Und jede Änderung kann selbst wieder Fehler verursachen und muss deshalb getestet werden...
Software-Fehler kosten die deutsche Wirtschaft bis zu 10 Mrd Euro im Jahr. Deshalb macht Testen derzeit ca. 20% der Kosten einer neuen Software aus, Tendenz steigen. Alleine für Java-Software sind das in Deutschland ca. 3,4 Mrd. Euro im Jahr. Diese Kosten entstehen hauptsächlich durch manuelles Testen bzw. manuelle Testfallerstellung. Der Automatisierungsgrad beim Testen liegt derzeit bei ca. 15%. Was wenn man automatisch Testen könnte? Und d.h. nicht manuell erstellte Tests (die will sowieso keiner erstellen und erst recht keiner pflegen) automatisch ablaufen lassen, sondern wirklich vollautomatisch Testen?
Monkey-Testing bezeichnet zufallsbasiertes Testen von Software über die Benutzeroberfläche, und findet vollautomatisch und kostengünstig Fehler. In diesem Vortrag zeige ich, wie jeder Anwesende mit ein paar Zeilen Code einen eigenen primitiven Affen zum automatischen Testen programmieren kann. Davon ausgehend zeige ich Ansätze und Konzepte, wie man diesen Affen (u.a. mit genetischen Algorithmen) immer weiter verbessern kann, bis er teilweise bessere Ergebnisse als menschliche Tester bringt. Dazu gibt es Demos und Erfahrungsberichte aus großen Projekten.
Talk zum Thema Nebenläufigkeit auf der OOP 2016 in München. Neben einer prinzipiellen Einführung und Motivation werden die Sprachen Erlang/OTP, Google Go und Pony vorgestellt. Weiter sind einige typische Designmuster sowie Fallstricke enthalten. Der Vortrag hatte die Dauer von 90 Minuten.
nagiosplugin - eine Python-Bibliothek für Monitoring-Plugins Christian Kauhaus
Auch wenn in der letzten Zeit sehr viel Bewegung in die Monitoring-Szene gekommen ist (#monitoringsucks etc.), werden die Platzhirsche Nagios/Icinga und ihre Standards auf absehbare Zeit nicht verschwinden. Das Nagios-Plugin-API stellt eine sehr weit verbreitete Schnittstelle zur Anbindung einzelner Checks an Monitoring-Systeme dar. Obwohl das API in den Grundzügen sehr einfach ist, ist der Programmieraufwand für vollständig konforme Plugins erstaunlich hoch.
Die nagiosplugin-Bibliothek nimmt dem Entwickler viele Details ab, so dass er sich auf den Inhalt seiner Checks konzentrieren kann. Der Vortrag führt in das Schreiben von Nagios-kompatiblen Plugins ein, zeigt den typischen Aufbau von Nagios-Plugins und das Grundprinzip eigener Plugins. Die Konfiguration und der Betrieb von Monitoring-Systemen im Großen sollen nicht thematisiert werden.
Video: http://pyvideo.org/video/1460/nagiosplugin-eine-python-bibliothek-fur-monitor
Konferenzseite: https://2012.de.pycon.org/programm/schedule/sessions/45/
Projekt-Homepage: https://projects.gocept.com/projects/nagiosplugin/wiki
Vortrag der OOP 2014
Überblick über die Vorteile der Programmiersprache Go für skalierbare Anwendungen sowie ein Einblick in hierbei zu beachtende Probleme und ihre Lösung.
Überblick über die Entwicklung mit Clojure bei HEROLABS.
* Warum haben wir uns für Clojure entschieden? (Simplicity, Erweiterbarkeit, Java-Interop)
* Was heißt Funktionale Programmierung?
=> Man braucht ein anderes Mindset
* Was uns stört.
* Und wie entwickelt man mit Clojure (Ecosystem)?
Anlass war ein Talk bei mgm-tp.
Nagios Conference 2007 | Monitoring von Logfiles mit check_logfiles by Gerhar...NETWAYS
Viele Fehlerzustände lassen sich nicht durch Kommandos abfragen, sondern werden von den entsprechenden Betriebssystemen/Treibern/Applikationen in Logfiles geschrieben. Solche "Hilferufe" aufzuspüren ist die Aufgabe des Plugins check_logfiles. Auch nach dem Rotieren und Komprimieren von Logfiles entstehen keine Lücken. Check_logfiles lässt keine Zeile ungeprüft. In der Praxis wird das Plugin eingesetzt zur Überwachung von Betriebssystemmeldungen, MySQL, Oracle, SAN-Devices, Hardware-Health, Snort, Cisco-Routern, eben allem, was Meldungen in Logfiles schreibt. --> Zur ConSol* Newsmeldung
Bei uns testen lauter Affen - Das Ende der BanensoftwareSAP SE
Wer hat den Teufelskreis aus Testing und Debugging noch nicht erlebt:
In zwei Wochen ist Release-Date und die Tester finden täglich neue Fehler.
Jeder Fehler führt zu einer Änderung im Programm.
Und jede Änderung kann selbst wieder Fehler verursachen und muss deshalb getestet werden...
Software-Fehler kosten die deutsche Wirtschaft bis zu 10 Mrd Euro im Jahr. Deshalb macht Testen derzeit ca. 20% der Kosten einer neuen Software aus, Tendenz steigen. Alleine für Java-Software sind das in Deutschland ca. 3,4 Mrd. Euro im Jahr. Diese Kosten entstehen hauptsächlich durch manuelles Testen bzw. manuelle Testfallerstellung. Der Automatisierungsgrad beim Testen liegt derzeit bei ca. 15%. Was wenn man automatisch Testen könnte? Und d.h. nicht manuell erstellte Tests (die will sowieso keiner erstellen und erst recht keiner pflegen) automatisch ablaufen lassen, sondern wirklich vollautomatisch Testen?
Monkey-Testing bezeichnet zufallsbasiertes Testen von Software über die Benutzeroberfläche, und findet vollautomatisch und kostengünstig Fehler. In diesem Vortrag zeige ich, wie jeder Anwesende mit ein paar Zeilen Code einen eigenen primitiven Affen zum automatischen Testen programmieren kann. Davon ausgehend zeige ich Ansätze und Konzepte, wie man diesen Affen (u.a. mit genetischen Algorithmen) immer weiter verbessern kann, bis er teilweise bessere Ergebnisse als menschliche Tester bringt. Dazu gibt es Demos und Erfahrungsberichte aus großen Projekten.
Talk zum Thema Nebenläufigkeit auf der OOP 2016 in München. Neben einer prinzipiellen Einführung und Motivation werden die Sprachen Erlang/OTP, Google Go und Pony vorgestellt. Weiter sind einige typische Designmuster sowie Fallstricke enthalten. Der Vortrag hatte die Dauer von 90 Minuten.
Software die verwendet wird, muss irgendwann geändert werden. Das ist keine neue Erkenntnis.
Dennoch finden wir uns sehr oft in der Situation wieder, dass sich einfache Anforderungen nur mit erheblichem Aufwand umsetzen lassen oder zu unerwarteten Ergebnissen führen.
SOLID Prinzipien können uns helfen das Design unserer Anwendungen zu verbessern.
Funktionale Programmierung hat zu guter Letzt auch in Java Einzug gehalten. Es ist jetzt ganz normal, überall mit Lambdas oder mit map() und filter() zu arbeiten. Aber ist das wirklich funktionale Programmierung?
Wie sieht es aus, wenn man Java 8 mit einer althergebrachten funktionalen Programmiersprache vergleicht? Und was kann der Java-Programmierer, der aus der objektorientierten (OO) Entwicklung kommt, von funktionalen Sprachen lernen und in seinen Java-Alltag integrieren?
Auf diese Fragen ging Nicole Rauch in ihrem Referat ein. Ebenso stellte sie die grundlegenden Aspekte er funktionalen Programmierung vor und zeigte auf, was die funktionale Programmierung so besonders macht.
Gerne stellen wir Ihnen die Slides des Referats zur Verfügung.
The document lists various web technologies including JavaScript frameworks and libraries like jQuery, Prototype and MooTools as well as browser technologies from companies like Google, Mozilla, Microsoft and Adobe. It touches on topics related to Ajax, testing, mobile development and more without any connecting text or explanation between the terms.
Problems with Java and how dynamic scripting languages (especially Groovy) tackle some of them. A short introduction to some aspects of Groovy is included.
A power workshop during JAX 2007 on advanced techniques of test-driven development. It deals with acceptance tests using FIT as well as with mock objects, GUI testing and Groovy as a testing language for Java.
2. Wer ich bin...
Mein eigener Chef
(Extremer) Softwareentwickler
(Agiler) Coach
Testgetrieben
http://johanneslink.net
3. Warum JavaScript?
"Html 5 and JavaScript are the future of
Rich Client Development"
...sagt Google und handelt so
4. Historie
• Von Brendan Eich 1995 für Netscape
Navigator 2 unter dem Namen
LiveScript entwickelt
• Seit 1997 Standardisierung als
ECMAScript
• Großes Revival mit dem Ajax-Hype
• Firefox 3.0 enthält Version 1.8 (ES 3.?)
• Die Zukunft:
ECMAScript 3.1, 4 und „5th edition“
5. Java?-Script
• Curly Braces
• Syntax des Methodenaufrufs
• Einige Basistypen und Methoden:
String, Date, toString(), ...
• Aber: Semicolons am Zeilenende
optional
6. Laufzeitumgebung
• Im Browser
‣ Enge Verknüpfung mit DOM
‣ Ajax, Timer und Event-Mechanismus
‣ In jedem Browser im Detail unterschiedlich
‣ Beste Performance in Chrome
• Auf dem Server
‣ Via Java's Scripting-Mechanismus
‣ Rhino-JS nativ
‣ Zugriff auf Java-Objekte und -Bibliotheken
7. Spracheigenschaften
• Grundkonstrukte
‣ Funktion
‣ Objekt
• Funktionen sind Closures
• Keine statische Typisierung
• Alles ist öffentlich
• Prototypen:
‣ Objektorientiert - aber nicht klassenbasiert
8. Primitive Typen
var name = 'Johannes';
assertEqual('Johannes Link', name + ' Link');
var eins = 1;
assertEqual(2, eins + 1);
assertEqual('11', eins + '1');
var liste = [1, 2, 'drei'];
assertEqual('drei', liste[2]);
var isBig = eins > 1000;
if (isBig) fail();
assertEqual('ff', (255).toString(16));
var text = 'Dies ist ein Text.';
assertEqual(18, text.length);
assertEqual('ein Text.', text.substring(9));
9. Funktionen
sayHelloTo('Johannes');
function sayHelloTo(name) {
function sayHelloTo(name) {
return 'Hello, ' + name
} return 'Hello, ' + name;
} sayHelloTo('Johannes')
var sayByeTo = function(name) {
return 'Bye, ' + name;
}
sayByeTo('Michael');
var sayByeTo = function(first, last) {
return 'Bye, ' + name + ' ' + last
arguments[0];
}
assertEqual( ?????? , sayByeTo('Michael'))
assertEqual('Bye, Michael undefined' , sayByeTo('Michael'))
Michael' , sayByeTo('Michael', 'Jordan'));