+ All Categories
Home > Technology > NLJUG J-Fall 2011

NLJUG J-Fall 2011

Date post: 11-Jul-2015
Category:
Upload: nils-breunese
View: 496 times
Download: 6 times
Share this document with a friend
16
NLJUG J-Fall 2011 Nils Breunese (VPRO) [email protected] dinsdag 8 november 11
Transcript
Page 1: NLJUG J-Fall 2011

NLJUG J-Fall 2011Nils Breunese (VPRO)[email protected]

dinsdag 8 november 11

Page 2: NLJUG J-Fall 2011

Java 7 Director’s Cut

Tomas Nilsson (Product Manager Java SE, Oracle)

Oracle heeft veel regels

Over security bugs wordt niet gesproken, niet changelogs

In tegenstelling tot Sun: veel bereikt, actually shipping

Oracle heeft 100.000+ manjaar geïnvesteerd in Java

dinsdag 8 november 11

Page 3: NLJUG J-Fall 2011

Java EE 7: for the cloudArun Gupta (Java EE & GlassFish Evangelist, Oracle)

IaaS, PaaS, SaaS? Vendor lock-in!

Java EE 6 provides services, Java EE 7 is a service

Service provisioning op basis van annotaties

Dynamic service provisioning, auto-scaling, high availability

Demo: http://glassfish.org/javaone2011

dinsdag 8 november 11

Page 4: NLJUG J-Fall 2011

Don’t call us, we’ll pushLucas Jellema (Technical Architect, AMIS)

Comet (AJAX push, reverse AJAX, streaming, etc.)

Push: realtime en lagere systeembelasting

Oplossing: Websockets (HTML5, nieuwe spec)

Niet alleen naar browser, ook sommige DB’s kunnen pushen

Gebruik een framework, dat zal t.z.t. wel overstappen

dinsdag 8 november 11

Page 5: NLJUG J-Fall 2011

Java op Windows Azure

Virtuele Windows Server 2008 instanties

Failover, high availability, maar geen sticky sessions

Zelf Java runtime en servlet container meeleveren

Eigenlijk dus geen specifieke ondersteuning voor Java

Remote desktop toegang voor de liefhebber

dinsdag 8 november 11

Page 6: NLJUG J-Fall 2011

iOS, HTML5 en Andriod CI

Robert van Loghem (Mobile Development Consultant, Xebia)

Gebruik Unit en UI tests

Realistisch testomgevingen zijn lastig, veldtesten belangrijk

Jenkins met Android Emulator plugin, Jasmine, Selenium Web Driver, Robotium, GHUnit (test op device), KIF, WaxSim

iOS: onsamenhangende tooling, Testflight is wel te gek

dinsdag 8 november 11

Page 7: NLJUG J-Fall 2011

Looking at Groovy 1.8

Hubert Klein Ikkink a.k.a. mrhaki (VX Company)

GPars, closures, JSON, command chain expressions, AST transformations

dinsdag 8 november 11

Page 8: NLJUG J-Fall 2011

GParsGParsPool.withPool { def selfPortraits = images.findAllParallel { it.contains me } .collectParallel { it.resize() }

// a map-reduce functional style def smallestSelfPortrait = images.parallel .filter{ it.contains me } .map{ it.resize() } .main{ it.sizeInMB }}

dinsdag 8 november 11

Page 9: NLJUG J-Fall 2011

Closures

Closures als annotation parameters

Closure composition (closures samenstellen tot nieuwe)

Closure trampoline (voorkom stack overflow)

Closure memoization (caching van resultaten)

dinsdag 8 november 11

Page 10: NLJUG J-Fall 2011

JSON: JsonSlurper

import groovy.json.*

def payload = new URL(“http://example.com/commits”).textdef slurper = new JsonSlurper()def doc = slurper.parseText(payload)

doc.commits.message.each { println it }

dinsdag 8 november 11

Page 11: NLJUG J-Fall 2011

JSON: JsonBuilderimport groovy.json.*def json = new JsonBuilder()json.person { name “Guillaume” age 33 pets “Hector”, “Felix”}println json.toString()// {“person”:{“name”:”Guillaume”,”age”:33,”pets”:[“Hector”,”Felix”]}}

dinsdag 8 november 11

Page 12: NLJUG J-Fall 2011

Command chainsshow = { println it }square_root = { Math.sqrt(it) }def please(action) { [the: { what -> [of: { n -> action(what(n)) }] }]}

please show the square_root of 100// equivalent: please(show).the(square_root).of(100)

dinsdag 8 november 11

Page 13: NLJUG J-Fall 2011

AST Transformations

Injecteer logger: @Log, @Commons, @Log4j, @Slf4j

Maak variabele in script beschikbaar in methodes: @Field

@ToString, @EqualsAndHashCode, @TupleConstructor

Of alledrie tegelijk: @Canonical

En nog véél meer: @AutoClone, @InheritConstructors, @WithReadLock, @WithWriteLock, @ListenerList, etc.

dinsdag 8 november 11

Page 14: NLJUG J-Fall 2011

String to Enum coercion

String to Enum coercion:

enum Color { red, green, blue }

def r = “red” as Color

Color b = “blue”

dinsdag 8 november 11

Page 15: NLJUG J-Fall 2011

MiscDiamond operator (Java 7):

List<List<String>> list1 = new ArrayList<>()

assert [2,4,2,1,3,5,2,4,3].count({ it % 2 == 0}) == 5

assert [1,2,2,2,3].toSet() == [1,2,3] as Set

Slashy strings, dollar slashy strings (multi-line regex)

Er is meer, maar dit is wel even genoeg...

dinsdag 8 november 11

Page 16: NLJUG J-Fall 2011

Java Tuning PuzzlersGebruik AppDynamics Lite!

Findbugs heeft altijd gelijk!

Checkstyle, PMD, etc. is vaak een beetje gezeur

HotSpot profiler, voor simpele applicaties: -Xprof

VisualVM

Gratis Java-monitoring: http://java-monitor.com/

dinsdag 8 november 11


Recommended