• Jetbrains License Raffle TODAY 2020-06-16

    Online event

    We have 3 IntelliJ Idea Ultimate (Personal) Licenses (worth each 150 Euro) to raffle that have to be redeemed till tomorrow. Thus, today at 18:00 we will raffle them. RSVP Yes to this meeting and attend it at 18:00 (via Zoom.us) for a chance to win!

  • "Unbiased Allocation Profiling" & "Tracing for Java Developers"

    TU Wien, Freihaus HS5

    Agenda: 18:00 Doors Open 18:25 Unbiased Allocation Profiling - Philipp Lengauer 19:30 Pizza, Beer & Networking break, Raffle 20:00 Tracing for Java Developers - Philipp Krenn 21:00 Networking = Unbiased Allocation Profiling Most existing tools for monitoring memory allocations in Java either produce high overhead or are heavily biased. Additionally, these techniques often provide misleading information about how these objects impact the GC. In this talk, we will look at why this is the case, and how recent developments in the Java VM enable more precise monitoring and how to draw useful conclusions for improvements. Philipp Lengauer holds a Masters Degree in Software Engineering and a Doctoral Degree in Engineering Sciences, with a focus on Performance Engineering. During his studies, he has been teaching "Java Programming", "Compiler Construction", and "Performance Monitoring and Benchmarking" at the Johannes Kepler University Linz. He is a published author and a frequent speaker at international scientific and industry conferences, and local meetups. He is also still an external lecturer at the University Linz and a guest lecturer at several other universities. Currently he focuses on allocation profiling and GC monitoring with Dynatrace. = Tracing for Java Developers You are already using logs and metrics to monitor your applications. Why should you be adding (distributed) tracing or Application Performance Management (APM)? This talk gives a hands-on overview of: - What you can (not) do with tracing. - How you can easily add tracing to your Java applications. - What OpenTracing (or soon OpenTelemetry) adds to the landscape. The demo is using the open source Elastic APM agent with its OpenTracing bridge, so the general concepts widely apply. Philipp Krenn lives for technical lectures and demos. After more than ten years as a web, infrastructure and database developer, he works now as Developer Advocate at Elastic - the company behind the Open Source Elastic Stack, consisting of Elasticsearch, Kibana, Beats and Logstash. Although his home base is Vienna, he regularly travels across Europe and beyond to talk and discuss open source software, searching, databases, infrastructure and security.

  • Jan 2k20: From Akka Persistence to Factory Automation (Roland Kuhn)

    TU Wien, Freihaus HS6

    [masked] Agenda: 18:00 doors open 18:25 Talk "From Akka Persistence to Factory Automation" Part 1 19:30 Break / Networking 19:55 Raffle 20:00 Talk "From Akka Persistence to Factory Automation" Part 2 21:00 Networking From Akka Persistence to Factory Automation This presentation starts with an introduction to the shiny new typed Akka APIs, zooming in on persistent actors. After discussing the way type-safe applications are constructed from this building block, we switch gears and look under the covers: what are the infrastructure assumptions made by this framework? How does it fare in terms of consistency and availability? In the second part of the presentation we take a look at the software needs of modern real-world factories: this core piece of our societies’ wealth creation has not yet benefited from the productivity gains offered by cloud-based software. We will see why that is the case and how it will shape the programming model of future software — and how surprisingly small the difference in API is to Akka Persistence. Dr. Roland Kuhn is CTO and co-founder of Actyx, author of Reactive Design Patterns, a co-author of the Reactive Manifesto, co-teacher of the Coursera course “Principles of Reactive Programming”, and a passionate open-source hakker. Previously, he led the Akka project at Lightbend. He also hold a Dr. rer. nat. in particle physics from TU München and has worked in the space industry for several years.

  • "Let's Develop on Prod w/ Istio + K8s" + "Blaze-Persistence GraphQL Support"

    December Meetup - Save the Date! Agenda: 18:00 Doors open 18:20 - 19:30 Talk 1: Let’s develop on Prod! Wait! What?! 19:30 - 20:00 Break, Pizza, Beer, Raffle 20:00 - 21:00 Talk 2: Blaze-Persistence GraphQL Support Let’s develop on Prod! Wait! What?! ==== Do you have confidence that your Test and Stage environments reflect reality? Are they easy to keep up-to-date with production? Can you reproduce production failure in these environments or locally? What about that error you keep seeing on production that’s never occurring on Test or Stage? It's been always hard to test new functionality before it reaches production. Even more so, with the shift from a monolith to microservices and increasing scale. Can you still spin up the entire solution on your laptop to debug and test a suspicious piece of code? Testing on production is no longer a meme. It’s reality and a necessity. Let's talk about how we can leverage Istio and Kubernetes or Openshift to be confident that changes won't blow up your production cluster and your users won’t even notice a glitch. Join this session to learn how to safely develop and test your services in a real production environment. Leave with tools and techniques you can apply right away and with confidence! About the speaker: Bartosz Majsak writes code for fun and profit while proudly wearing a red fedora working at Red Hat. As a long-time open source contributor and conference speaker, he shares his passion for programming and testing methodologies. One thing that perhaps proves he is not a total geek is his addiction to alpine skiing. # Blaze-Persistence GraphQL Support - High performance querying and Relay pagination GraphQL is getting more popular every day! More and more UI developers demand a GraphQL interface so that they can do their work without wasting time on communication with the backend team. There are solutions that allow exposing the whole JPA model, but doing that is rarely advisable. Using annotations to exclude certain attributes or registering a special data fetcher to fetch attributes requires manual wiring and is neither comfortable nor does it work well with the declarative schema approach. Aren't GraphQL types just DTOs which we have written before? In many ways that is true, but to improve performance, it is vital to make use of the GraphQL selection list feature to avoid loading unnecessary data. When it comes to pagination, the GraphQL Relay spec provides guidance, but defining all the required types and implementing the cursor pagination manually seems like a daunting task that should be done by a library. Fortunately, Blaze-Persistence with Entity Views already solves all the underlying problems and comes to rescue. Thanks to the latest addition, the GraphQL integration, which also implements schema generation for the Relay spec, it is now easier than ever to provide a high performance GraphQL interface with minimal and mostly declarative code! Join the talk and see for yourself how the Blaze-Persistence GraphQL integration will change your life! Christian Beikov works with Java EE since 2010 and has lots of experience with CDI and JPA. He works part time at Curecomp GmbH in Linz in R&D and is about to enter his final semester at the University of Technology Vienna. While always being an active Hibernate contributor and constantly improving Blaze-Persistence, he gained experience doing freelancing and being a co-founder of Sweazer GmbH. His main interests are around distributed systems, database technologies and everything Java/JVM-related.

  • Lightweight Feature Envs w/ Spring Cloud & K8s + Apache Freemarker

    TU Wien, Freihaus HS6

    Agenda: 18:00 Doors Open 18:20 - 19:30 Lightweight Feature Envs w/ Spring Cloud & K8s 19:30 - 20:00 Pizza break, raffle 20:00 - 21:00 Apache FreeMarker - Why Every Developer Needs A Template Engine Lightweight Feature Envs w/ Spring Cloud & K8s --- Automated builds and deployments are standard procedures nowadays - but the environments we deploy to are often still heavyweight and hardly fully automated. Spawning new environments on demand can soon get pretty expensive, in terms of effort but also in terms of hard cash when using cloud services like AWS. In this talk we are going to reflect about the different types of environment isolation and their pros and cons. Finally, we will talk and see the concept of "Lightweight Environments" which we use in our system in order to test individual features of one or more services embedded in a complex infrastructure. Bio --- Thomas Höfferl has been working in various areas of software development for more than 12 years. Starting as a Software Developer for IBM mainframe programmes through serving as an Enterprise Architect for online payment solutions until his current position as CTO for nucost (nu-cost.com). With nucost he is responsible for the development of a complete new cloud-based software suite for the manufacturing industry together with an expert team of engineers, developers and data scientists. He enjoys working in cross-functional teams, learning something new everyday and utilizing the newest technologies and concepts. Apache FreeMarker - Why Every Developer Needs A Template Engine --- Being a lazy programmer is hard work - you also need to automated those “boring copy & pasta text tasks”. I started with Groovy & Apache Velocity, automated even more boring tasks, ditched Groovy & Velocity in favour of JDK & Apache FreeMarker, wrote “freemarker-cli" and use Apache FreeMarker to implement simple web UI nowadays. Long story short - if you need to transform access logs, CSV, Excel, HTML, JSON, XML or YAML into some other textual representation (aka CSV, HTML, Markdown Confluence) or require a quick & dirty UI for a JVM-based micro service then this presentation is for you. Bio --- Siegfried Goeschl is currently an ASF member, Apache Turbine & JSPWiki PMC (Project Management Committee). During the last 14 years he was also Apache Commons Committer & PMC working on commons-email & commons-exec, Apache XML-RPC Committer, Apache Isis & JSPWiki mentor and Apache Maven contributor. He became involved with Open Source in 2000 contributing JUnitPP (one of the first JUnit extensions ever), got involved with Maven, confused with Jelly and wrote an Avalon container now being part of Apache Turbine (this makes him to the last Avalonier in this part of the universe). His professional interests are centered around writing server-side Java code, full-text search, performance testing, quality assurance and build management. If there is some time left besides his company, consulting work, Open Source software development and family he helps at the Java Vienna Meetup.

  • Going to DevFest Vienna Afterparty

    Needs a location

    Of course, there will be an afterparty and we'll network there ( a little .. ;) )

  • Going to DevFest Vienna

    Needs a location

    Going to DevFest Vienna. Details: https://devfest.at/ Registrion required here: https://www.eventbrite.com/e/devfest-vienna-2019-registration-76827788985

  • October Meetup: Hazelcast Cloud + ( JPA + JooQ + FlyWay )

    October Meetup: Save the date Agenda: 18:00 Doors Open 18:20 - 19:30 Talk 1: Hazelcast Cloud 19:30 - 20:00 Break, Networking, Beer, Raffle 20:00 - 21:00 Talk 2: JPA + JooQ + FlyWay perfectly combined Hazelcast Cloud Nowadays in-memory computing is a very important topic as it enables to easily process data in milliseconds. Hazelcast gives you the power to do this and now it's available in the cloud! We will check how easy is to use Hazelcast Cloud, how to use it in real world Java applications and what's the difference between maintaining manually Hazelcast and Cloud solution. About the Speaker: Richard Klavora started working more than 6 years as a developer and can say that, from the beginning it's his passion. He was working at different companies in different areas (like gambling, e-learning etc..) and currently is a Quality Engineer at the Hazelcast Cloud Team. His hobby is his job, so in his free time he likes implementing smaller solutions and creating some IoT things (Raspberry Pi, NodeMCU). Hibernate + jOOQ + Flyway = Die besten Frameworks in einem Stack Gibt es ein Framework, das für alle Aufgaben die perfekte Lösung bietet? Natürlich nicht! Aber warum setzen dann so viele Projekte nur ein Framework für ihre Persistenzschicht ein? Die Folgen findet man dann auf Stack Overflow und Reddit oder hört sie an der Kaffeemachine: Es wird diskutiert, was Framework X nicht kann und was andere besser machen. Mit einer gut gewählten Kombination von Frameworks ließen sich die meisten Probleme und der damit verbundene Frust vermeiden. Wie in einem gut eingespielten Entwicklerteam gleichen die Frameworks dann ihre Schwächen gegenseitig aus, und man hat für jede Aufgabe eine gute Lösung zur Verfügung. Hibernate, jOOQ und Flyway sind ein perfektes Beispiel für eine solche Kombination. Mit ihnen erhält man eine gute Lösung für die Verwaltung von Datenbankschemata (Flyway), die Implementierung von Schreib- und einfachen Leseoperationen (Hibernate) und die Erstellung komplexer und z. T. datenbankspezifischer Abfragen (jOOQ).In diesem Vortrag werde ich die Stärken dieser drei Frameworks kurz vorstellen und zeigen, wie sie sich miteinander integrieren und verwenden lassen. Thorben Janssen ist freiberuflicher Trainer und Autor des Buchs „Hibernate Tips – More than 70 solutions to common Hibernate problems“. Er entwickelt seit mehr als fünfzehn Jahren Anwendungen auf Basis von Java EE und ist Mitglied der JSR 365 (Contexts and Dependency Injection for JavaTM 2.0) Expert Group. Auf seinem Blog www.thoughts-on-java.org schreibt er mehrmals wöchentlich über Java EE und Hibernate.

  • Maximizing Performance with GraalVM - Java + Scala!

    TU Wien, Freihaus HS6

    Agenda: 18:00 Doors Open 18:20 - 19:30 Maximizing Performance with GraalVM Part 1 19:30 - 20:00 Break, Networking, Beer, Raffle 20:00 - 21:00 Maximizing Performance with GraalVM Part 2 The GraalVM project enhances the Java ecosystem with an integrated, polyglot, high-performance execution environment for dynamic, static, and native languages. GraalVM supports Java, Scala, Kotlin, Groovy, and other JVM-based languages. At the same time, it can run the dynamic scripting languages JavaScript including Node.js, Ruby, R, and Python. Balancing the main performance indicators peak throughput, startup time, memory footprint, maximum latency, and packaging size is key for optimizing your application. GraalVM offers a just-in-time (JIT) and ahead-of-time (AOT) execution mode with different trade-offs on these metrics. This talk shows how to get the most out of GraalVM for the metrics you care about! Second part of the talk will focus on performance of GraalVM for Scala programs. There will be a discussion why Scala programs are specifically suited for being optimised by GraalVM. And how you can use GraalVM to not only run your Scala programs faster, but also to compile your Scala programs faster. Thomas Wuerthinger, one of the central minds behind GraalVM, will visit us in Vienna and give a talk about Graal. As we already had a talk about Graal and how its basic architecture is, this one will be more focused on the practical aspects of using Graal and its ecosystem.

  • Spaß mit Microservices: Transaktionen + Demystifying Java Lang. Features 9 - 11

    Agenda 18:00 doors open 18:20 - 19:30 First talk: Spaß mit Microservices: Transaktionen (DE) 19:30 - 20:00 Pizza-Break, Networking 20:00 - 21:00 Demystifying the most significant Java language features from 9 to 11 Spaß mit Microservices: Transaktionen (in German) ---- Spendiert man jedem Microservice seine eigene Datenbank (Database per Service Pattern), läuft man irgendwann unweigerlich in das Problem verteilter Businesstransaktionen. Die gute alte DB-Transaktion fällt per Definition aus dem Rennen. Lässt sich also aus fachlicher Sicht ganz auf Transaktionen verzichten? In vielen Fällen ist das durchaus möglich. Als Alternative zur Sicherstellung Service-übergreifender Datenkonsistenz bietet sich u. a. eine Realisierung auf Basis mehrerer lokaler, technischer Transaktionen an, auch ‚Saga-Pattern‘ genannt. Die Session führt in die Theorie des Saga-Patterns ein und zeigt dessen praktische Verwendung an verschiedenen Beispielen. Lars Röwekamp, Gründer des IT-Beratungs- und Entwicklungsunternehmens OPEN KNOWLEDGE GmbH, beschäftigt sich im Rahmen seiner Tätigkeit als „CIO New Technologies“ mit der eingehenden Analyse und Bewertung neuer Software- und Technologietrends. Ein besonderer Schwerpunkt seiner Arbeit liegt derzeit in den Bereichen Enterprise und Cloud Computing, wobei neben Design- und Architekturfragen insbesondere die Real-Life-Aspekte im Fokus seiner Betrachtung stehen. Second talk: Demystifying the most significant Java language features from 9 to 11 (English) We will take a look at some of the most significant Java language features that got added in Java 9, 10 and 11. Content: private interface methods comptact strings indify string concatenation stack-walking API spin-wait hints collections factory methods local-variable type inference next-based access control Ionut Balosin is a Software Architect and Independent Technical Trainer. He is a regular speaker at software development conferences and meetups around the world, delivering presentations, training courses and workshops. For more details please check his website http://www.ionutbalosin.com