Array Linked to a List, the full story!
José Paumard
https://stuartmarks.wordpress.com/2015/12/18/some-java-list-benchmarks/
basic operations
- list.sort
- list.removeIf()
- forEach
- stream()
- ... random:
- arraylist
- will never shrink
- arraycopy operations
- http://www.hackersdelight.org/
- linkedlist:
- som costly operations
- http://openjdk.java.net/projects/code-tools/jmh/
- annotation
- special maven rule create jar for benchmark
- @Param for measuring with different params
- @Benchmark
- multicore cpu
- 3 levels of cache
- arraylist had contiguous zones
- linkedlist is penalized
- pointer chasing
- not cache-friendly
- other cache unfriendly examples:
- SkipList
- HashMap
- future:
- List.of()
- Set.of()
- removeIf() -- mark & sweep logic (BitSet)
- sort()
- Objects.requireNonNull() https://docs.oracle.com/javase/7/docs/api/java/util/Objects.html
- @FunctionalInterface https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html
- Supplier interface https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html
Exploring Java 9
Venkat Subramaniam
Modularity- big rt.jar split in modules ("jmods" subdir)
- java.base: default dependencies
- other code also in modules
- rule: no cycles (cyclic dependencies)
- collection of packages / data
- name
- "requires"
- "exports": only exported stuff can be used
- convention: put module in dedicated dir
- module-info.java in a top-level directory
- module { export
; } - "requires java.base;" automatically added
- module { export
- public is not "public" anymore -- module-bound
- examine dependencies
- jdeps -s (exists since java 8)
- -Xdiag:resolver
- java -listmods -- JRE dependencies
- implied readability: support transitive dependencies
- "requires public"
- transition to java 9:
- jdeps -genmoduleinfo outputdir *.jar
- put old jars in module path (-mp option)
- "automatic modules"
- uses name of jar instead of name of module"
- classpath: "unnamed module" -- 'quarantined' module (exports all)
- versions: still ongoing
- jlink: create platformspecific binary executable -- "java"
- REPL "read evaluate print loop" -- jShell: snippets
The end of polling : why and how to transform a REST API into a Data Streaming API?
Audrey Neveu
"realtime user experience"- no refresh buttons
- solutions
- polling -- chatty protocol / inefficient
- alternative
- websockets RFC-6455
- bidirectional
- binary
- reconfigure proxy
- message layout not specified
- new WebSocket(...)
- connectionlost: not specified
- server-sent events
- text-only
- data:
- new EventSource(...)
- callbacks: onopen/onMessage/onError
- retry--config + recovery
- use polyfills for IE
- performance comparison: http://matthiasnehlsen.com/blog/2013/05/01/server-sent-events-vs-websockets/
- websockets RFC-6455
Open Sesame! Conversations With My Front Door
Maurice Naftalin
raspberry pi for controlling dooropener- python
- asterisk: voip solution
- complex setup / config
- freepbx (commercial modules)
- Asterisk-Java: support Fast AGI -- server on 45373
- dialplay: voice recognition -- IBM Watson speech recognition service for converting the codes
- DTMF is more reliable for entering a code future:
- Natural Language Processing
Notes on Type Theory for absolute beginners
Hanneli Tavante
intro to Type theorysteps:
- collect all keywords / analyse gramar
- replace with mathemetics
- remove duplicates
- symbolic logic
- environment (set of classes / variables)
- predicate logic to analyse your system
- lambda calculus
- ...
No comments:
Post a Comment