Entrega contínua com arquitetura distribuidaLeonardo Kobus
Conteúdo apresentado em um TechTalk Interno na hbsis mostrando como é feito o deploy de um projeto escrito em .NET utilizando WebService Rest feito em Nancy e Serviços do window, para uma solução de Vendas onde possui 8 máquinas em uma infraestrutura e 6 em uma infraestrutura diferente, ambas infra com deploy automatizado da solução inteira.
Building a Quantitative Trading Strategy To Beat the S&P500Karen Rubin
Two years ago, Karen embarked on a project to learn how to research, write and trade algorithms to invest in the market. She re-learned python and explored what would happen if you invested in women-led companies over a 12-year period. In this talk, she will walk through the highs and lows of her journey from initial data gathering, through writing a strategy to validation and trading.
China’s Garden Art - requires Us to be adaptable, appealing, effective, gentle, kind, meaningful, persistent and skillful.
中国的园林艺术 - 要求我们必须适应性强,吸引力,有效,温柔,善良的,有意义的,持久的和熟练的。
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.
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenOdilo Oehmichen
Slides zum Vortrag von Patrick Baumgartner & Odilo Oehmichen am Java Forum Stuttgart.
Die gleichen Slides sind auch im Account von Patrick Baumgartner verfügbar.
Testgetriebene Entwicklung mit Jasmine und Karma hat sich mittlerweile schon als defacto-Standard etabliert. Routinen ohne Abhängigkeiten lassen sich damit ohne Probleme testen. Die Schwierigkeiten beginnen jedoch schon, wenn es um die Auflösung von Abhängigkeiten geht. In diesem Vortrag werden verschiedene Strategien und Werkzeuge vorgestellt, mit denen Abhängigkeiten zu Objekten und Funktionen oder zum Server abgedeckt werden können. Aber nicht nur Abhängigkeiten stellen Schwierigkeiten bei der testgetriebenen Entwicklung dar, auch der Umgang mit Fixtures ist bei der testgetriebenen Entwicklung mit JavaScript relevant. Abgerundet wird dieser Vortrag mit einigen Best Practices für die testgetriebenen Entwicklung mit JavaScript.
Entrega contínua com arquitetura distribuidaLeonardo Kobus
Conteúdo apresentado em um TechTalk Interno na hbsis mostrando como é feito o deploy de um projeto escrito em .NET utilizando WebService Rest feito em Nancy e Serviços do window, para uma solução de Vendas onde possui 8 máquinas em uma infraestrutura e 6 em uma infraestrutura diferente, ambas infra com deploy automatizado da solução inteira.
Building a Quantitative Trading Strategy To Beat the S&P500Karen Rubin
Two years ago, Karen embarked on a project to learn how to research, write and trade algorithms to invest in the market. She re-learned python and explored what would happen if you invested in women-led companies over a 12-year period. In this talk, she will walk through the highs and lows of her journey from initial data gathering, through writing a strategy to validation and trading.
China’s Garden Art - requires Us to be adaptable, appealing, effective, gentle, kind, meaningful, persistent and skillful.
中国的园林艺术 - 要求我们必须适应性强,吸引力,有效,温柔,善良的,有意义的,持久的和熟练的。
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.
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenOdilo Oehmichen
Slides zum Vortrag von Patrick Baumgartner & Odilo Oehmichen am Java Forum Stuttgart.
Die gleichen Slides sind auch im Account von Patrick Baumgartner verfügbar.
Testgetriebene Entwicklung mit Jasmine und Karma hat sich mittlerweile schon als defacto-Standard etabliert. Routinen ohne Abhängigkeiten lassen sich damit ohne Probleme testen. Die Schwierigkeiten beginnen jedoch schon, wenn es um die Auflösung von Abhängigkeiten geht. In diesem Vortrag werden verschiedene Strategien und Werkzeuge vorgestellt, mit denen Abhängigkeiten zu Objekten und Funktionen oder zum Server abgedeckt werden können. Aber nicht nur Abhängigkeiten stellen Schwierigkeiten bei der testgetriebenen Entwicklung dar, auch der Umgang mit Fixtures ist bei der testgetriebenen Entwicklung mit JavaScript relevant. Abgerundet wird dieser Vortrag mit einigen Best Practices für die testgetriebenen Entwicklung mit JavaScript.
Dass eine Anwendung gegen Angriffe von Außen abgesichert werden muss, ist in der heutigen Zeit keine Frage mehr. Die OWASP Top10 sind in aller Munde. Um so verwunderlicher ist es, dass in den meisten Projekten die Suche nach Sicherheitslücken frühestens nach Fertigstellung der Software angegangen wird. Dabei gibt es ein paar Möglichkeiten, bekannte Security-Probleme bereits während der Entwicklung automatisiert zu erkennen und dem Entwickler so durch geeignetes Feedback die Möglichkeit zu geben, diese zeitnah zu beheben.
In dem Talk werden verschiedene Tools vorgestellt und gezeigt, welche Security-Probleme schon während der Entwicklung durch Continous Integration vermieden werden können.
Continuous Integration wird längst in vielen Projekten praktiziert. Kein Wunder, steht für das Tooling doch in vielen Fällen ein Jenkins oder Travis zur Verfügung. Mit GitLab CI ist dies jedoch nicht mehr nötig. Schritt für Schritt wird in dieser Session eine Pipeline mit verschiedenen Test- und Analysetools aufgesetzt -- zur Integration in neue und bestehende Projekte.
Dissecting State-of-the-Art Android Malware Using Static and Dynamic AnalysisCHOOSE
Steven Arzt — CHOOSE Talk — 2016-11-15
http://www.choose.s-i.ch/events/arzt-2016/
Android malware is getting more and more sophisticated. So-called "sleeper" applications only trigger their malicious behavior after a certain time has passed or event has happened, effectively evading many dynamic analysis techniques. Other techniques include integrity checks as well as detectors for emulators, rooted devices, and hooks. If any such sign is detected, the malware refrains from its actual malicious behavior. For countering static analyses, these apps apply code encryption, packers, and code obfuscators. Together, these features render most automated analyses ineffective, leaving a manual analysis as the only viable option — a very difficult and time-consuming undertaking.
To alleviate the problem, we propose CodeInspect, a new integrated reverse-engineering environment extending the Eclipse IDE and targeting sophisticated state-of-the-art malware apps for Android. CodeInspect not only features an interactive debugger that can work on the bytecode level, but also various static and dynamic analyses that support the human analyst. One can display data flows inside the app, check which permissions are used where in the code, what strings are computed or decrypted at runtime, which code is dynamically loaded and more. Reverse engineers can even add new Java source classes or projects into the application, which can then be called from the original app’s code. This is especially useful when implementing decryption methods which can be directly tested in place.
Continuous Architecting of Stream-Based SystemsCHOOSE
Pooyan Jamshidi CHOOSE Talk 2016-11-01
Big data architectures have been gaining momentum in recent years. For instance, Twitter uses stream processing frameworks like Storm to analyse billions of tweets per minute and learn the trending topics. However, architectures that process big data involve many different components interconnected via semantically different connectors making it a difficult task for software architects to refactor the initial designs. As an aid to designers and developers, we developed OSTIA (On-the-fly Static Topology Inference Analysis) that allows: (a) visualizing big data architectures for the purpose of design-time refactoring while maintaining constraints that would only be evaluated at later stages such as deployment and run-time; (b) detecting the occurrence of common anti-patterns across big data architectures; (c) exploiting software verification techniques on the elicited architectural models. In the lecture, OSTIA will be shown on three industrial-scale case studies.
See: http://www.choose.s-i.ch/events/jamshidi-2016/
19. Korrelieren Metriken
mit Fehlerdichte?
Projekt Korrelierte Metriken
A #Classes und 5 abgeleitete
B fast alle
C alle außer MaxInheritanceDepth
D nur #Lines
E #Functions, #Arcs, McCabe
20. Wie steht es mit
Metriken?
Korrelieren Metriken
mit Fehlerdichte?
Manchmal!
21. Vorhersage
fehlerträchtiger Module
• Grundidee: Metriken kombinieren
• Größtes Gewicht für vorhersagende Metriken
• Problem: Metriken sind untereinander korreliert
• Lösung: Principal Component Analysis (PCA)
28. Eclipse Imports
71% aller Komponenten, die compiler importieren,
müssen nach dem Release korrigiert werden
import org.eclipse.jdt.internal.compiler.lookup.*;
import org.eclipse.jdt.internal.compiler.*;
import org.eclipse.jdt.internal.compiler.ast.*;
import org.eclipse.jdt.internal.compiler.util.*;
...
import org.eclipse.pde.core.*;
import org.eclipse.jface.wizard.*;
import org.eclipse.ui.*;
14% aller Komponenten, die ui importieren,
müssen korrigiert werden
Joint work with Adrian Schröter • Tom Zimmermann
29. Eclipse Imports
Korrelation mit Fehlschlagen
import org.eclipse.jdt.internal.compiler.lookup.*;
import org.eclipse.jdt.internal.compiler.*;
import org.eclipse.jdt.internal.compiler.ast.*;
import org.eclipse.jdt.internal.compiler.util.*;
...
import org.eclipse.pde.core.*;
import org.eclipse.jface.wizard.*;
import org.eclipse.ui.*;
Korrelation mit Erfolg
30. Vorhersage
Defekt kein Defekt
top 5%
10%
~300 Pakete
90%
50. Studien
Make this
Actionable!
Rosenberg, L. and Hyatt, L. “Developing An Effective Metrics Program”
European Space Agency Software Assurance Symposium, Netherlands, March, 1996
51.
52. Zukünftige Programmierumgebungen werden
• Muster in Programm und Prozess erkennen
• Regeln anwenden, um Vorhersagen zu machen
• alle Entwicklungsentscheidungen unterstützen
• ihre Unterstützung an das Projekt anpassen
53. Wikis
Joy of Use
Participation Usability
Recommendation Social Software
Collaboration Perpetual Beta Simplicity
Empirie 2.0
Trust
Economy
Remixability The Long Tail
DataDriven