SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
1DEVFEST NANTES 16
DEVFEST NANTES 16
Jigsaw
est prêt à tuer le
classpath
@AlexisHassler - #devfestnantes
"Classpath is dead!"
Mark Reinhold
JavaOne 2009
3DEVFEST NANTES 16
Classpath Classloader
Succession
Jigsaw
4DEVFEST NANTES 16
Alexis Hassler
Développeur
Formateur
Indépendant
Fondateur
Préparateur de
Classpath
https://www.fickr.com/photos/summonedbyfells/15007676965
6DEVFEST NANTES 16
String hello = "Salut à vous tous les zazous";
Chercher les classes
CLASSPATH
Hello var = new Hello();
7DEVFEST NANTES 16
-classpath
java -cp hello-lib.jar HelloWorld
8DEVFEST NANTES 16
Erreurs
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException
https://www.fickr.com/photos/rocketboom/2816790116
Class Loader
https://www.fickr.com/photos/15574096@N00/12119344725/
10DEVFEST NANTES 16
java.lang.ClassLoader
loadClass(String name) : Class<?>
getResource(String name) : URL
getResourceAsStream(String name) : InputStream
getParent() : ClassLoader
11DEVFEST NANTES 16
Classloader
sun.misc.Launcher$AppClassLoader
CLASSPATH
Hello.class.getClassLoader()
12DEVFEST NANTES 16
Classloader
null
Hello.class.getClassLoader()
.getClass().getClassLoader()
13DEVFEST NANTES 16
Bootstrap Classloader
BootstrapClassLoader
14DEVFEST NANTES 16
Délégation
BootstrapClassLoader
Parent
frst
System ClassLoader
15DEVFEST NANTES 16
Délégation
System ClassLoader
java -cp hello-lib.jar ...
16DEVFEST NANTES 16
bootclasspath
java -Xbootclasspath/p:hello-lib.jar ...
java -Xbootclasspath:hello-rt.jar ...
java -Xbootclasspath/a:hello-lib.jar ...
BootstrapClassLoader
https://github.com/hasalex/classpath-demo
18DEVFEST NANTES 16
Démonstration
BootstrapClassLoader
java -cp example.jar fr.sewatech.classpath.Count
System ClassLoader
java.lang.Integer
example.jar
java.lang.Integer
19DEVFEST NANTES 16
example.jar
Démonstration
java  -Xbootclasspath/p:example.jar  fr.sewatech.classpath.Count
BootstrapClassLoader
java.lang.Integer
java.lang.Integer
20DEVFEST NANTES 16
URLClassloader
java.net.URLClassLoader
sun.misc.Launcher$AppClassLoader
URLURLURL
21DEVFEST NANTES 16
URLClassloader
System ClassLoader
Bootstrap ClassLoader
URL ClassLoader
URL ClassLoader
URL ClassLoader
Parent
frst
Parent
frst
Parent
frst
22DEVFEST NANTES 16
DIY Classloader
23DEVFEST NANTES 16
Usages
Application Servers
JRebel
Javassist, CGLib,...
24DEVFEST NANTES 16
Tomcat
System
Bootstrap
Common
Webapp1
Webapp2
Webapp3
Local First
message-launcher
message-main
message-common
message-printer
message-service
26DEVFEST NANTES 16
Démonstration
message-launcher
message-common
message-printer
message-service
message-service
System ClassLoader ParentFirst ClassLoader
27DEVFEST NANTES 16
Démonstration
message-launcher
message-common
message-printer
message-service
message-service
System ClassLoader LocalFirst ClassLoader
https://www.fickr.com/photos/delete08/5971235700/
29DEVFEST NANTES 16 http://www.ironmaidenwallpaper.com/
30DEVFEST NANTES 16
Dépendances
Maven,
Gradle,
...
31DEVFEST NANTES 16
Dépendances
Classpath
https://github.com/hasalex/classpath-demo
33DEVFEST NANTES 16
Démonstration
slf4j-api
1.5.11
slf4j-api
1.7.2
message-launcher
message-main
message-common
message-printer
message-service
34DEVFEST NANTES 16
Granularité
Sécurité
Apache commons-collections
https://foxglovesecurity.com/
Succession
36DEVFEST NANTES 16
Modularité
Dépendance
Exposition
Lecture
37DEVFEST NANTES 16
1999
Java embarqué
Java SE
Java serveur
38DEVFEST NANTES 16
Bundle-Name = Hello Service
Bundle-SymbolicName = hello-service
Bundle-Description = Hello Service Bundle
Bundle-Version = 1.0.1
Export-Package = fr.sewatech.classpath
Import-Package = fr.sewatech.classpath.print;version=1.3
OSGi
Bundle
39DEVFEST NANTES 16
OSGi
OS + Hardware
Java Runtime
Module
Life Cycle Services
40DEVFEST NANTES 16
JBoss Modules
java -jar jboss-modules.jar -mp path/to/modules
my.main.module.name
Base de JBoss OSGi
Java SE
41DEVFEST NANTES 16
JBoss Modules
module.xml
resource dependency slot
dependency slot
dependency slot
name slot
resource
resource
42DEVFEST NANTES 16
Jigsaw
9 (2016)
8 (2012)
(2017)
Projet
Intégré au JDK 7 (2008)
43DEVFEST NANTES 16
Jigsaw
Modularité du JDK
44DEVFEST NANTES 16
Jigsaw
Modularité des applications
// module-info.java
module message.service {
requires java.xml.bind;
requires message.common;
exports fr.sewatech.message;
}
45DEVFEST NANTES 16
Jigsaw
Compilation
javac --module-path modules 
-d target/classes/ 
$(find src/main/java/ -name "*.java")
46DEVFEST NANTES 16
Jigsaw
Exécution
java --module-path jigsaw-modules 
-m misc.examples/fr.sewatech.example.Main
https://github.com/hasalex/classpath-demo
Jigsaw ++
https://www.fickr.com/photos/intvgene/370973576
49DEVFEST NANTES 16
Classpath mode
java -classpath lib/* fr.sewatech.example.Main
50DEVFEST NANTES 16
Modular JDK
rt.jar tools.jar
51DEVFEST NANTES 16
Modular JDK
https://github.com/hasalex/classpath-demo
53DEVFEST NANTES 16
Dependencies
module message.service {
requires message.printer;
requires slf4j.api;
}
module message.printer {
requires transitive message.common;
}
message.printer
message.service
message.common
54DEVFEST NANTES 16
module message.service {
requires message.printer;
requires slf4j.api;
}
Dependencies
Automatic modules slf4j-api-1.5.2.
slf4j.api
message.service
55DEVFEST NANTES 16
Dependencies
Classpath
message.common
message.printer
unnamed
message.service
56DEVFEST NANTES 16
Dependencies
module message.service @ 1.0 {
requires message.printer @ 1.0;
requires slf4j.api @ 1.7;
}
Module version
https://github.com/hasalex/classpath-demo
58DEVFEST NANTES 16
Exports
Accessibility
public
protected
package
private
inside a module
59DEVFEST NANTES 16
Exports
Accessibility
public for other modules
module message.service {
exports fr.sewatech.message;
}
60DEVFEST NANTES 16
Exports
Accessibility
public for some modules
module java.base {
exports sun.reflect to
java.logging,
java.sql,
jdk.scripting.nashorn;
}
61DEVFEST NANTES 16
field.setAccessible(true);
Exports
java.lang.reflect.InaccessibleObjectException
Refection
module message.service {
exports private java.security;
}
https://github.com/hasalex/classpath-demo
63DEVFEST NANTES 16
Classloader
java.net.URLClassLoader FLTMClassLoader
java.lang.ClassLoader
64DEVFEST NANTES 16
BootClassLoader
bootclasspath
java -Xbootclasspath/p:hello-lib.jar ...
java -Xbootclasspath:hello-rt.jar ...
java -Xbootclasspath/a:hello-lib.jar ...
65DEVFEST NANTES 16
Patch
Compile
Run
javac -Xmodule:java.base 
-d ../patch-classes 
src/java/lang/Integer.java
java --patch-module java.base=patch.jar 
--module-path jigsaw-modules 
-m misc.examples
https://github.com/hasalex/classpath-demo
Jigsaw ++
++
https://www.fickr.com/photos/foot-slogger/901793825/
68DEVFEST NANTES 16
Aller plus haw avec Jigsaw
Service Providers / Loaders
Layers : versioning
jlink : custom JRE
jdeps : migration
...
Quand ?
https://www.fickr.com/photos/mars_/18189674562/
70DEVFEST NANTES 16
Planning
Java SE 9
71DEVFEST NANTES 16
Planning
Outils ?
Maven, Gradle, IDE
Livrairies ?
SLF4J, Guava,...
Frameworks ?
Spring, Hibernate,...
Runtimes ?
Java EE, Tomcat,...
Hadoop,...
72DEVFEST NANTES 16
Essayer...
https://jdk9.java.net/download/
Exécutable d'installation
https://jdk9.java.net/jigsaw/
Archive
Dernières évolutions de Jigsaw
73DEVFEST NANTES 16
Apprendre +
JavaOne
http://openjdk.java.net/projects/jigsaw/talks/
Quick-Start Guide
http://openjdk.java.net/projects/jigsaw/quick-start
The State of the Module System
http://openjdk.java.net/projects/jigsaw/spec/sotms/
74DEVFEST NANTES 16
module-path is born
classpath is NOT dead
Conclusion
76DEVFEST NANTES 16
https://www.sewatech.fr
@AlexisHassler
http://alexis-hassler.com
https://www.fickr.com/photos/a-hassler/28532230893

Mais conteúdo relacionado

Destaque (19)

Algo Mio
Algo MioAlgo Mio
Algo Mio
 
Ana GarcíA Mi Pueblo
Ana GarcíA Mi PuebloAna GarcíA Mi Pueblo
Ana GarcíA Mi Pueblo
 
El gato del mago
El gato del magoEl gato del mago
El gato del mago
 
6
66
6
 
smurfit stone container 1Q06_FR
smurfit stone container 1Q06_FRsmurfit stone container 1Q06_FR
smurfit stone container 1Q06_FR
 
Sobre La Felicidad
Sobre La FelicidadSobre La Felicidad
Sobre La Felicidad
 
Quiero
QuieroQuiero
Quiero
 
Pintura Camiones
Pintura CamionesPintura Camiones
Pintura Camiones
 
P U E R T A S D E L A N A V I D A D
P U E R T A S  D E  L A  N A V  I D A DP U E R T A S  D E  L A  N A V  I D A D
P U E R T A S D E L A N A V I D A D
 
PRESENTACION 4
PRESENTACION 4PRESENTACION 4
PRESENTACION 4
 
Edelman Trust Barometer 2010, France
Edelman Trust Barometer 2010, FranceEdelman Trust Barometer 2010, France
Edelman Trust Barometer 2010, France
 
Juanitoenel Ipem6
Juanitoenel Ipem6Juanitoenel Ipem6
Juanitoenel Ipem6
 
Elwiwichu
ElwiwichuElwiwichu
Elwiwichu
 
Cartade Sarah
Cartade SarahCartade Sarah
Cartade Sarah
 
Fotolog
FotologFotolog
Fotolog
 
Histoire Littéraire Néerlandaise Le Moyen âge
Histoire Littéraire Néerlandaise   Le Moyen âgeHistoire Littéraire Néerlandaise   Le Moyen âge
Histoire Littéraire Néerlandaise Le Moyen âge
 
F A N T A S T I C O R C
F A N T A S T I C O R CF A N T A S T I C O R C
F A N T A S T I C O R C
 
Kimono Guadalupano
Kimono GuadalupanoKimono Guadalupano
Kimono Guadalupano
 
la escencia de un abrazo
la escencia de un abrazola escencia de un abrazo
la escencia de un abrazo
 

Semelhante a DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java

Semelhante a DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java (20)

LyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpath LyonJUG : Comment Jigsaw est prêt à tuer le classpath
LyonJUG : Comment Jigsaw est prêt à tuer le classpath
 
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw  est prêt à tuer le classpathSoft-Shake 2016 : Jigsaw  est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
 
DevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern JavaDevNexus 2020: Discover Modern Java
DevNexus 2020: Discover Modern Java
 
ElsassJUG - Le classpath n'est pas mort...
ElsassJUG - Le classpath n'est pas mort...ElsassJUG - Le classpath n'est pas mort...
ElsassJUG - Le classpath n'est pas mort...
 
Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016
 
Integrating tornado and webpack
Integrating tornado and webpackIntegrating tornado and webpack
Integrating tornado and webpack
 
What we can expect from Java 9 by Ivan Krylov
What we can expect from Java 9 by Ivan KrylovWhat we can expect from Java 9 by Ivan Krylov
What we can expect from Java 9 by Ivan Krylov
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVM
 
Migrating to Java 9 Modules
Migrating to Java 9 ModulesMigrating to Java 9 Modules
Migrating to Java 9 Modules
 
DevoxxFR17 - Préparez-vous à la modularité selon Java 9
DevoxxFR17 - Préparez-vous à la modularité selon Java 9DevoxxFR17 - Préparez-vous à la modularité selon Java 9
DevoxxFR17 - Préparez-vous à la modularité selon Java 9
 
Devoxx17 - Préparez-vous à la modularité selon Java 9
Devoxx17 - Préparez-vous à la modularité selon Java 9Devoxx17 - Préparez-vous à la modularité selon Java 9
Devoxx17 - Préparez-vous à la modularité selon Java 9
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Java 9 preview
Java 9 previewJava 9 preview
Java 9 preview
 
Java On Speed
Java On SpeedJava On Speed
Java On Speed
 
Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)
 
Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)
 
Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
 
Inside the JVM - Follow the white rabbit!
Inside the JVM - Follow the white rabbit!Inside the JVM - Follow the white rabbit!
Inside the JVM - Follow the white rabbit!
 
Atlassian Groovy Plugins
Atlassian Groovy PluginsAtlassian Groovy Plugins
Atlassian Groovy Plugins
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 

Mais de Alexis Hassler

DevoxxFR 2013 - Arquillian
DevoxxFR 2013 - ArquillianDevoxxFR 2013 - Arquillian
DevoxxFR 2013 - Arquillian
Alexis Hassler
 
DevoxxFR 2013 - Le classpath n'est pas mort, mais presque
DevoxxFR 2013 - Le classpath n'est pas mort, mais presqueDevoxxFR 2013 - Le classpath n'est pas mort, mais presque
DevoxxFR 2013 - Le classpath n'est pas mort, mais presque
Alexis Hassler
 
Arquillian - YaJUG - nov. 2012
Arquillian - YaJUG - nov. 2012Arquillian - YaJUG - nov. 2012
Arquillian - YaJUG - nov. 2012
Alexis Hassler
 
JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012
Alexis Hassler
 
Arquillian - Ippevent 01/2012
Arquillian - Ippevent 01/2012Arquillian - Ippevent 01/2012
Arquillian - Ippevent 01/2012
Alexis Hassler
 

Mais de Alexis Hassler (20)

INSA Lyon - Java in da Cloud - 06/2016
INSA Lyon - Java in da Cloud - 06/2016INSA Lyon - Java in da Cloud - 06/2016
INSA Lyon - Java in da Cloud - 06/2016
 
LorraineJUG - Le classpath n'est pas mort
LorraineJUG - Le classpath n'est pas mortLorraineJUG - Le classpath n'est pas mort
LorraineJUG - Le classpath n'est pas mort
 
LorraineJUG - WildFly
LorraineJUG - WildFlyLorraineJUG - WildFly
LorraineJUG - WildFly
 
INSA - Java in Ze Cloud - 2014
INSA - Java in Ze Cloud - 2014INSA - Java in Ze Cloud - 2014
INSA - Java in Ze Cloud - 2014
 
softshake 2014 - Java EE
softshake 2014 - Java EEsoftshake 2014 - Java EE
softshake 2014 - Java EE
 
INSA - Java in ze Cloud (2013)
INSA - Java in ze Cloud (2013)INSA - Java in ze Cloud (2013)
INSA - Java in ze Cloud (2013)
 
MarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presqueMarsJUG - Le classpath n'est pas mort, mais presque
MarsJUG - Le classpath n'est pas mort, mais presque
 
MarsJUG - Une nouvelle vision des tests avec Arquillian
MarsJUG - Une nouvelle vision des tests avec ArquillianMarsJUG - Une nouvelle vision des tests avec Arquillian
MarsJUG - Une nouvelle vision des tests avec Arquillian
 
JUG Summer Camp - Une nouvelle vision des tests avec Arquillian
JUG Summer Camp - Une nouvelle vision des tests avec ArquillianJUG Summer Camp - Une nouvelle vision des tests avec Arquillian
JUG Summer Camp - Une nouvelle vision des tests avec Arquillian
 
DevoxxFR 2013 - Arquillian
DevoxxFR 2013 - ArquillianDevoxxFR 2013 - Arquillian
DevoxxFR 2013 - Arquillian
 
DevoxxFR 2013 - Le classpath n'est pas mort, mais presque
DevoxxFR 2013 - Le classpath n'est pas mort, mais presqueDevoxxFR 2013 - Le classpath n'est pas mort, mais presque
DevoxxFR 2013 - Le classpath n'est pas mort, mais presque
 
Java in ze Cloud - INSA - nov. 2012
Java in ze Cloud - INSA - nov. 2012Java in ze Cloud - INSA - nov. 2012
Java in ze Cloud - INSA - nov. 2012
 
Arquillian - YaJUG - nov. 2012
Arquillian - YaJUG - nov. 2012Arquillian - YaJUG - nov. 2012
Arquillian - YaJUG - nov. 2012
 
JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012JBoss AS 7 - YaJUG - nov. 2012
JBoss AS 7 - YaJUG - nov. 2012
 
JBoss AS 7 : Déployer sur terre et dans les nuages
JBoss AS 7 : Déployer sur terre et dans les nuagesJBoss AS 7 : Déployer sur terre et dans les nuages
JBoss AS 7 : Déployer sur terre et dans les nuages
 
Arquillian : Tester sur terre et dans les nuages
Arquillian : Tester sur terre et dans les nuagesArquillian : Tester sur terre et dans les nuages
Arquillian : Tester sur terre et dans les nuages
 
Arquillian, un alien en Bretagne
Arquillian, un alien en BretagneArquillian, un alien en Bretagne
Arquillian, un alien en Bretagne
 
Tester la persistance Java avec Arquillian
Tester la persistance Java avec ArquillianTester la persistance Java avec Arquillian
Tester la persistance Java avec Arquillian
 
Arquillian - Ippevent 01/2012
Arquillian - Ippevent 01/2012Arquillian - Ippevent 01/2012
Arquillian - Ippevent 01/2012
 
JavaEE - Test & Deploy
JavaEE - Test & DeployJavaEE - Test & Deploy
JavaEE - Test & Deploy
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java