Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NLJUG J-Fall 2011

515 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

NLJUG J-Fall 2011

  1. 1. NLJUG J-Fall 2011 Nils Breunese (VPRO) N.Breunese@vpro.nl
  2. 2. Java 7 Director’s CutTomas Nilsson (Product Manager Java SE, Oracle)Oracle heeft veel regels Over security bugs wordt niet gesproken, niet changelogsIn tegenstelling tot Sun: veel bereikt, actually shippingOracle heeft 100.000+ manjaar geïnvesteerd in Java
  3. 3. 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 serviceService provisioning op basis van annotatiesDynamic service provisioning, auto-scaling, high availabilityDemo: http://glassfish.org/javaone2011
  4. 4. Don’t call us, we’ll pushLucas Jellema (Technical Architect, AMIS)Comet (AJAX push, reverse AJAX, streaming, etc.)Push: realtime en lagere systeembelastingOplossing: Websockets (HTML5, nieuwe spec)Niet alleen naar browser, ook sommige DB’s kunnen pushenGebruik een framework, dat zal t.z.t. wel overstappen
  5. 5. Java op Windows AzureVirtuele Windows Server 2008 instantiesFailover, high availability, maar geen sticky sessionsZelf Java runtime en servlet container meeleverenEigenlijk dus geen specifieke ondersteuning voor JavaRemote desktop toegang voor de liefhebber
  6. 6. iOS, HTML5 en Andriod CIRobert van Loghem (Mobile Development Consultant, Xebia)Gebruik Unit en UI testsRealistisch testomgevingen zijn lastig, veldtesten belangrijkJenkins met Android Emulator plugin, Jasmine, SeleniumWeb Driver, Robotium, GHUnit (test op device), KIF, WaxSimiOS: onsamenhangende tooling, Testflight is wel te gek
  7. 7. Looking at Groovy 1.8Hubert Klein Ikkink a.k.a. mrhaki (VX Company)GPars, closures, JSON, command chain expressions, ASTtransformations
  8. 8. 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 }}
  9. 9. ClosuresClosures als annotation parametersClosure composition (closures samenstellen tot nieuwe)Closure trampoline (voorkom stack overflow)Closure memoization (caching van resultaten)
  10. 10. JSON: JsonSlurperimport 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 }
  11. 11. 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”]}}
  12. 12. 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)
  13. 13. AST TransformationsInjecteer logger: @Log, @Commons, @Log4j, @Slf4jMaak variabele in script beschikbaar in methodes: @Field@ToString, @EqualsAndHashCode, @TupleConstructor Of alledrie tegelijk: @CanonicalEn nog véél meer: @AutoClone, @InheritConstructors,@WithReadLock, @WithWriteLock, @ListenerList, etc.
  14. 14. String to Enum coercionString to Enum coercion: enum Color { red, green, blue } def r = “red” as Color Color b = “blue”
  15. 15. MiscDiamond operator (Java 7): List<List<String>> list1 = new ArrayList<>()assert [2,4,2,1,3,5,2,4,3].count({ it % 2 == 0}) == 5assert [1,2,2,2,3].toSet() == [1,2,3] as SetSlashy strings, dollar slashy strings (multi-line regex)Er is meer, maar dit is wel even genoeg...
  16. 16. Java Tuning PuzzlersGebruik AppDynamics Lite!Findbugs heeft altijd gelijk! Checkstyle, PMD, etc. is vaak een beetje gezeurHotSpot profiler, voor simpele applicaties: -XprofVisualVMGratis Java-monitoring: http://java-monitor.com/

×