Monday, December 24, 2018

Christmas break 2018 tech reading

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

dataApache Arrow: A Cross-language Development Platform for In-memory Data | DataEngConf BCN '18 - YouTube
dataEvery 7.8μs your computer’s memory has a hiccup
dataHow FoundationDB powers SnowflakeDB's metadata! - Ashish Motivala, Snowflake Computing - YouTube
dataOperating Jobs at Scale with Nomad Alex Dadgar, HashiCorp - YouTube
dataTechnical Overview of FoundationDB - Evan Tschannen, Apple - YouTube
datastructurecassandra/ at f7431b432875e334170ccdb19934d05545d2cebd · apache/cassandra
datastructurekafka-kit/stats.go at master · DataDog/kafka-kit
docker,golangGopherCon 2018 Lightning Talk: Prateek Gogia - Managing Linux Network Namespaces Before & After 1.10 - YouTube
funDevSadOps on Twitter: "dev: "now that we switched to containers, how do I run the platform on my laptop?" op: "well, first you need to set up Kubernetes.." dev:…"
funDmitri Sotnikov ⚛ on Twitter: "2 unit tests 0 integration tests… "
funGOTO 2018 • (Deep) Learning to Fly • Krzysztof Kudrynski & Blazej Kubiak - YouTube
funHello macOS Mojave – katopz – Medium
golangGopherCon 2018 Lightning Talk: go test in qemu - Google Slides
golangGopherCon 2018: Bryan C. Mills - Rethinking Classical Concurrency Patterns - YouTube
golangGopherCon 2018: Kavya Joshi - The Scheduler Saga - YouTube
golangScheduling In Go - Part I Go, (Golang) Programming - Blog - Ardan Labs
golangScheduling In Go - Part II Go, (Golang) Programming - Blog - Ardan Labs
java90 New Features (and APIs) in JDK 11 - Azul Systems, Inc.
javaChris Vest on Twitter: "Java regex pro-tip: you don't have to match everything with one complicated pattern. Matcher has a `usePattern` method, and \\G matches end of previous match. That way, you can switch between different patterns as you work through the input."
javaCloud Native Java with OpenJ9: Fast, Lean and Definitely Mean - YouTube
javaFlatBuffers, ByteBuffers, and escape analysis - Google Groups
javaHow to create a small docker image of openjdk 11(ea) application ( 1GB→85MB )
javaIncremental Improvements to the Java Platform - YouTube
javaIntegrating Vert.x - YouTube
javaIntroduction to Micronaut: Lightweight Microservices with Ahead of Time Compilation by Graeme Rocher - YouTube
javaMicroProfile Reactive Streams: Control the Stream - YouTube
javaReactor Netty, the Default Spring Boot 2.0 Runtime - YouTube
javaShenandoah GC: The Next Generation - YouTube
javaThe rise of Java Microframeworks | E4developer
javaWhat's New in Java 11 - YouTube
javaWhat’s New in the Java Platform Language and Tooling Area - YouTube
javajava - Implied anonymous types inside lambdas - Stack Overflow
java,other-langIntro to Ballerina: A Cloud Native Programming Language - YouTube
java,testingEasy and Accurate Performance Testing With JUnit/Maven - DZone Performance
java,testingStructured JUnit 5 testing - codecentric AG Blog
k8sPackaging Applications for Docker and Kubernetes: Metaparticle vs Pulumi vs Ballerina
other-lang(9) What are general thoughts on Elixir, Crystal, Nim, Kotlin, Rust, Swift, Haskell, and Go? Which are most and least preferred? - Quora
other-langNim programming language | Nim
other-langThe Crystal Programming Language
other-langThe claim is "fast as C", so I was surprised that the performance comparison was... | Hacker News
other-langWhy Crystal is the most promising programming language of 2018
other-lang,rustThe Observation Deck » Falling in love with Rust
rustRayon: Data Parallelism for Fun and Profit — Nicholas Matsakis - YouTube
rustRust Concurrency Explained - YouTube
rustRustConf 2018 - Getting Something for Nothing by James Munns - YouTube
rustThe success of Go heralds that of Rust – George Hosu – Medium
rust,other-langA Case for Oxidation: The Rust Programming Language - YouTube
rust,other-langReplacing Elasticsearch with Rust and SQLite
sysPainless Password Rotation with HashiCorp Vault - YouTube

Merry Christmas and a Happy New Year!

Sunday, September 02, 2018

Late Summer 2018 tech reading

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

dataA simple spell checker built from word vectors – Noteworthy - The Journal Blog
dataApache Cassandra's 10 year Anniversary Special | DataStax - YouTube
dataCounting is Hard: Probabilistic Algorithms for View Counting at Reddit
dataFilter Before You Parse: Faster Analytics on Raw Data with Sparser · Stanford DAWN
dataLower Latency Graph Queries in Cypher with Redis GraphRoi Lipman, Redis LabsTim Davis, Texas A&M U - YouTube
dataScaling SQLite to 4M QPS on a Single Server (EC2 vs Bare Metal) « Expensify Blog
dataSynchronous replication across data center for messaging system at Uber - Mingmin Chen, Hongliang Xu - YouTube
dataThe Cost of Containerization for Your Scylla - ScyllaDB
dataTowards 3B time-series data points per day: Why DNSFilter replaced InfluxDB with TimescaleDB
data,flux,sqlSQL vs. Flux: Choosing the right query language for time-series data
data,flux,sqlThe Design of IFQL, the New Influx Functional Query Language - YouTube
devopsFrom 6 Month Waterfall To 1h Code Deploys - Andreas Grabner - YouTube
funCliff Click - Lessons from a Big Data Machine Learning Startup - YouTube
funFatih Arslan on Twitter: "homebrew users: periodic reminder to run "brew cleanup -s" to scrub the cache and remove downloads from old versions. Just freed 1.8GB of disk space."
funGOTO 2018 • Secrets of Effective Communication You Can Learn (from my Failures!) • Benjamin Mitchell - YouTube
funGrowth Is Not the Only Goal – The Business Behind jOOQ
funInside the Beach House Connecting the World’s Internet - YouTube
funIt’s Time for the Open Source Community to Get Real | Blog | InfluxData
funKarl Isenberg on Twitter: "Even with kubeadm and a team of 6 you can’t get upstream K8s production ready in 6 months. We tried. Hard Problems: - High Availability - Single Sign On - Multitennancy - Resource Isolation - Permission Management - Upgrades - Backups - Package Management - CI/CD Integration…"
funWhich of these books do you own?… "
funSupercharged! Vehicle Physics in Skylanders - YouTube
fun,k8sKubernetes Advanced Scheduling - heating the Netherlands with Kubernetes - YouTube
fun,sysfastcat - A Faster `cat` Implementation Using Splice
golangTobi on Twitter: "This comment on the Go 2 release draft on reddit is spot on. My dislike of Go is very much rooted in the authors apparent misconception of “complexity” and what in turn happens if you want to build a “simple” language.…"
javaAd-hoc Plugins with Gradle – Eugene Petrenko
javaAvoid stepping on page faults while writing to MappedByteBuffer - Google Groups
javaBrics Vs RE2/J
javaContract Tests in the Enterprise Conference - Marcin Grzejszczak - YouTube
javaEvolving the Java Language with @BrianGoetz - YouTube
javaFYI: Changes to Garbage Collection in JDK11
javaGeeCON 2018: Marcin Moskała - Kotlin Coroutines in Action - YouTube
javaInside the Java SDK: Connection Management | The Couchbase Blog
javaJava Puzzlers NG: The strange, the bizarre, and the wonderful - Voxxed Days Singapore 2018 - YouTube
javaLightweight fibres for TruffleRuby. -
javaLoom prototype publicly available
javaProject Loom with Ron Pressler and Alan Bateman - YouTube
javaThe 6 Memory Metrics You Should Track in Your Java Benchmarks |
javaThe Business Behind 5 Years of Data Geekery and 10 Years of jOOQ
javaThe Future of the Java Platform and the JDK: Who is in Charge? - YouTube
javaWouter Coekaerts » The Java type system is broken
java,graalStream API performance with GraalVM – graalvm – Medium
java,graalVert.x native image awesomeness!
java,reactiveDon’t use Reactive Streams in Java 9+ - Jacek Kunicki - YouTube
java,testingAutomatic tests for webservice with RestAssured, WireMock and Testcontainers libraries. · Sysco Middleware
java,testingMarc Philipp — JUnit 5 extensions: from conditional test execution to test templates - YouTube
k8sDebugging TCP socket leak in a Kubernetes cluster – Hasura
k8sMicroservice'ing like a Unicorn with Kubernetes, Envoy, and Istio
kafka,monitorIntroducing Kafka-Kit: Tools for Scaling Kafka
sysEnvoy Internals Deep Dive - Matt Klein, Lyft (Advanced Skill Level) - YouTube
sysIntroducing Envoy-Based Service Mesh at - Ivan Kruglov, - YouTube
sysgRPC Deep Dive – Sree Kuchibhotla & Jayant Kolhe, Google (Intermediate Skill Level) - YouTube

Until next time!

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