BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Pentabarf//Schedule 0.3//EN CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALDESC;VALUE=TEXT:Free Java devroom X-WR-CALNAME;VALUE=TEXT:Free Java devroom X-WR-TIMEZONE;VALUE=TEXT:Europe/Brussels BEGIN:VEVENT METHOD:PUBLISH UID:7258@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T102500 DTEND:20180203T103000 SUMMARY:Welcome! DESCRIPTION:
Welcome to the 2018 edition of the Free Java DevRoom!
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/java_devroom_welcome/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mario Torre":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Andrew Haley":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7248@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T103000 DTEND:20180203T111500 SUMMARY:The State of OpenJDK DESCRIPTION:A review of the past year in the life of the OpenJDK Community, and a look at what's ahead.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/state_openjdk/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mark Reinhold":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7245@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T112000 DTEND:20180203T114500 SUMMARY:The OpenJDK Developer Experience DESCRIPTION:Much has happened in the last year for developers contributing to OpenJDK:- the repositories have been consolidated into a single repository- the run-test make target has been introduced- the JTReg (and jcov, asmtools and jtharness) build have been greatly improved- there is now a binary build of OpenJDK that can be used as --boot-jdk (on Linux x86-64)
The situation for HotSpot developers has also improved over the years:- the HotSpot build system was converted to the "new" build system- a proper unit test framework for C++ code (googletest) was added- debug symbols are no longer zipped by default- the JDK and HotSpot JTReg testlibraries were combined into one
This talk will show how all these changes make the OpenJDK developerexperience a lot smoother. The speakers will also share their personaltips and tricks on how to work even faster on OpenJDK!
We also realize that the OpenJDK developer experience is far fromoptimal, and would therefore like this talk to initiate a discussion onwhat could be improved and how people can get involved.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/openjdk_dev_exp/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Roman Kennke":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Erik Helin":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7329@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T115000 DTEND:20180203T121500 SUMMARY:AMENDMENT JVM Futures DESCRIPTION:Strap in for a high-speed deep dive into JVM features now on the drawing board, which will benefit Java and all other languages that run on the JVM.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/jam_futures/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="John Rose":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7257@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T122000 DTEND:20180203T124500 SUMMARY:The Z Garbage Collector - An Introduction DESCRIPTION:The Z Garbage Collector, also known as ZGC, is a new garbage collectoroptimized for low latency and very large heaps. We've developed ZGCinternally at Oracle so far, but we're now open-sourcing it so as tobroaden the base of both contributors and users. It was recentlyaccepted as an official project under OpenJDK where future developmentwill be happening.
This talk will give an overview of how ZGC works, how it scales tomulti-terabyte heaps and how it maintains very low GC pause times. We'llpresent the goals, current status and what to expect going forward.We'll also give a quick primer on how to get started using ZGC on yourworkloads.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/zgc/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Per Liden":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Stefan Karlsson":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7254@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T125000 DTEND:20180203T131500 SUMMARY:Rubber 'Duke' Debugging DESCRIPTION:In the spirit of Jon Bentley(not the top geardude), we will take this chance to talk abouteverybody’s favorite pastime...debugging!
As programmers, we spend most of our timedebugging. I know I know, most of us never'write' any bugs(it's ALWAYS your peskycolleagues). Still, somebody has to clean itall up.
And yet, there's very little literature aboutdebugging. Fewer conference talks still.But that's about to change.
This talk will be a collection of real-lifebug micro-mortems. Proving now morethan ever, that for want of a nail, kingdomscan really be lost...
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/duke_debugging/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mahmoud Abdelghany":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7244@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T132000 DTEND:20180203T134500 SUMMARY:MethodHandles Everywhere! DESCRIPTION:The MethodHandle API was added in Java 7, as a way to programmatically build up smart function pointers. Far more powerful than simple reflection, handles JIT and optimize like Java code, producing a fast, direct, type-safe callable. And the API has continued to evolve: in Java 9, you can now embed atomic semantics, array views, loops and "finally" logic, and much more. Come learn how flexible and useful MethodHandles can be!
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/method_handles/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Charles Nutter":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7246@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T135000 DTEND:20180203T141500 SUMMARY:Top Ten Metrics for Evaluating your Garbage Collector DESCRIPTION:There's an old joke about a new bride who prepares her first bigdinner for her new husband. She's making her mother's brisket recipewhich starts by cutting the ends off of the roast. Her husband asksher why she cuts the ends off. She says she does it because that's theway her mother always did it. She asks her mother and her mother says"That's the way your grandmother always did it". She asks hergrandmother and her grandmother says "That's the only way it would fitin my pan". There's a lot of folklore and myth surrounding Javagarbage collection performance, most of which is obsolete, irrelevantto your application, or was never really right in the first place.
So how do we evaluate a GC algorithm? We can measure various metrics: end to end run time, maximum pause time, average pause time,percentage of the cpu given to the Java threads, memory footprint,micro benchmarks, ... This talk will focus on ten (give or take)metrics/tools we can use to evaluate garbage collection performance.This isn't a comparison of OpenJDK collectors, it's a discussion ofwhat characteristics are important in a good garbage collector and howto measure them.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/evaluate_gc/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Christine H Flood":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7251@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T142000 DTEND:20180203T144500 SUMMARY:Graal: How to use the new JVM JIT compiler in real life DESCRIPTION:With JEP 317: Experimental Java-Based JIT Compiler it is very likely that Graal will be part of JDK 10. In fact, Graal is already available in JDK 9 due to JEP 243: Java-Level JVM Compiler Interface. Graal is itself written in Java and that brings some new properties and behavior to the table which we haven’t seen with existing HotSpot JIT compilers. This talk will show how to use Graal with JDK 9, how to compile an upstream Graal version and what to look out for when using it for benchmarking or even in production.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/graal/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Christian Thalinger":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7247@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T145000 DTEND:20180203T151500 SUMMARY:JVM startup: why it matters to the new world order DESCRIPTION: CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/jvm_startup/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Daniel Heidinga":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7252@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T152000 DTEND:20180203T154500 SUMMARY:Class Metadata: A User Guide DESCRIPTION:The OpenJDK JVM eats class bytecode and spits out Java heap objects andmachine code as part of normal execution. However, the JVM manages moredata than just bytecode, Java objects JITted code. In order to manageheap memory and to ensure correct execution, the JVM and JITted codeneed to retain and, occasionally, interrogate details of the loadedclass base. Bytecode is not a very 'efficient' representation for thispurpose, nor does it include details of runtime-derived info like classand method implementation dependencies, compile history and JITted codestatus, or execution profiles.
So, the JVM throws away most bytecode after parsing, in its placeconstructing and maintaining its own 'efficient' in-memory (C++) datastructures which model both the loaded class and method base andruntime-derived state. This is what is known as Class Metadata. ClassMetadata is a significant component of the Native Memory storageallocated and managed by the JVM, alongside JIT Compiler Metadata, GCMetadata, Thread Metadata, etc. For small applications that don't createa large number of Java objects Metadata can constitute a large portionof a Java application's resident memory set.
This talk will begin by describing how to use the jcmd tool to measuresummary JVM Native Memory storage costs, including overall ClassMetadata costs. It will also show how to use jcmd to obtain a detailedbreakdown of the latter costs, splitting the overheads along two axes:firstly, by class; and secondly, dividing per-class costs into separatesub-costs associated with different component subsets of the classmodel: classes per se, constant pools, methods and annotations.
I will go on to explain how Class Metadata is carved out of the memoryregions managed by the JVM's Native Memory allocation routines anddetail the memory layout of the various C++ types which define theelements of the Class Metadata model, thereby clarifying some of themore detailed statistics available in jcmd output. Real-life use caseswill be employed to explain how specific costs arise from code designchoices and to suggest how alternative choices might increase ordecrease Class Metadata costs.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/class_metadata/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Andrew Dinn":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7253@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T155000 DTEND:20180203T161500 SUMMARY:Java in a World of Containers DESCRIPTION:Container technologies such as Docker are rapidly becoming the de-facto way to deploy cloud applications, and Java is committed to being a good container citizen. This talk will cover some of the new the tools and techniques for reducing container size (jlink, Alpine/musl support), for improving startup time and sharing of data between JVMs (AppCDS and ahead-of-time compilation), and the recent work that has gone into interacting with container resource limitations.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/java_world_containers/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mikael Vidstedt":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7250@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T162000 DTEND:20180203T164500 SUMMARY:Class Data Sharing DESCRIPTION:Class Data Sharing (CDS) is a feature that was introduced in Java 5 toimprove startup performance and reduce the memory footprint of the JVMby sharing the metadata of system classes between virtual machinesrunning on the same host. During the last years, this feature has beenconstantly improved. In OpenJDK 10 CDS will be extended by AppCDSwhich additionally allows the sharing of application classes betweenVM instances (see JEP 310: Application Class-Data Sharing [1]).
In this talk I will briefly introduce CDS and AppCDS. Afterdemonstrating its various use cases, I will do a short deep-dive intothe implementation details and challenges. Finally I will brieflydescribe how Strings and Symbols can be stored in the CDS archive andshared across VM as well since OpenJDK 9.
After the talk, the audience should have a better understand of theCDS/AppCDS feature and be able to decide whether it makes sense to useit for their own applications.
[1] http://openjdk.java.net/jeps/310
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/class_data_sharing/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Volker Simonis":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:5983@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T165000 DTEND:20180203T171500 SUMMARY: Hairy Security DESCRIPTION:Hairy Security
It's getting dangerous out there, it's all over the news, IT security is simply no longer something one can ignore.
In this session we'll model all the threats to a typical web application powered by a Java back-end.We’ll have fun, state the obvious, debate and debunk a few security myths, because, remember, It’s not a question of 'if' but 'when' you’ll be hacked, at the end of this session, you’ll decide for yourself if it's really time for this Java web app to go live !
It's a fun, pragmatic, very instructive talk we've been doing in the past (well received at Devoxx France for instance)
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/hairy_security/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Romain Pelisse":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Damien Plard":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7256@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T172000 DTEND:20180203T174500 SUMMARY:Hacking the JVM from Java DESCRIPTION:The JVM contains many interesting features that are frequently overlooked, not exposed through the Java standard library, or typically only accessible from native code. In this talk we will walk through a few of these features, and how they can be used from plain old java code. For example we will see how to access local variables from calling methods, as well as powerful ways to monitor what the JVM does when executing our code.
Free Java allows us access to these features, as well as the ability to contribute towards improving their implementation and make them publicly available to other users. Together we can influence the direction of Java and help get more powerful features into the standard JDK.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/hacking_jvm/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Tobias Lindaaker":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7255@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T175000 DTEND:20180203T181500 SUMMARY:G1 - Not^H^H^HNever Done! DESCRIPTION:In JDK 9 we made the G1 garbage collector the default OpenJDK garbagecollector. Does that mean G1 is done? Definitely not! The Oracle GC team is working on exciting changes to improvethroughput, latency and memory footprint for the G1 garbage collectorfor the next JDKs. We are excited to give you a heads up on a few ofthem:
Of course, this is just what we are currently working on; we wouldalso like to share a few interesting ideas that would be interesting topick up and contribute. :)
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/g1/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Thomas Schatzl":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:7249@FOSDEM18@fosdem.org TZID:Europe-Brussels DTSTART:20180203T182000 DTEND:20180203T190000 SUMMARY:OpenJDK Governing Board Q&A DESCRIPTION:An open Q&A session with members of the OpenJDK Governing Board.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Free Java URL:https:/fosdem.org/2018/schedule/2018/schedule/event/gb_qa/ LOCATION:UD2.208 (Decroly) ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mark Reinhold":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Mario Torre":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Andrew Haley":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Georges Saab":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Doug Lea":invalid:nomail ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="John Duimovich":invalid:nomail END:VEVENT END:VCALENDAR