Monday, June 25, 2018

Summer 2018 tech reading

Hi there! Here's some Summer tech reading for you. As usual, a hat tip to Hacker News and Twitter feeds, which are my usual sources.

combination,java,permutation,setCombinatoricsUtils (Apache Commons Math 3.4 API)
combination,java,permutation,setPermutationIterator (Apache Commons Collections 4.2-SNAPSHOT API)
combination,java,permutation,setSets (Guava: Google Core Libraries for Java 21.0 API)
data#bbuzz 2018: Robert Rodger – Learned Indexes: a New Idea for Efficient Data Access - YouTube
dataCassandra on RocksDB at Instagram
dataCasual 3D Capture
dataConsistent Hashing: Algorithmic Tradeoffs – Damian Gryski – Medium
dataDistributed Data Show Episode 17: Apache Kudu Architecture Analysis with DuyHai Doan - YouTube
dataFriction-Free Fault-Finding with Sapienz
dataGOTO 2018 • Jepsen 9: A Fsyncing Feeling • Kyle Kingsbury - YouTube
dataHow JavaScript works: Deep dive into WebSockets and HTTP/2 with SSE + how to pick the right path
dataMnemosyne: a distributed bitmapped indexing layer for big data with Phil Messenger - YouTube
dataMySQL 8.0: New Lock free, scalable WAL design | MySQL Server Blog
dataRearchitecting a SQL Database for Time-Series Data | DataEngConf NYC '17 - YouTube
dataRedisConf18: Techniques for Synchronizing In Memory Caches with Redis - Redis Labs - YouTube
data,aiSelf Driving RC Car – Zheng Wang
data,javaDistributed Data Show Episode 44: Thread Per Core with Jake Luciani - YouTube
fun!!Con 2018: Telling stories with traceroute! by Karla Burnett - YouTube
funGOTO 2018 • Attitude Determines Altitude: Engineering Yourself & Your Teams • Randy Shoup - YouTube
goLOL - gvisor/generics.go at master · google/gvisor
graal,javaEclipse Vert.x goes Native
graal,javaInstant Netty Startup using GraalVM Native Image Generation
graal,javaJava Web Server in a 20 MB Docker Image | John Zeringue
graal,javaUsing GraalVM to run Native Java in AWS Lambda with Golang
java4 out of 5 Java Developers Failed to Solve This Question | OverOps Blog
javaAsynchronous API with CompletableFuture: Performance Tips and Tricks (I may have shared this before!)
javaBuilding Mobile Web apps in Java with Vaadin - with live coding - YouTube
javaJava’s Mysterious Interrupt
javaCreating the new Voxxed websites using JHipster, Angular and GitLab, with Stephan Janssen - YouTube
javaData Driven Logic
javaFrom Java to Kotlin and Back Again ·
javaFunctional Libraries for Java with Rabea Gransberger - YouTube
javaGeode - Third party indexing technique using quad trees - YouTube
javaJava 10 Hidden Jems Nicolai Parlog @nipafx - YouTube
javaOpen Sourcing Our Specialized TinkerGraph with 70% Memory Reduction and Strict Schema Validation
javaProject Reactor: Now and Tomorrow
javaSpring Tips: Metrics Collection in Spring Boot 2 with Micrometer - YouTube
javaThe Java Library Plugin - Gradle User Manual
java[concurrency-interest] Reactive Streams Utility API - James Roper via Concurrency-interest - edu.oswego.cs.concurrency-interest - MarkMail
java[concurrency-interest] juc and GC (plus FJ updates) - Doug Lea via Concurrency-interest - edu.oswego.cs.concurrency-interest - MarkMail
kubernetesKeynote: Anatomy of a Production Kubernetes Outage - Oliver Beattie, Head of Engineering, Monzo Bank - YouTube
opsKubernetes: The State of Stateful Apps | Cockroach Labs
sysChrome Tracing as Profiler Frontend · Aras' website
sysPostgreSQL's fsync() surprise []
sysSSH server/client in Erlang - Milad Rastian (First 20 mins)
sysVelocity NY 2013: Richard Cook, "Resilience In Complex Adaptive Systems" - YouTube

Until next time!

Saturday, April 28, 2018

Jarasandha: A small Java library to help build an archive of records

Here's a small Java library I worked on. I worked on it quite actively (of course in my free time) mostly in 2017. It's a standalone, no-frills Java library to help build an archive of immutable records:

(More) 2018 Spring tech reading

Hi there! Here's some additional Spring reading for you.

data(Deep) Learning to Fly by Krzysztof Kudrynski & Blazej Kubiak - YouTube
data(Kafka semantics on Redis) Redis Streams Featuring Salvatore Sanfilippo - Redis Labs - YouTube
dataDeep Learning With Keras To Predict Customer Churn
dataśiva: Why We Created Yet Another Archive Format · source{d} blog
goproposal: runtime: non-cooperative goroutine preemption · Issue #24543 · golang/go
javaAn introduction to java.time
javaGarbage Collection in Java 9 // Speaker Deck
javaMoving to G1GC - An Experience Report by Kirk Pepperdine - YouTube
javaStephen Colebourne's blog: JPMS modules for library developers - negative benefits
javaStyle Guidelines for Local Variable Type Inference in Java
javaThe Object Is Dead. Long Live The Object! – Excelsior JET Team Blog
javaThe baby and the bathwater
javajava - Conditionally ignoring tests in JUnit 4 - Stack Overflow
java,kubernetesEvent-Driven Microservices With Vert.x and Kubernetes (Part 2 of 3) - DZone Microservices
java,stream,errorGuide to Try in Vavr | Baeldung
java,stream,errorhgwood/java8-streams-and-exceptions: Experiments with dealing with exceptions while using the Stream API
java,sysAnalyzing HotSpot Crashes - YouTube
java,sysBasic API Rate-Limiting - Bozho's tech blog
java,sysCharles Nutter — Going Native: Foreign Functions on the JVM - YouTube
java,sysHow we made the JVM 40x faster
java,sysIterating Over a Bitset in Java | Investigations
java,sysMatrix Multiplication Revisited - Investigations
java,testingReal Impact Testing Analysis for JVM Developers by Raquel Pau - YouTube
kubernetes,sysCNCF Webinar Series – Deployment Strategies on Kubernetes - YouTube
kubernetes,sysComparison of Networking Solutions for Kubernetes — Comparison of Networking Solutions for Kubernetes 2 documentation
kubernetes,sysHow does "kubectl exec" work - Google Groups
kubernetes,sysKubernetes NodePort vs LoadBalancer vs Ingress? When should I use what?
kubernetes,sysKubernetes services and ingress under X-ray - Container Ops
kubernetes,sysNetworking with Kubernetes - YouTube
kubernetes,sysScaling Kubernetes to 2,500 Nodes
kubernetes,sysServices | Kubernetes
kubernetes,sysThe ins and outs of networking in Google Container Engine and Kubernetes (Google Cloud Next '17) - YouTube
kubernetes,syscontainers - What's the difference between ClusterIP, NodePort and LoadBalancer service types in Kubernetes? - Stack Overflow
meltdown,java,sysspeculate/ at master · steveloughran/speculate
meltdown,sysInitial Benchmarks Of The Performance Impact Resulting From Linux's x86 Security Changes - Phoronix
meltdown,sysKAISER: hiding the kernel from user space []
meltdown,sysMeltdown (security vulnerability) - Wikipedia
meltdown,sysMeltdown and Spectre
meltdown,sysProject Zero: Reading privileged memory with a side-channel
meltdown,sysThe Meltdown and Spectre CPU Bugs, Explained
meltdown,sysUnderstanding Meltdown & Spectre: What To Know About New Exploits That Affect Virtually All CPUs
meltdown,sysXen Project Spectre/Meltdown FAQ | Xen Project Blog
network,sysSome Common Mitigation Techniques for Overload in Queueing Networks · Wallaroo Labs
sysIntroduction to modern network load balancing and proxying
sysMaking WebAssembly even faster: Firefox’s new streaming and tiering compiler – Mozilla Hacks – the Web developer blog
sysPostmortem of Service Outage at 3.4M CCU
sysRevisiting HTTP2 - YouTube

Until next time!

Wednesday, March 28, 2018

Spring 2018 tech reading

Hello again! This time I'm trying out a new way to publish my bookmarks. I've started to use Firefox bookmark tags and figured out a way to organize and export them without losing the tags. So here is your Spring 2018 tech reading in tabular form:

changelog,miscAuto-generating a changelog from git history | Mozilla Web Development
changelog,miscDevist - Keep your changelog clean.
changelog,miscEffortlessly maintain a high quality change log with Git notes –
changelog,miscKeep a Changelog
changelog,miscconventional-changelog/conventional-changelog: Generate a changelog from git metadata
changelog,miscmarionebl/commitlint: 📓 Lint commit messages
dataBuilding and testing a distributed data store in Go - YouTube
dataComparison of the Open Source OLAP Systems for Big Data: ClickHouse, Druid and Pinot
dataDeep Learning @Google Scale: Smart Reply in Inbox
dataMeet Bandaid, the Dropbox service proxy | Dropbox Tech Blog
dataPeter Bailis: MacroBase, Prioritizing Attention in Fast Data Streams | Talks at Google - YouTube
dataScaling Slack - YouTube
dataWhat Every Programmer has to know about Database Storage by Alex Petrov - YouTube
dataWriting a Time Series Database from Scratch | Fabian Reinartz
data,javaOpen-sourcing a 10x reduction in Apache Cassandra tail latency
docker compose,testing,sysDocker Compose · Testcontainers
docker compose,testing,sysLink via an ambassador container | Docker Documentation
docker compose,testing,sysdockerfiles/ambassador at master · SvenDowideit/dockerfiles
docker compose,testing,sysrnorth/ambassador
docker compose,testing,sysrnorth/tcp-unix-socket-proxy: Listens on a TCP port and proxies connections to a UNIX domain socket
docker compose,testing,syswurstmeister/kafka-docker: Dockerfile for Apache Kafka
docker,sysExperiment To Suspend/Resume Docker Container With CRIU 2 | kim hirokuni
funAndy Fields on Twitter: "Front End vs. Back End… "
funCameron Purdy's answer to Do tech companies hire non-CS majors for software engineering roles? - Quora
funMIT Self-Driving Cars: Sacha Arnoud, Director of Engineering, Waymo - YouTube
funMaker vs. Manager: How Your Schedule Can Make or Break You
funWhat the job position really means
fun,javaPRIMITIVE Deeplearning4j - YouTube
fun,sysGrowing the Site Reliability Team at LinkedIn: Hiring is Hard -- Greg Leffler - YouTube
go5 Gotchas of Defer in Go (Golang) — Part II – Learn Go Programming
java55 New Features in JDK 9 - Simon Ritter - YouTube
javaBeware of Java’s inconsistent MIN_VALUE – Kynosarges Weblog
javaCharles Nutter — More Than You Want to Know about Java's String - YouTube
javaCode Review Matters and Manners: Maria Khalusova, Trisha Gee on Vimeo
javaGraal: How to use the new JVM JIT compiler in real life - YouTube
javaHelping Linux and Java Play Well Together - YouTube
javaJDK 9: the performance bits or why you would really want to upgrade to Java 9 by Dmitry Vyazelenko - YouTube
javaJUnit 5 — New Opportunities for Testing on the JVM - Sam Brannen - YouTube
javaJava Autonomous Driving: Car Detection - DZone
javaKubernetes for the Spring Developer - Meaghan Kjelland - YouTube
javaOptaPlanner - Java Reflection, but much faster
javaProject Loom: Fibers and Continuations for the Java Virtual Machine with Ron Pressler - YouTube
javaProperty-based testing in Java with JUnit-Quickcheck - Part 1: The basics — Xebia Blog
javaRuby's Strings and What Java Can Learn From Them - YouTube
javaSpringBoot 2 performance — servlet stack vs WebFlux reactive stack
javaTop Ten Metrics for Evaluating your Garbage Collector - YouTube
javaWalkthrough: Tracking an Elasticsearch Java Client Sniffer Bug | FORTER
javaZGC - Low Latency GC for OpenJDK with Stefan Karlsson and Per Liden - YouTube
java[concurrency-interest] StampedLock happens-before with tryOptimisticRead() - Dr Heinz M. Kabutz - edu.oswego.cs.concurrency-interest - MarkMail
java,dataIndeed MPH: Fast and Compact Immutable Key-Value Stores
kafka,dataConsumer Group Internals: Rebalancing, Rebalancing.... -- Jason Gustafson & Onur Karaman, 8/23/16 - YouTube
kafka,dataExactly-once Stream Processing with Kafka Streams - Confluent
kafka,dataHow to choose the number of topics/partitions in a Kafka cluster? - Confluent
kafka,dataKafka Controller Internals--Onur Karaman, LinkedIn (9/12/17) - YouTube
kafka,dataMulti-Tenant, Multi-Cluster and Hierarchical Kafka Messaging Service - Confluent
kafka,dataProviding Reliability Guarantees in Kafka at One Trillion Events Per Day - Confluent
kafka,dataRunning Kafka for Maximum Pain - Confluent
kafka,dataStreaming Data Applications on Docker - Confluent

Until next time!

Sunday, January 28, 2018

A curated list: Design, programming basics & common sense coding preferences

I've consolidated my basic programming and design reading list with my common sense coding preferences (It's a GitHub Gist):

Until next time!
Ashwin Jayaprakash