Title photo by Karsten Würth on Unsplash
Java
Newsletter – Week 10, 2021
News:
- Java News Roundup – Week of Mar 1st, 2021
https://www.infoq.com/news/2021/03/java-news-roundup-mar01-2021/ - 2021 Java Technology Report
https://www.jrebel.com/blog/2021-java-technology-report - Amazon Launches Ethereum for Managed Blockchain
https://www.infoq.com/news/2021/03/aws-managed-blockchain-ethereum/ - New strategy to unleash the transformational power of Artificial Intelligence
https://www.gov.uk/government/news/new-strategy-to-unleash-the-transformational-power-of-artificial-intelligence
Articles:
- Where Does Java’s String Constant Pool Live, the Heap or the Stack?
https://www.baeldung.com/java-string-constant-pool-heap-stack - Converting java.util.Properties to HashMap
https://www.baeldung.com/java-convert-properties-to-hashmap - Optimizing HashMap’s Performance
https://www.baeldung.com/java-hashmap-optimize-performance - Java Deque vs. Stack
https://www.baeldung.com/java-deque-vs-stack - Java Concurrency: Understanding the ‘Volatile’ Keyword
https://dzone.com/articles/java-concurrency-understanding-the-volatile-keyword - FizzBuzz – SIMD Style!
https://www.morling.dev/blog/fizzbuzz-simd-style/ - Calling a private Rust function from outside of its module
https://tim.mcnamara.nz/post/644942576528523264/calling-a-private-rust-function-from-outside - Docker anti-patterns
https://codefresh.io/containers/docker-anti-patterns/ - 5 Emotionally Intelligent Habits For Handling Frustration At Work
https://dzone.com/articles/5-emotionally-intelligent-habits-for-handling-frus - Matt Clarke: Senior Backend Infrastructure Engineer
https://engineering.atspotify.com/2021/03/09/my-beat-matt-clarke/ - ConsoleMe: A Central Control Plane for AWS Permissions and Access
https://netflixtechblog.com/consoleme-a-central-control-plane-for-aws-permissions-and-access-fd09afdd60a8 - What is ML governance?
https://jaxenter.com/ml-governance-173903.html - Away From Silicon Valley, the Military Is the Ideal Customer
https://www.nytimes.com/2021/02/26/technology/anduril-military-palmer-luckey.html
Videos:
- Crust of Rust: The Drop Check
https://www.youtube.com/watch?v=TJOFSMpJdzg - Develop Apps with Secure WebSockets in Java
https://www.youtube.com/watch?v=OJMBg2bSXIU - GOTO 2021 – Why Architectural Work Comes Before Coding by Simon Brown & Stefan Tilkov
https://www.youtube.com/watch?v=TE4rKZ7M1aM - Database Systems – Cornell University Course (SQL, NoSQL, Large-Scale Data Analysis)
https://www.youtube.com/watch?v=4cWkVbC2bNE - Deep Learning News #7 Mar 13 2021
https://www.youtube.com/watch?v=X5cEwDRh0Lk - How Can Machines Learn Human Values? – with Brian Christian
https://www.youtube.com/watch?v=bqWAVNjk-cg
Autoboxing & Unboxing
Today I’m going to discuss quite an interesting topic of autoboxing and unboxing in Java. Let’s remind what it is exactly.
Autoboxing – automatic conversion of primitive type to corresponding object wrapped class in Java.
Unboxing – automated conversion of wrapped class to corresponding primitive type.
| Primitive Type | Wrapper Class |
| boolean | Boolean |
| byte | Byte |
| char | Character |
| float | Float |
| int | Integer |
| long | Long |
| short | Short |
| double | Double |
| null | null |
In the example below, we can see examples of autoboxing and unboxing at the same time.
public class Test{
public static void main(String[] args){
Integer a = 12; //autoboxing
int b = a; //unboxing
}
}
Let’s compile it
javac Test.java
and disassemble to see what is under the hood there
javap -c Test.class
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."":()V
4: return
public static void main(java.lang.String[]);
Code:
0: bipush 12
2: invokestatic #7 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: astore_1
6: aload_1
7: invokevirtual #13 // Method java/lang/Integer.intValue:()I
10: istore_2
11: return
}
So, the compiler just transformed previous example into this form
public class Test{
public static void main(String[] args){
Integer a = Integer.valueOf(12);
int b = a.intValue();
}
}
The same rule applies for all other types
| Autoboxing | Unboxing |
| Boolean Boolean.valueOf(boolean val) | boolean Boolean.booleanValue() |
| Byte Byte.valueOf(byte val) | byte Byte.byteValue() |
| Character Character.valueOf(char val) | char Character.charValue() |
| Float Float.valueOf(float val) | float Float.floatValue() |
| Integer Integer.valueOf(int val) | int Integer.intValue() |
| Long Long.valueOf(long val) | long Long.longValue() |
| Short Short.valueOf(short val) | short Short.shortValue() |
| Double Double.valueOf(double val) | double Double.doubleValue() |
Pretty easy – you can say and would be right, but let me ask you some questions.
Q: In the code below for the section a == b will it Autoboxing or Unboxing?
public class Test{
public static void main(String[] args){
Boolean a = true;
boolean b = false;
boolean c = a == b;
}
}
A: Unboxing is the right answer.
Disassembled code as proof below
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_1
1: invokestatic #7 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
4: astore_1
5: iconst_0
6: istore_2
7: iload_2
8: aload_1
9: invokevirtual #13 // Method java/lang/Boolean.booleanValue:()Z
12: if_icmpne 19
15: iconst_1
16: goto 20
19: iconst_0
20: istore_3
21: return
}
Now, when we covered previous example this question should be easy for you.
Q: What value will be assigned to variable b in the code below?
public class Test{
public static void main(String[] args){
Boolean a = null;
boolean b = a;
}
}
A: no value will be assigned to b due to exception during execution.
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:4)
Code in the question is equal to this one
public class Test{
public static void main(String[] args){
Boolean a = null;
boolean b = a.booleanValue(); //null.booleanValue()
}
}
Q: What value will be assigned to variable c in the example below?
public class Test{
public static void main(String[] args){
Long a = 20L;
long b = 20;
boolean c = a.equals(b);
}
}
A: the correct answer – true.
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: ldc2_w #7 // long 20l
3: invokestatic #9 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
6: astore_1
7: ldc2_w #7 // long 20l
10: lstore_2
11: aload_1
12: lload_2
13: invokestatic #9 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
16: invokevirtual #15 // Method java/lang/Long.equals:(Ljava/lang/Object;)Z
19: istore 4
21: return
}
which is the same as
public class Test{
public static void main(String[] args){
Long a = 20L;
long b = 20;
boolean c = a.equals(Long.valueOf(b));
}
}
Q: What value will be assigned to variable c in the example below?
public class Test{
public static void main(String[] args){
Long a = 20L;
boolean c = a.equals(20);
}
}
A: the correct answer – false.
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: ldc2_w #7 // long 20l
3: invokestatic #9 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
6: astore_1
7: aload_1
8: bipush 20
10: invokestatic #15 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
13: invokevirtual #20 // Method java/lang/Long.equals:(Ljava/lang/Object;)Z
16: istore_2
17: return
}
In this example there is no type reference so 20 is represented as most appropriate integer type.
public class Test{
public static void main(String[] args){
Long a = 20L;
boolean c = a.equals(Integer.valueOf(20));
}
}
So, even if autoboxing/unboxing logic seems pretty straightforward and easy you still need to keep attention to details. As best practice to avoid memory and/or performance-related issues you shouldn’t rely on the autoboxing/unboxing mechanism in your code. The most appropriate case when this mechanism is really needed is when you store primitive types in the collection.
Photo by Ante Hamersmit on Unsplash
Newsletter – Week 09, 2021
News:
- Eclipse Credentials Leak Affects Snapshot Builds
https://www.infoq.com/news/2021/03/eclipse-credentials-leak/ - Java News Roundup – Week of Feb 22nd 2021
https://www.infoq.com/news/2021/03/java-news-roundup-feb22-2021/ - Road to Scala 3: Release Candidate Available
https://www.infoq.com/news/2021/03/scala3/ - 10 Breakthrough Technologies 2021
https://www.technologyreview.com/2021/02/24/1014369/10-breakthrough-technologies-2021/ - Facebook Open-Sources AI Model to Predict COVID-19 Patient Outcomes
https://www.infoq.com/news/2021/03/facebook-covid-prognosis/
Articles:
- Creating and Analyzing Java Heap Dumps
https://reflectoring.io/create-analyze-heapdump/ - Monitoring across frameworks
https://blog.frankel.ch/monitoring-across-frameworks/ - Monitoring Deserialization to Improve Application Security
https://inside.java/2021/03/02/monitoring-deserialization-activity-in-the-jdk/ - Welcome 20% less memory usage for G1 remembered sets – Prune collection set candidates early
https://tschatzl.github.io/2021/02/26/early-prune.html - REST API: JAX-RS vs Spring
https://www.baeldung.com/rest-api-jax-rs-vs-spring - Testing Quarkus Web Applications: Writing Clean Component Tests
https://www.infoq.com/articles/testing-quarkus-integration-containers/ - Lombok and Java — the beauty and the beast
https://medium.com/walmartglobaltech/lombok-the-beauty-and-the-beast-5e511dbf49f6 - Data Manipulation: Pandas vs Rust
https://able.bio/haixuanTao/data-manipulation-pandas-vs-rust–1d70e7fc - Using Rust for AWS Lambdas
https://beanseverywhere.xyz/blog/rust-lambda - Apache Kafka in a Smart City Architecture
https://dzone.com/articles/apache-kafka-in-a-smart-city-architecture - How to Design a Scalable Serverless Application on AWS
https://dzone.com/articles/how-to-design-a-scalable-serverless-application-on - Serverless Functions for Microservices? Probably Yes, but Stay Flexible to Change
https://www.infoq.com/articles/serverless-microservices-flexibility/ - The Engineer’s Complete Guide to Technical Debt
https://dzone.com/articles/the-engineers-complete-guide-to-technical-debt-1 - The Ultimate Engineer’s Guide to Code Refactoring
https://dzone.com/articles/the-engineers-complete-guide-to-technical-debt - Embedding Security into Software Development Life Cycle
https://medium.com/walmartglobaltech/embedding-security-into-software-development-life-cycle-9084169ebbc7 - Unifying developer velocity metrics in Datadog with GitHub Actions
https://tech.scribd.com/blog/2021/github-actions-datadog-reporting.html - Mainframe modernization antipatterns
https://developers.googleblog.com/2021/02/mainframe-modernization-antipatterns.html - How Optimizing MLOps can Revolutionize Enterprise AI
https://www.infoq.com/articles/optimizing-mlops-enterprise-ai/
Videos:
- Project Valhalla: Bringing Performance to Java Developers
https://www.infoq.com/presentations/valhalla-memory-density/ - AWS Basics for Beginners – Full Course
https://www.youtube.com/watch?v=ulprqHHWlng - Deep Learning News #6, Mar 7 2021
https://www.youtube.com/watch?v=0J2b31KIIXs
Newsletter – Week 08, 2021
News:
- Java News Roundup – Week of Feb 15th, 2021
https://www.infoq.com/news/2021/02/java-news-roundup-feb15-2021/ - The state of Java software development in 2021
https://jaxenter.com/java-development-2021-173870.html - Google fires yet another AI ethics lead and we’ve gotta ask: What’s going on over there?
https://mashable.com/article/google-fires-artificial-intelligence-ethicist-margaret-mitchell/
Articles:
- Java HashMap Load Factor
https://www.baeldung.com/java-hashmap-load-factor - Optional.stream()
https://blog.frankel.ch/optional-stream/ - Java Joy: Merge Maps Using Stream API
https://dzone.com/articles/java-joy-merge-maps-using-stream-api - Faster Charset Decoding
https://cl4es.github.io/2021/02/23/Faster-Charset-Decoding.html - How to Use Spring Boot and JHipster With Reactive Java Microservices
https://dzone.com/articles/how-to-use-spring-boot-and-jhipster-with-reactive - Distributed Performance Testing with Gatling
https://www.baeldung.com/gatling-distributed-perf-testing - Rust for web development: 2 years later
https://kerkour.com/blog/rust-for-web-development-2-years-later/ - Oxidizing Kraken
https://blog.kraken.com/post/7964/oxidizing-kraken/ - An Overview of Lambda Architecture
https://dzone.com/articles/lambda-architecture - Leading During Times of High Uncertainty and Change
https://www.infoq.com/articles/leading-uncertainty-change/ - Beyond REST
https://netflixtechblog.com/beyond-rest-1b76f7c20ef6 - Solving the data integration variety problem at scale, with Gobblin
https://engineering.linkedin.com/blog/2021/data-integration-library - FOQS: Scaling a distributed priority queue
https://engineering.fb.com/2021/02/22/production-engineering/foqs-scaling-a-distributed-priority-queue/ - 7 reasons not to join a startup and 1 reason to
https://huyenchip.com/2021/02/27/why-not-join-a-startup.html
Videos:
- Devnexus 2021
https://www.youtube.com/playlist?list=PLid93BOrASLM_7lOxVhCP29uJHipt3EDD - Deep Learning News #5, Feb 27 2021
https://www.youtube.com/watch?v=ZjZ6Yph5c2E - Bringing AI into Healthcare Safely and Ethically
https://www.youtube.com/watch?v=OgPYgzSk41M - Andrew Huberman: Sleep, Dreams, Creativity, Fasting, and Neuroplasticity | Lex Fridman Podcast #164
https://www.youtube.com/watch?v=ClxRHJPz8aQ
Newsletter – Week 07, 2021
News:
- Java News Roundup – Week of Feb 8th, 2021
https://www.infoq.com/news/2021/02/java-news-roundup-feb8-2021/ - Netflix Open Sources Their Domain Graph Service Framework: GraphQL for Spring Boot
https://www.infoq.com/news/2021/02/netflix-graphql-spring-boot - Distributed Application Runtime (Dapr) v1.0 Announced
https://www.infoq.com/news/2021/02/dapr-production-ready/ - AWS Innovate Online Conference – AI & Machine Learning Edition
https://aws.amazon.com/events/innovate-online-conference/americas/
Articles:
- Java Memory Management
https://dzone.com/articles/java-memory-management - Configure the Heap Size When Starting a Spring Boot Application
https://www.baeldung.com/spring-boot-heap-size - Making the most of available resources for Spring Boot
https://spring.io/blog/2021/02/04/making-the-most-of-available-resources-for-spring-boot - Why Namespacing Matters in Public Open Source Repositories
https://blog.sonatype.com/why-namespacing-matters-in-public-open-source-repositories - Rust is cool – Enums
https://thatgeoguy.ca/blog/2021/02/15/rust-is-cool-enums/ - Building a microservice with Rust
https://medium.com/tenable-techblog/building-a-microservice-with-rust-23a4de6e5e14 - Introduction to NoSQL
https://jaxenter.com/nosql-intro-173789.html - Engineering Dependability And Fault Tolerance In A Distributed System
http://highscalability.com/blog/2021/2/19/engineering-dependability-and-fault-tolerance-in-a-distribut.html - The pros and cons of being a software engineer at a BIG tech company
https://stackoverflow.blog/2021/02/17/the-pros-and-cons-of-being-a-software-engineer-at-a-big-tech-company/ - Data is moving us in new ways: How digitization is transforming city mobility
https://news.microsoft.com/europe/features/data-is-moving-us-in-new-ways-how-digitization-is-transforming-city-mobility/ - Strengthening international cooperation on artificial intelligence
https://www.brookings.edu/research/strengthening-international-cooperation-on-artificial-intelligence/ - Nikola Mrksic, Co-founder and CEO of PolyAI – Interview Series
https://www.unite.ai/nikola-mrksic-co-founder-and-ceo-of-polyai-interview-series/ - How Asimov’s Three Laws of Robotics Impacts AI
https://www.unite.ai/how-asimovs-three-laws-of-robotics-impact-ai/
Videos:
- Ask the Expert: Rust at Microsoft
https://channel9.msdn.com/Shows/Ask-the-Expert/Ask-the-Expert-Rust-at-Microsoft - Jason Calacanis: Startups, Angel Investing, Capitalism, and Friendship | Lex Fridman Podcast #161
https://www.youtube.com/watch?v=d2bYwYxqJCM - Mastering Virtual Communication
https://www.infoq.com/presentations/virtual-communications/ - Deep Learning News #4, Feb 20 2021
https://www.youtube.com/watch?v=mPC14fIO4SY - Jim Keller: The Future of Computing, AI, Life, and Consciousness | Lex Fridman Podcast #162
https://www.youtube.com/watch?v=G4hL5Om4IJ4
Newsletter – Week 06, 2021
News:
- GraalVM inside Oracle Database
https://www.infoq.com/news/2021/02/graalvm-database/ - Congratulations, Rustaceans, on the creation of the Rust Foundation!
https://aws.amazon.com/blogs/opensource/congratulations-rustaceans-on-the-creation-of-the-rust-foundation/ - Microsoft joins Rust Foundation
https://cloudblogs.microsoft.com/opensource/2021/02/08/microsoft-joins-rust-foundation/ - Google joins the Rust Foundation
https://opensource.googleblog.com/2021/02/google-joins-rust-foundation.html - Mozilla Welcomes the Rust Foundation
https://blog.mozilla.org/blog/2021/02/08/mozilla-welcomes-the-rust-foundation/
Articles:
- Stranger Things in Java: Constants
https://dzone.com/articles/stranger-things-in-java-constants - Using the Map.Entry Java Class
https://www.baeldung.com/java-map-entry - Java Warning “unchecked conversion
https://www.baeldung.com/java-unchecked-conversion - Structural Patterns in Core Java
https://www.baeldung.com/java-core-structural-patterns - JEP-380: Unix domain socket channels
https://inside.java/2021/02/03/jep380-unix-domain-sockets-channels/ - Java is immortal and feels good: 2020 results and 2021 trends
https://jaxenter.com/java-2021-trends-173738.html - Testing Quarkus Web Applications: Component & Integration Tests
https://www.infoq.com/articles/testing-quarkus-integration/ - Metrics and Tracing: Better Together
https://spring.io/blog/2021/02/09/metrics-and-tracing-better-together - Containerizing SpringBoot Application With Jib
https://dzone.com/articles/containerizing-springboot-application-with-jib - Getting Started with AWS S3 and Spring Boot
https://reflectoring.io/spring-boot-s3/ - Enable Spring Boot ApplicationStartup Metrics to Diagnose Slow Startup
https://dzone.com/articles/enable-spring-boot-applicationstartup-metrics-to-d - Microservices and Scaling Strategy
https://dzone.com/articles/microservices-and-scaling-strategy - Migrating Monoliths to Microservices With Decomposition and Incremental Changes
https://www.infoq.com/articles/migrating-monoliths-to-microservices-with-decomposition/ - Trusted Programming – Our Rust Mission at Huawei
https://trusted-programming.github.io/2021-02-07/index.html - Growth Engineering at Netflix- Creating a Scalable Offers Platform
https://netflixtechblog.com/growth-engineering-at-netflix-creating-a-scalable-offers-platform-69330136dd87 - Edge Authentication and Token-Agnostic Identity Propagation
https://netflixtechblog.com/edge-authentication-and-token-agnostic-identity-propagation-514e47e0b602 - The rise of biometrics
https://www.raconteur.net/infographics/the-rise-of-biometrics/ - Teaching robots to respond to natural-language commands
https://www.amazon.science/blog/teaching-robots-to-respond-to-natural-language-commands
Videos:
- Failing Fast: The Impact of Bias When Speeding Up Application Security
https://www.infoq.com/presentations/bias-security/ - GOTO 2020 – Balancing Choreography and Orchestration by Bernd Rücker
https://www.youtube.com/watch?v=zt9DFMkjkEA - Brendan Eich: JavaScript, Firefox, Mozilla, and Brave | Lex Fridman Podcast #160
https://www.youtube.com/watch?v=krB0enBeSiE - Deep Learning News #3, Feb 13 2021
https://www.youtube.com/watch?v=2I8SqKLt-Nk
Newsletter – Week 05, 2021
News:
- GraalVM 21.0 Introduces a JVM Written in Java
https://www.infoq.com/news/2021/01/graalvm-21-jvm-java/ - JFrog to Shut Down JCenter and Bintray
https://www.infoq.com/news/2021/02/jfrog-jcenter-bintray-closure/ - IntelliJ IDEA 2021.1 EAP 1 Supports Java 16
https://www.infoq.com/news/2021/02/intellij-idea-2021-eap1-java16/ - Centre for artificial intelligence for energy launched in Saudi Arabia
https://www.smart-energy.com/industry-sectors/data_analytics/centre-for-artificial-intelligence-for-energy-launched-in-saudi-arabia/
Articles:
- Stranger Things About Java: The protected Modifier
https://dzone.com/articles/stranger-things-about-java-the-protected-modifier - Java Code Quality Tools Recommended by Developers
https://dzone.com/articles/java-code-quality-tools-recommended-by-developers - How to Generate and Compile Sources at Runtime in Java
https://dzone.com/articles/how-to-generate-and-compile-sources-at-runtime-in-java - Setting a Request Timeout for a Spring REST API
https://www.baeldung.com/spring-rest-timeout - Open Sourcing the Netflix Domain Graph Service Framework: GraphQL for Spring Boot
https://netflixtechblog.com/open-sourcing-the-netflix-domain-graph-service-framework-graphql-for-spring-boot-92b9dcecda18 - Get Advised Method Info in Spring AOP
https://www.baeldung.com/spring-aop-get-advised-method-info - Exploring WebSocket with Rust and Tide
https://javierviola.com/post/exploring-websocket-with-rust-and-tide/ - Macros in Rust: A tutorial with examples
https://blog.logrocket.com/macros-in-rust-a-tutorial-with-examples/ - Is Rust a Functional Programming Language?
https://robert.kra.hn/posts/2021-02-03_is-rust-fp/ - The Key Differences Between SLI, SLO, and SLA in SRE
https://dzone.com/articles/the-key-differences-between-sli-slo-and-sla-in-sre - 5 Principles of Production Readiness
https://dzone.com/articles/5-principles-of-production-readiness - Application Architecture: Best Practices for Future-Proofing Your Apps
https://dzone.com/articles/application-architecture-best-practices-for-future - 9 Excellent Methods to Prioritize Your Work
https://dzone.com/articles/9-excellent-methods-to-prioritize-your-work - The Cloud Trust Paradox According to Google Cloud
https://www.infoq.com/news/2021/02/cloud-trust-paradox/ - Next-Gen Data Movement Platform at PayPal
https://medium.com/paypal-engineering/next-gen-data-movement-platform-at-paypal-100f70a7a6b - Slack’s Outage on January 4th 2021
https://slack.engineering/slacks-outage-on-january-4th-2021/ - This is how we lost control of our faces
https://www.technologyreview.com/2021/02/05/1017388/ai-deep-learning-facial-recognition-data-history/
Videos:
- GOTO 2020 – HTTP/3 Is Next Generation HTTP. Is It QUIC Enough? by Daniel Stenberg
https://www.youtube.com/watch?v=pUxyukqoXR4 - Cloud Native Is About Culture, Not Containers
https://www.infoq.com/presentations/cloud-native-culture-2020/ - What is Federated Learning?
https://www.youtube.com/watch?v=X8YYWunttOY - GOTO 2021 – How to Leverage Reinforcement Learning by Phil Winder & Rebecca Nugent
https://www.youtube.com/watch?v=Yk0_LWd0WQA - Sebastian Raschka – Deep Learning News #2, Feb 6 2021
https://www.youtube.com/watch?v=TgbI3LeB1bg
Newsletter – Week 04, 2021
News:
- Are we learning yet?
https://www.arewelearningyet.com/ - Pinecone lands $10M seed for purpose-built machine learning database
https://techcrunch.com/2021/01/27/pinecone-lands-10m-seed-for-purpose-built-machine-learning-database/ - “Liquid” machine-learning system adapts to changing conditions
https://news.mit.edu/2021/machine-learning-adapts-0128
Articles:
- Introduction to JVM Intrinsics
https://www.baeldung.com/jvm-intrinsics - Experimental Garbage Collectors in the JVM
https://www.baeldung.com/jvm-experimental-garbage-collectors - Binary Semaphore vs Reentrant Lock
https://www.baeldung.com/java-binary-semaphore-vs-reentrant-lock - Spring Batch on Kubernetes: Efficient batch processing at scale
https://spring.io/blog/2021/01/27/spring-batch-on-kubernetes-efficient-batch-processing-at-scale - Spring Boot Tutorial: Build a CRUD API (Java)
https://auth0.com/blog/spring-boot-java-tutorial-build-a-crud-api/ - Spring Boot Authorization Tutorial: Secure an API (Java)
https://auth0.com/blog/spring-boot-authorization-tutorial-secure-an-api-java/ - Unsafe Rust: How and when (not) to use it
https://blog.logrocket.com/unsafe-rust-how-and-when-not-to-use-it/ - Latency Numbers Every Team Should Know
https://benjiweber.co.uk/blog/2021/01/23/latency-numbers-every-team-should-know/ - Making the Leap Into Tech Leadership
https://dzone.com/articles/making-the-leap-into-tech-leadership - PullRequest
https://martinfowler.com/bliki/PullRequest.html - RefinementCodeReview
https://martinfowler.com/bliki/RefinementCodeReview.html - Optimising serverless for BBC Online
https://medium.com/bbc-design-engineering/optimising-serverless-for-bbc-online-118fe2c04beb - Artificial intelligence behind 21st Century spaceflight
https://www.esa.int/Enabling_Support/Operations/Artificial_intelligence_behind_21st_Century_spaceflight - The Brain Is Neither a Neural Network nor a Computer: Book Review The Biological Mind
https://www.infoq.com/articles/brain-not-computer/ - Deep learning on dynamic graphs
https://blog.twitter.com/engineering/en_us/topics/insights/2021/temporal-graph-networks.html - Cannes: How ML saves us $1.7M a year on document previews
https://dropbox.tech/machine-learning/cannes–how-ml-saves-us–1-7m-a-year-on-document-previews - How machine learning powers Facebook’s News Feed ranking algorithm
https://engineering.fb.com/2021/01/26/ml-applications/news-feed-ranking/
Videos:
- Leading Technical Projects – and How to Get Them Done
https://www.infoq.com/presentations/ft-operations-reliability/ - GOTO 2020 – Common Retrospectives Traps & Solutions by Aino Vonge Corry
https://www.youtube.com/watch?v=j3Diza_x9gI
Newsletter – Week 03, 2021
News:
- Quarkus 1.11 released – RESTEasy Reactive, Dev UI, and more!
https://quarkus.io/blog/quarkus-1-11-0-final-released/ - Java 1.0 Turns 25
https://www.infoq.com/news/2021/01/java-turns-25/ - ‘It’s not OK’: Elastic takes aim at AWS, at the risk of major collateral damage
https://www.protocol.com/enterprise/about/aws-targeted-by-elastic - Artificial Intelligence Is a Work in Progress, Official Says
https://www.defense.gov/Explore/News/Article/Article/2480288/artificial-intelligence-is-a-work-in-progress-official-says/
Articles:
- JDK 17: Hexadecimal Formatting and Parsing
https://dzone.com/articles/jdk-17-hexadecimal-formatting-and-parsing - Java Feature Spotlight: Pattern Matching
https://www.infoq.com/articles/java-pattern-matching/ - Buggy App – Simulate performance problems
https://jaxenter.com/buggy-app-java-173639.html - Rust Language Cheat Sheet
https://cheats.rs/ - Rust in Production: 1Password
https://serokell.io/blog/rust-in-production-1password - Uber’s Real-time Data Intelligence Platform At Scale: Improving Gairos Scalability/Reliability
https://eng.uber.com/gairos-scalability/ - Delivering BBC Online using Serverless
https://medium.com/bbc-design-engineering/delivering-bbc-online-using-serverless-79d4a9b0da16 - Working AI: Stoking GPU Clusters With Swetha Mandava
https://www.deeplearning.ai/blog/pushing-the-state-of-the-art-with-swetha-mandava/
Videos:
- GOTO 2020 – Talking With Tech Leads by Patrick Kua
https://www.youtube.com/watch?v=F81W-JcRgXM - GOTO 2020 – Five Things Every Developer Should Know about Software Architecture by Simon Brown
https://www.youtube.com/watch?v=9Az0q2XHtH8 - Max Tegmark: AI and Physics | Lex Fridman Podcast #155
https://www.youtube.com/watch?v=RL4j4KPwNGM