SlideShare a Scribd company logo
@juanplopes




JAVA
       PARA
       PROGRAMADORES
       .NET
Rio de Janeiro
Bel' Zonte
Em comunidades,
pessoas antes de tecnologias.
REVELAÇÃO!
REVELAÇÃO!




https://github.com/juanplopes/mublasters
VAMOS FALAR
  MAL DE
SISTEMA DE TIPOS NÃO É
        UNIFICADO



    NÃO TEM STRUCTS




GENERICS TEM TYPE ERASURE
API DE DATAS SOFRÍVEL




 NÃO TEM ITERATOR METHODS




NÃO TEM CLOSURES OU LAMBDAS
java.util.concurrent
NÃO CRIE THREADS


new Thread(new Runnable() {
    public void run() {

    }
}).start();
TRABALHANDO COM FUTURES


Future é a promessa do resultado de
    uma computação que ainda não
   terminou (ou sequer começou).
TRABALHANDO COM FUTURES

ExecutorService executor = ...

Future future = executor.submit(new Runnable() {
    public void run() {

      }
});

//qualquer outro trabalho

future.get(); //bloqueante
TRABALHANDO COM FUTURES

ExecutorService executor = ...

Future<String> future = executor.submit(new Callable<String>()
{
    public String call() {
       return "42";
    }
});

//qualquer outro trabalho

String result = future.get(); //bloqueante
.NET TASK FACTORY

TaskFactory factory = ...

var task = factory.StartNew(() => "42");

//qualquer outro trabalho

String result = future.Result; //bloqueante
.NET TASK FACTORY


      Java 5 (2004)
ExecutorService e Future<T>

      .NET 4 (2010)
TaskFactory, TaskScheduler e
           Task<T>
TRABALHANDO COM FUTURES


Executors
   newCachedThreadPool()
   newFixedThreadPool(n)
   newScheduledThreadPool(n)
   newSingleThreadExecutor()

guava.MoreExecutors
   sameThreadExecutor()
   listeningDecorator(executor)
E A SINCRONIZAÇÃO?
COLEÇÕES CONCORRENTES


ConcurrentMap<T, K>

  putIfAbsent(key, value)
  remove(key, value)
  replace(key, value)
  replace(key, oldValue, newValue)
COLEÇÕES CONCORRENTES


ConcurrentNavigableMap<T, K>

  headMap(toKey)
  tailMap(fromKey)
  subMap(fromKey, toKey)
PROBLEMA DO PRODUTOR-
     CONSUMIDOR


     produz            consome



 A            BUFFER             B
COLEÇÕES BLOQUEANTES


ArrayBlockingQueue<T>,
PriorityBlockingQueue<T>
DelayQueue<T>

  Exception: add, remove
  Retorna Flag: offer, poll
  Bloqueia: put, take
  Timeout: offer², poll²
ESTRUTURAS DE DADOS DE
    SINCRONIZAÇÃO

Semaphore

  acquire(number)
  release(number)
ESTRUTURAS DE DADOS DE
    SINCRONIZAÇÃO

CountDownLatch

  countDown()
  await()
ESTRUTURAS DE DADOS DE
    SINCRONIZAÇÃO

CyclicBarrier

  await()
OPEN SOURCE
APACHE

         Hadoop
         Lucene
         Maven
         Tomcat
         ZooKeeper
         HBase
         Solr
         ActiveMQ
         Ant
         Log4J
RED HAT

          Hibernate
          JBoss
          TorqueBox
          JGroups
          Infinispan
          AeroGear
          Drools
          EJB3
          HornetQ
          RichFaces
GOOGLE

         Guava
         Guice ('Juice')
         Gson
         Protocol Buffers
         Contracts
         GWT
         Caliper
OPEN JDK
APACHE MAVEN

<dependency>
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <version>...</version>
</dependency>
APACHE MAVEN
JGROUPS

JChannel channel = new JChannel();
channel.setReceiver(new ReceiverAdapter() {
    public void receive(Message msg) {
        System.out.println(
            msg.getSrc() + ": " + msg.getObject());
    }
});

channel.connect("meuCanalDeChat");

BufferedReader reader = new BufferedReader(
                       new InputStreamReader(System.in));
while(true) {
   String line = reader.readLine();
   channel.send(null, line);
}
GUAVA

Preconditions
Immutable Collections
Caching
Functional Idioms
Signed Numbers
Reflection
Math
Optimized Data Structures
Simplified I/O
GUAVA

LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
    .maximumSize(1000)
    .expireAfterWrite(10, TimeUnit.MINUTES)
    .removalListener(MY_LISTENER)
    .build(new CacheLoader<Key, Graph>() {
        public Graph load(Key key) throws AnyException {
            return createExpensiveGraph(key);
        }
    });
GUICE ou SPRING?




É mais rápido             Mais usuários
Sem XML                    Não é só IOC
Menos Annotations        Integra melhor
Melhores convenções   Mais documentação
AOP embutido
MOCKITO


when(obj.method()).thenReturn(42);

verify(obj).method();
LINGUAGENS ALTERNATIVAS

●   JRuby
●   Clojure
●   Scala
●   Groovy
●   DynJS
IDE
IDEs
       IDE
HOTSPOT
JIT E ADAPTIVE OPTIMIZATION

Loop Unrolling
Method inlining
Exact Type Inference
Type Test Strength Reduction
Dead Code Elimination
Tiered Compilation
Lock Elision
Dereflection
Autobox Elimination
GC: CONCURRENT MARK SWEEP
JVISUALVM
JVISUALVM
YOURKIT PROFILER
Tecnologia não é religião,
time de futebol ou partido
         político.
Obrigado.

More Related Content

What's hot

Java 7 LavaJUG
Java 7 LavaJUGJava 7 LavaJUG
Java 7 LavaJUG
julien.ponge
 
Understanding greenlet
Understanding greenletUnderstanding greenlet
Understanding greenlet
Saúl Ibarra Corretgé
 
Gevent what's the point
Gevent what's the pointGevent what's the point
Gevent what's the point
seanmcq
 
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
knight1128
 
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. NowESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
Krzysztof Szafranek
 
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java AgentsOredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
Anton Arhipov
 
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
 
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
 
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradleConstruire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
 
DevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The CoversDevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The Covers
Simon Maple
 
Testing with Node.js
Testing with Node.jsTesting with Node.js
Testing with Node.js
Jonathan Waller
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
Eugeniy Tyumentcev
 
Performance is a feature! - Developer South Coast - part 2
Performance is a feature!  - Developer South Coast - part 2Performance is a feature!  - Developer South Coast - part 2
Performance is a feature! - Developer South Coast - part 2
Matt Warren
 
Qt Rest Server
Qt Rest ServerQt Rest Server
Qt Rest Server
Vasiliy Sorokin
 
Server1
Server1Server1
Server1
FahriIrawan3
 
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUGIs your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUG
Simon Maple
 
Nantes Jug - Java 7
Nantes Jug - Java 7Nantes Jug - Java 7
Nantes Jug - Java 7
Sébastien Prunier
 
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To TestSpock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Howard Lewis Ship
 

What's hot (20)

Java 7 LavaJUG
Java 7 LavaJUGJava 7 LavaJUG
Java 7 LavaJUG
 
Understanding greenlet
Understanding greenletUnderstanding greenlet
Understanding greenlet
 
Gevent what's the point
Gevent what's the pointGevent what's the point
Gevent what's the point
 
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
ESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. NowESCMAScript 6: Get Ready For The Future. Now
ESCMAScript 6: Get Ready For The Future. Now
 
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java AgentsOredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
 
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
 
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native CollectionsMemory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
 
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradleConstruire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
 
DevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The CoversDevoxxPL: JRebel Under The Covers
DevoxxPL: JRebel Under The Covers
 
Testing with Node.js
Testing with Node.jsTesting with Node.js
Testing with Node.js
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
 
Performance is a feature! - Developer South Coast - part 2
Performance is a feature!  - Developer South Coast - part 2Performance is a feature!  - Developer South Coast - part 2
Performance is a feature! - Developer South Coast - part 2
 
Qt Rest Server
Qt Rest ServerQt Rest Server
Qt Rest Server
 
Server1
Server1Server1
Server1
 
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUGIs your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUG
 
Nantes Jug - Java 7
Nantes Jug - Java 7Nantes Jug - Java 7
Nantes Jug - Java 7
 
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To TestSpock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
 

Viewers also liked

Guía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realistaGuía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realista
Emilio García Garrido
 
Gluster open stack dev summit 042011
Gluster open stack dev summit 042011Gluster open stack dev summit 042011
Gluster open stack dev summit 042011
Open Stack
 
产品经理的视角
产品经理的视角产品经理的视角
产品经理的视角
envong
 
Do you really get class loaders?
Do you really get class loaders? Do you really get class loaders?
Do you really get class loaders?
guestd56374
 
On The Road
On The RoadOn The Road
On The Road
Abhishek Shah
 
CEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksistaCEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksista
PwC Suomi
 
After Real Time Advertising
After Real Time AdvertisingAfter Real Time Advertising
After Real Time Advertising
Amil Husain
 
Why APIs are not SOA++
Why APIs are not SOA++Why APIs are not SOA++
Why APIs are not SOA++
Apigee | Google Cloud
 
Emagineers - Design & Test Report
Emagineers - Design & Test ReportEmagineers - Design & Test Report
Emagineers - Design & Test Report
Alexis Polanco, Jr.
 
Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.
[x]cube LABS
 
5050 project update
5050 project update5050 project update
5050 project update
Made by Many
 
Dependency injection in scala
Dependency injection in scalaDependency injection in scala
Dependency injection in scala
Michal Bigos
 
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Jess Duda
 
Secrets of a successful e-commerce website
Secrets of a successful e-commerce websiteSecrets of a successful e-commerce website
Secrets of a successful e-commerce website
Troy Cox
 
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
UserZoom
 
High Performance Web Sites
High Performance Web SitesHigh Performance Web Sites
High Performance Web Sites
Ravi Raj
 
Raymond - Social Media Strategy
Raymond - Social Media StrategyRaymond - Social Media Strategy
Raymond - Social Media Strategy
Bhavna Vaja
 
KG이니시스 회사 소개서
KG이니시스 회사 소개서KG이니시스 회사 소개서
KG이니시스 회사 소개서Inicis
 
Embrace Uncertainty
Embrace UncertaintyEmbrace Uncertainty
Embrace Uncertainty
abcd82
 
2015 WebConf - Web + Arduino 實在有夠潮
2015 WebConf  - Web + Arduino 實在有夠潮2015 WebConf  - Web + Arduino 實在有夠潮
2015 WebConf - Web + Arduino 實在有夠潮
益祥 許
 

Viewers also liked (20)

Guía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realistaGuía completa de linkbuilding - La visión más realista
Guía completa de linkbuilding - La visión más realista
 
Gluster open stack dev summit 042011
Gluster open stack dev summit 042011Gluster open stack dev summit 042011
Gluster open stack dev summit 042011
 
产品经理的视角
产品经理的视角产品经理的视角
产品经理的视角
 
Do you really get class loaders?
Do you really get class loaders? Do you really get class loaders?
Do you really get class loaders?
 
On The Road
On The RoadOn The Road
On The Road
 
CEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksistaCEO Survey 2014 - Poimintoja Suomen tuloksista
CEO Survey 2014 - Poimintoja Suomen tuloksista
 
After Real Time Advertising
After Real Time AdvertisingAfter Real Time Advertising
After Real Time Advertising
 
Why APIs are not SOA++
Why APIs are not SOA++Why APIs are not SOA++
Why APIs are not SOA++
 
Emagineers - Design & Test Report
Emagineers - Design & Test ReportEmagineers - Design & Test Report
Emagineers - Design & Test Report
 
Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.Mobile Device Management: Securing your Mobile Environment.
Mobile Device Management: Securing your Mobile Environment.
 
5050 project update
5050 project update5050 project update
5050 project update
 
Dependency injection in scala
Dependency injection in scalaDependency injection in scala
Dependency injection in scala
 
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
Editorial Strategy: The Missing Link in Civic Data Tools, Transparency Camp 2015
 
Secrets of a successful e-commerce website
Secrets of a successful e-commerce websiteSecrets of a successful e-commerce website
Secrets of a successful e-commerce website
 
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
Four Country Mobile Operator Study: a competitive benchmark of leading mobile...
 
High Performance Web Sites
High Performance Web SitesHigh Performance Web Sites
High Performance Web Sites
 
Raymond - Social Media Strategy
Raymond - Social Media StrategyRaymond - Social Media Strategy
Raymond - Social Media Strategy
 
KG이니시스 회사 소개서
KG이니시스 회사 소개서KG이니시스 회사 소개서
KG이니시스 회사 소개서
 
Embrace Uncertainty
Embrace UncertaintyEmbrace Uncertainty
Embrace Uncertainty
 
2015 WebConf - Web + Arduino 實在有夠潮
2015 WebConf  - Web + Arduino 實在有夠潮2015 WebConf  - Web + Arduino 實在有夠潮
2015 WebConf - Web + Arduino 實在有夠潮
 

Similar to devday2012

4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
PROIDEA
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
Mattias Karlsson
 
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowRxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrow
Viliam Elischer
 
Auto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with XtendAuto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with Xtend
Sven Efftinge
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
David Padbury
 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM Mechanics
Azul Systems, Inc.
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lisp
elliando dias
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCP
Eric Jain
 
Java Concurrency
Java ConcurrencyJava Concurrency
Java Concurrency
Carol McDonald
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
Rick Warren
 
RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]
Igor Lozynskyi
 
Java util concurrent
Java util concurrentJava util concurrent
Java util concurrent
Roger Xia
 
Clojure And Swing
Clojure And SwingClojure And Swing
Clojure And Swing
Skills Matter
 
From Java 6 to Java 7 reference
From Java 6 to Java 7 referenceFrom Java 6 to Java 7 reference
From Java 6 to Java 7 reference
Giacomo Veneri
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
Pavlo Baron
 
wtf is in Java/JDK/wtf7?
wtf is in Java/JDK/wtf7?wtf is in Java/JDK/wtf7?
wtf is in Java/JDK/wtf7?
Scott Leberknight
 
What is new in java 8 concurrency
What is new in java 8 concurrencyWhat is new in java 8 concurrency
What is new in java 8 concurrency
kshanth2101
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
Oleg Podsechin
 
Java 7 & 8 New Features
Java 7 & 8 New FeaturesJava 7 & 8 New Features
Java 7 & 8 New Features
Leandro Coutinho
 

Similar to devday2012 (20)

4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...
 
Java 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from OredevJava 7 Whats New(), Whats Next() from Oredev
Java 7 Whats New(), Whats Next() from Oredev
 
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowRxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrow
 
Auto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with XtendAuto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with Xtend
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM Mechanics
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lisp
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCP
 
Java Concurrency
Java ConcurrencyJava Concurrency
Java Concurrency
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
 
RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]RxJava applied [JavaDay Kyiv 2016]
RxJava applied [JavaDay Kyiv 2016]
 
Java util concurrent
Java util concurrentJava util concurrent
Java util concurrent
 
Clojure And Swing
Clojure And SwingClojure And Swing
Clojure And Swing
 
From Java 6 to Java 7 reference
From Java 6 to Java 7 referenceFrom Java 6 to Java 7 reference
From Java 6 to Java 7 reference
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
 
wtf is in Java/JDK/wtf7?
wtf is in Java/JDK/wtf7?wtf is in Java/JDK/wtf7?
wtf is in Java/JDK/wtf7?
 
What is new in java 8 concurrency
What is new in java 8 concurrencyWhat is new in java 8 concurrency
What is new in java 8 concurrency
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
 
Java 7 & 8 New Features
Java 7 & 8 New FeaturesJava 7 & 8 New Features
Java 7 & 8 New Features
 

More from Juan Lopes

qconrio2015
qconrio2015qconrio2015
qconrio2015
Juan Lopes
 
qconsp2015
qconsp2015qconsp2015
qconsp2015
Juan Lopes
 
PIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexosPIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexos
Juan Lopes
 
devday2013
devday2013devday2013
devday2013
Juan Lopes
 
dnarj20130504
dnarj20130504dnarj20130504
dnarj20130504
Juan Lopes
 
uerj201212
uerj201212uerj201212
uerj201212
Juan Lopes
 
rioinfo2012
rioinfo2012rioinfo2012
rioinfo2012
Juan Lopes
 
tdc2012
tdc2012tdc2012
tdc2012
Juan Lopes
 
dnarj-20120630
dnarj-20120630dnarj-20120630
dnarj-20120630
Juan Lopes
 
dnad12
dnad12dnad12
dnad12
Juan Lopes
 

More from Juan Lopes (10)

qconrio2015
qconrio2015qconrio2015
qconrio2015
 
qconsp2015
qconsp2015qconsp2015
qconsp2015
 
PIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexosPIPES: Uma linguagem para processamento distribuído de eventos complexos
PIPES: Uma linguagem para processamento distribuído de eventos complexos
 
devday2013
devday2013devday2013
devday2013
 
dnarj20130504
dnarj20130504dnarj20130504
dnarj20130504
 
uerj201212
uerj201212uerj201212
uerj201212
 
rioinfo2012
rioinfo2012rioinfo2012
rioinfo2012
 
tdc2012
tdc2012tdc2012
tdc2012
 
dnarj-20120630
dnarj-20120630dnarj-20120630
dnarj-20120630
 
dnad12
dnad12dnad12
dnad12
 

Recently uploaded

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 

Recently uploaded (20)

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 

devday2012