Almost every single day I TLDR!
Here, I list all the articles, blog posts, pages I've read, or videos I've watched, that I found interesting.
It's like a huge shared bookmarks registry with y'all! Or it's like a daily newsletter without newsletter. Use Ctrl+F and find what you want. Fun fact: Github only displays the readme until ~5000 lines.
- I'm the co-founder of https://www.conduktor.io/, the best Desktop application to manage a Kafka ecosystem. Download, Install, Connect, done!
- I'm writing articles on my blog about these topics.
https://www.confluent.io/blog/pull-queries-in-preview-confluent-cloud-ksqdb/ Preview Feature: Pull Queries in Confluent Cloud ksqlDB. Sweet!
https://awesomeopensource.com/project/erebe/personal-server A complete "tutorial" to configure a personal server (security, firewall, k3s, ingress, certificates, mail server, github actions, backups, vpn, pihole..)
https://typelevel.org/blog/2020/10/30/concurrency-in-ce3.html Concurrency in Cats Effect 3 #scala
https://www.slideshare.net/streamnative/low-latency-stream-processing-with-jet Low latency stream processing with Jet and Kafka (Hazelcast)
https://www.slideshare.net/ConfluentInc/performance-tuning-rocksdb-for-kafka-streams-state-stores Performance Tuning RocksDB for Kafka Streams’ State Stores
https://medium.com/helidon/can-java-microservices-be-as-fast-as-go-5ceb9a45d673 Benchmarking Java + Graal & Go. Java is better at multi-threading (and mem+), otherwise Go crunches it.
https://awesomeopensource.com/project/scalaz/scalaz-plugin Excellent compiler plugin to ensure a better fp-oriented code. (no null, no *instanceOf, no side-effects, no equals, toString etc.)
https://www.digitalocean.com/community/tutorials/architecting-applications-for-kubernetes Tips about architecting applications for Kubernetes
https://engineering.gusto.com/how-my-role-as-cto-has-changed-as-weve-grown-to-100-engineers/ An cool feedback from developer to CTO managing more than 100 engineers
https://www.rittmanmead.com/blog/2017/04/sql-on-hadoop-impala-vs-drill/ Similarities between Impala and Drill
https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/ Top 10 Performance Tuning Tips for Amazon Athena: mostly about partitioning, clustering, optimum file size, file format (parquet), some sql tips
https://www.infoq.com/presentations/55-new-features-jdk-9 55 New Features in JDK 9; a lot of things
http://bytes.schibsted.com/bigdata-sql-query-engine-benchmark/ Athena wins again
https://www.edrawsoft.com/google-cloud-platform-software.php Drawingi GCP Diagram with edrawsoft
https://blog.acolyer.org/2018/07/02/the-rise-of-the-citizen-developer-assessing-the-security-impact-of-online-app-generators/ Most mobile apps generated by generators have tons of security issues
http://tayler.io/jobs-to-be-done-summary/ Formulate outcome statements as ‘[direction], [metric], [object of control], [optional: contextual clarifier]’
https://medium.com/google-cloud/google-kubernetes-engine-load-testing-and-auto-scaling-with-locust-ceefc088c5b3 "workshop": playing with GKE and do some load-testing using Locust, then k8s auto-scaling
https://medium.com/blablacar-tech/streaming-data-out-of-the-monolith-building-a-highly-reliable-cdc-stack-d71599131acb Cool feedback using CDC to migrate stuff and adding a deduplicator app (as always) —because CDC=at least once— backed by Cassandra LOCAL_QUORUM (strong cons)
https://cloudplatform.googleblog.com/2018/06/Introducing-sole-tenant-nodes-for-Google-Compute-Engine.html GCP now provides machines for yourself!
https://kubuszok.com/2018/speed-up-things-in-scalac-and-sbt/ Tons of tips to improve scalac/sbt compilation speed. graal, CI caches, CI database optimized to not write to disk, scala parallelism, more modules, no snapshot, less macros, (kentuckymule/hydra if motivated)
https://www.youtube.com/watch?v=HssczgaY9BM Andre Staltz explains how he got the idea of "callbag". Basically, a consumer/producer system which can talk to each other (about anything)
https://awesomeopensource.com/project/testcontainers/testcontainers-scala Docker containers for testing in scala!
https://awesomeopensource.com/project/Netflix/atlas Netflix built an in-memory time series database, need to test it!
https://streaml.io/blog/pulsar-topic-compaction/ Pulsar now can compact topics too
https://www.jetbrains.com/research/devecosystem-2018/scala/ A very odd Scala survey (30% on 2.13? 26% on java9? 25% are not using any lib to do webdev?)
https://plokhotnyuk.github.io/jsoniter-scala/ jsoniter-scala has tons of public benchmarks. It just beats 'em all (throughput, mem alloc, gc..)
http://joeduffyblog.com/2015/11/03/blogging-about-midori/ HUGE amazing feedbacks about several parts of Midori, a (discontinued) project from Microsoft. From capabilities, asynchronous model, error model, concurrency, why, how etc.
http://chrisseaton.com/truffleruby/jokerconf17/ Graal is a masterpiece. A Java JIT, an AOT compiler (SubstrateVM), and with Truffle, a framework to get polyglottism on top of the JVM
http://eed3si9n.com/power-assert-with-expecty Expecty or exactly know why an assertion failed
https://powerdns.org/hello-dns/ Guide to how DNS works
https://stripe.com/atlas/guides/saas-pricing Tons a case studies about pricing page
https://stripe.com/atlas/guides/business-of-saas Guide to SaaS, tons of infos and tips
https://www.infoq.com/presentations/lambda-streams-delta Feedback from monolith to event sourced arch, Kinesis issues compared to Kafka
https://www.infoq.com/presentations/crdt-distributed-consistency Talk by Martin Kelppmann about CRDTs guaranteeing convergence
https://www.infoq.com/presentations/async-event-arch Talk about 2 approaches to event-based arh. One with kafka decoupling, the other with ActiveMQ and actors
https://medium.com/@tshiran_81544/google-docs-for-all-data-sources-an-approach-using-open-source-tools-26278a2fb86c Dremio connects to any datasource and offers exploration and analytics tools
https://blog.acolyer.org/2018/05/23/pixie-a-system-for-recommending-3-billion-items-to-200-million-users-in-real-time/ How Pinterest recommends stuff to users in real-time (random walks taking bias, boosting, eartly stopping (realtime), into account)
https://segment.com/blog/introducing-centrifuge/ How segment built a system to deliver events to partners (failures, fairness, scalability..)
https://pgdash.io/blog/partition-postgres-11.html Finally, with the tons of improvements they did, the partitions in pg11 look useful!
https://speakerdeck.com/paf31/the-future-is-comonadic Comonads for user interfaces
https://typelevel.org/blog/2018/05/09/tagless-final-streaming.html Sweet exploration of Tagless Final with fs2.Stream
https://awesomeopensource.com/project/scodec/scodec Working with binary data in Scala
https://gist.github.com/OlivierBlanvillain/48bb5c66dbb0557da50465809564ee80 Cool gist about tagless final vs initial encoding; and extensibility/transformations
https://medium.com/containerum/how-to-setup-ci-cd-workflow-for-node-js-apps-with-jenkins-and-kubernetes-360fd0499556 How to setup CI/CD workflow for Node.js apps with Jenkins and Kubernetes
https://blog.playframework.com/play-on-graal/ Running Play on GraalVM gives better perfs (probably because of a better escape analysis)
https://www.youtube.com/watch?v=Pgo73GfHk0U Where State Monads comes from
https://www.youtube.com/watch?v=GzbravzRrBM react-navigation in demo, very great to develop react-native apps
https://www.slideshare.net/LukaJacobowitz/oh-all-the-things-youll-traverse Monoidal, Semigroupal, Traversable, all those things
http://appddeevvmeanderings.blogspot.fr/2018/05/cats-effect-and-webservice-composition.html Working with IOs/Option[T]/Validated as any classic webservices
http://www.geekabyte.io/2018/05/thoughts-on-dealing-with-having-another.html Monads in Future leads to crappy code, lifting everything into Futures, or monad transformers.
https://cloudplatform.googleblog.com/2018/05/Sharding-of-timestamp-ordered-data-in-Cloud-Spanner.html It suggests to add a new column "ShardedEntryId" used in an index to avoid index hotspots
https://www.slideshare.net/ItamarRavid/a-fistful-of-functors Variations of the functors (cov, contra, inv, pro)
https://speakerdeck.com/alexandru/cancelable-io Cancelable IO in cats-effect
http://blog.leifbattermann.de/2017/04/21/12-things-you-should-know-about-event-sourcing/ How to do Event Sourcing
https://blog.softwaremill.com/scalar-2018-whiteboard-voting-results-c6f50f8fb16d Scalar 2018 whiteboard voting results, to know with what the community is working with, see if you're not far away
https://cloudplatform.googleblog.com/2018/05/Better-cost-control-with-Google-Cloud-Billing-programmatic-notifications.html on GCP, budget now generates proper events we can react to (pubsub'ed)
https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html git new protocol, to reduce bandwidth usage for huge projects (tons of branches and tags)
https://techblog.bozho.net/gdpr-practical-guide-developers/ GDPR - A (very good) Practical Guide For Developers
https://jacquesmattheij.com/gdpr-hysteria GDPR myths busting
https://queue.acm.org/detail.cfm?id=3220266 A very good overview of btrees/lsmtrees/ssts
https://kickstarter.engineering/event-sourcing-made-simple-4a2625113224 An Event Sourcing implementation
https://streaml.io/blog/pulsar-message-queue/ Pulsar = Kafka + RabbitMQ (backed by BookKeeper)
https://www.quora.com/What-is-the-most-sophisticated-piece-of-software-code-ever-written/answer/John-Byrd-2 is it a computer worm finding its way to uranium centrifuges to mess with them? (stuxnet)
http://blogs.harvard.edu/doc/2018/05/12/gdpr/ will GDPR pop the adtech bubble?
https://www.infoq.com/news/2018/05/gvisor-container-sandbox gVisor, another layer between an app in a container and the kernel. Implements a OCI runtime; intercepts and deals with system calls itself; made to reduce the surface attack.
https://cloudplatform.googleblog.com/2018/05/Three-steps-to-prepare-your-users-for-cloud-data-migration.html How to prepare your users for cloud data migration
https://sematext.com/blog/opentracing-jaeger-as-distributed-tracer/ Presenting Jaeger as Distributed Tracer (and soon, vs Zipkin)
http://blog.cloudera.com/blog/2018/05/scalability-of-kafka-messaging-using-consumer-groups/ Another explanation of Kafka Consumer Groups, used for scalability
https://github.com/monix/monix/pull/670 Task gets smarter about forking and async boundaries
https://cloudplatform.googleblog.com/2018/05/Using-Jenkins-on-Google-Compute-Engine-for-distributed-builds.html Google has developed the Jenkins GCE plugin to use it for slaves (and could preempt)
https://www.infoq.com/articles/data-leakage-hindsight-bias-machine-learning Demystifying Hindsight Bias in ML
https://cloudplatform.googleblog.com/2018/05/Introducing-Cloud-Memorystore-A-fully-managed-in-memory-data-store-service-for-Redis.html Cloud Memorystore, backed by Redis
https://cloudplatform.googleblog.com/2018/05/SRE-vs-DevOps-competing-standards-or-close-friends.html SRE jobs: SRE implements DevOps, helps defining SLI/SLO/SLA, risk and error budgets
http://www.thedevpiece.com/alpakka-akka-streams-vs-apache-camel-who-wins/ Clearly Akka Streams. Camel is awesome because it has tons of connectors, but the "type all with strings" is a big no.
https://awesomeopensource.com/project/opentracing-contrib/scala-concurrent OpenTracing instrumentation for Scala's Futures
https://gist.github.com/gaearon/d85dccba72b809f56a9553972e5c33c4 prepack doesn't transform the input code, it executes it and write back the "leftover"/effectful code
https://blog.npmjs.org/post/173719309445/npm-audit-identify-and-fix-insecure "npm audit" is a really great tool to identify and fix insecure dependencies, to not be unsecured yourself
https://www.reddit.com/r/tifu/comments/8kvias/tifu_by_getting_google_to_ban_our_entire_company/ "Getting Google to ban our entire company"
https://threadreaderapp.com/thread/998660806005768192.html @Suhail providing insights about becaming CEO
https://awesomeopensource.com/project/olistic/warriorjs A programming game where your warrior has feeling
http://degoes.net/articles/bifunctor-io Scalaz IO[E, A] distinguish between recoverable & non-recoverable errors, can represent IO that won't fail (already .attempt for instance), make errors composition explicit, is a superset of the existing IO[A] so no need to worry about.
https://www.oreilly.com/ideas/how-will-the-gdpr-impact-machine-learning How will the GDPR impact machine learning?
https://medium.com/webpack/webpacks-new-cli-hotness-d6a2063168a8 I didn't used webpack in ages, but still nice to see its CLI getting very good!
https://www.youtube.com/watch?v=4tKSEKM64-c Ignition and Turbofan quickly explained in V8
https://www.youtube.com/watch?v=mIWCLOftfRw All modern JS features in Chrome (modules, bigint, regexes, for await, string functions, finally, spread, private class fields))
https://www.percona.com/blog/2018/04/30/a-look-at-myrocks-performance/ MyRocks, a write-optimized engine (forked from RocksDB) is a better fit where cpu and io are more constrained/costly (ie: cloud) (InnoDB consuming more of them); and has a better throughput for smaller datasets
https://github.com/bodil/spectre-of-free-software/blob/master/script.org We can't allow knowledge to be lost, that's what free software and open source is all about
https://medium.com/@corychaplin/genesis-of-m6s-datalake-edf2524b7d67 I feel sad to see a new big stack emerging on a classic old scheme: hosted hadoop, puppet, hive, sqoop. The thing we escaped in my previous company because it was too time-consuming for nothing.
https://www.usenix.org/sites/default/files/conference/protected-files/srecon18americas_slides_brown.pdf How to prioritize and communicate risk (SRE)
https://cloudplatform.googleblog.com/2018/05/Defining-SLOs-for-services-with-dependencies-CRE-life-lessons.html Defining SLOs for services with dependencies
https://alexn.org/blog/2018/05/06/bifunctor-io.html An interesting critique of the Bifunctor IO leading to more harm than good (and especially not replacing the simple IO)
https://www.youtube.com/watch?v=nVcjaiTRgSY When a company is growing, it really needs to ensure it has a proper "design system" (a unique library of visual components and everything around to make it work with easily for everyone)
https://medium.com/netflix-techblog/open-sourcing-zuul-2-82ea476cb2b3 Zuul 2 is basically a Netty proxy where all traffic ins and outs. It adds monitoring, resiliency, debugging features, filtering, routing, and tons of smart behaviors for a huge-scale (canary testing, cold instances, anomaly detection.)
https://www.youtube.com/watch?v=ZmlQoeEycPc HTTPS is Dangerous: basically some troubles (certificate expiration, fakes) and probably some backdoors possible for SHA-breakage
https://www.youtube.com/watch?v=UD-ukjVoeLc Why URLs are troublesome (phishing, mis-identity, sharing non-understandable urls)
http://twicsy-blog.tumblr.com/post/174063770074/how-i-targeted-the-reddit-ceo-with-facebook-ads-to Using Facebook ads to target the Reddit CEO to make it read your own article, ahah
https://cloudplatform.googleblog.com/2018/05/Google-Kubernetes-Engine-1-10-is-generally-available-and-ready-for-the-enterprise.html GKE goes full scale: Regional PD and Regional Clusters (multi-masters)
https://medium.com/@sinisalouc/whats-new-in-scala-3-28d9c11eec30 A written recap of what's new in Scala 3
21-05-2018 (back from 🇳🇴 ❤️)
Being on holidays in Norway 🇳🇴, I won't post a lot of links during a few weeks.
https://www.youtube.com/watch?v=eublKlalobg Kafka Summit 2018 Keynote
https://awesomeopensource.com/project/LukaJCB/typeclass-proposal LukaJCB/typeclass-proposal: Typeclass proposal for Dotty
https://www.youtube.com/watch?v=FBg7K6LKdVg macros: syntactif stuff, shapeless: structural stuff
https://www.youtube.com/watch?v=MDfeTNa6lBA Création d'instances de typeclasses automatique avec shapeless
https://www.youtube.com/watch?v=x1f7v0cI8VM case classes to/from maps using shapeless
https://www.linkedin.com/pulse/mongodb-frankenstein-monster-nosql-databases-john-de-goes/ MongoDB issues
https://www.youtube.com/watch?v=4fFDFbi3toc They wrote a deterministic simulation (of network, disks, everything) to test and debug distributed systems. They had a lot of fun.
https://www.youtube.com/watch?v=Q1U6X1bYeuM Pick your frameworks/libraries: here an app using: http4s, fs2, cats-io, pureconfig, circe
https://medium.com/videoamp/what-we-learned-migrating-off-cron-to-airflow-b391841a0da4 Yes, Cron should never be used to Data engineering production grade stuff.
https://medium.com/nikeengineering/becoming-a-nimble-giant-how-dynamo-db-serves-nike-at-scale-4cc375dbb18e Feedback from Nike using DynamoDB (how it works, partitioning strategy, need to deal with peaks, pre-scale when product launches etc.)
https://www.oreilly.com/ideas/data-engineers-vs-data-scientists A post we could send to recruiters. Data engineers vs. Data scientists vs ML engineers.
http://www.lambdadays.org/static/upload/media/1520323372815660jarekratajskibeautyandthebeasthaskellonjvm.pdf Haskell on the JVM = Eta
https://ncatlab.org/nlab/show/category+theory A very good doc about category theory, its structures and theorems.
https://blog.ssanj.net/posts/2017-04-12-how-does-scalacheck-shrinking-work.html Property based testing shrinking explained. Unfortunately, doesn't talk about type vs integrated shrinking (which follows invariants).
https://threadreaderapp.com/thread/987602838594445312.html Using SQL queries à la old school to reward or reengage customers. No need of ML to do that.
https://github.com/scalaz/scalaz/issues/1526 Scalaz 8 Roadmap: implement more and more category theory structures
https://blog.softwaremill.com/synchronous-or-asynchronous-and-why-wrestle-with-wrappers-2c5667eb7acf A long (too much, but some parts are still interesting) article about sync vs async, and coroutines (async/await)
https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#merge_statement A new "MERGE" operator in BigQuery to merge one table into another (joined) while controlling the insertion/update clauses
https://techcrunch.com/2018/04/11/google-is-about-to-launch-a-gmail-web-redesign/ Can't wait for a redesign, Inbox is so damn slow (but the design is so good..)
https://www.dropbox.com/s/p7w9w904e6himdb/Leveraging%20Spire%20for%20complex%20time%20allocation%20logic.pdf?dl=0 Using Spire to deal with intervals (of anything! but mostly dates eh) in Scala
https://www.youtube.com/watch?v=QBatpIFii7M Presentation of IronDB (timeseries ddb), no consensus needed
https://www.youtube.com/watch?v=YSN__0VEsaw fs2 Stream
https://www.youtube.com/watch?v=VGZi4nTgZxs Dealing with Duality using Category Theory
http://janbosch.com/blog/index.php/2017/11/25/structure-eats-strategy/ BAPO (business $$$ should define the arch/process/organization) vs OPAB (organization first, Conway's law!)
https://www.infoq.com/articles/architecturally-aligned-testing Microservices, autonomy, and testing
https://medium.com/capital-one-developers/toward-a-functional-programming-analogy-for-microservices-ba6f49b94ad Microservices: OOP vs FP style (cqrs, es, explained with Kafka*)
https://medium.com/netflix-techblog/automated-canary-analysis-at-netflix-with-kayenta-3260bc7acc69 Instead of ad-hoc error-prone human Canary version analysis, Kayenta relies on statistics (source of metrics, logs) and no human to decide if a canary is ready-for-prod.
https://www.citusdata.com/blog/2016/03/30/five-ways-to-paginate/ Pagination technique in Postgres, from the basic to the exotic
https://developers.google.com/machine-learning/glossary/ An impressive glossary about Machine Learning
https://awesomeopensource.com/project/sigalor/whatsapp-web-reveng Reverse engineering WhatsApp Web
https://awesomeopensource.com/project/akka/akka-grpc gRPC over Akka Streams !
https://firebase.googleblog.com/2017/10/introducing-cloud-firestore.html Cloud Firestore, a mix of Datastore and Firebase Realtime Database.
https://developers.google.com/web/updates/2017/09/abortable-fetch I miss that: "abortable fetch" thanks to a new AbortController().signal we can pass to fetch().
http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions Write architecture decisions (ADR) into files within the project
https://www.confluent.io/blog/using-kafka-streams-api-predictive-budgeting/ Pinterest trying to reduce the overdelivery of ads (according to a max budget, cpm or cpc) using kafka streams and predictive spend
https://pingcap.com/blog/2017-10-10-nextcon/ TiDB "NewSQL database": storage backed by RocksDB, gRPC between nodes, Raft protocol to handle data strong consistency.
https://medium.com/@mukeshkumar_46704/in-depth-kafka-message-queue-principles-of-high-reliability-42e464e66172 A nice recap about Kafka topic storage and replicas
https://medium.com/vimeo-engineering-blog/improving-load-balancing-with-a-new-consistent-hashing-algorithm-9f1bd75709ed Improving HAProxy with bounded-load consistent-hashing algorithm (classic CH + load factor taken into account)
https://www.confluent.io/blog/real-time-syslog-processing-apache-kafka-ksql-part-1-filtering syslog and KSQL
https://www.confluent.io/blog/predicting-flight-arrivals-with-the-apache-kafka-streams-api/ ML model updates in Kafka Streams (using Mahout here)
https://developer.lightbend.com/blog/2018-04-09-profiling-JVM-applications/ Profiling JVM applications
https://cloudplatform.googleblog.com/2018/04/toward-better-phone-call-and-video-transcription-with-new-Cloud-Speech-to-Text.html Google continue to enhance its speech to text models, and that's awesome
https://developer.lightbend.com/blog/2018-04-09-sbt-1-1-4-hotfix/ Tons of improvements in sbt 1.1.4. (better filewatch on osx; faster build!)
https://awesomeopensource.com/project/sgreben/jp plots from JSON in console :O
https://medium.com/@dgryski/consistent-hashing-algorithmic-tradeoffs-ef6b8e2fcae8 A nice review about several hashing techniques (classic consistent, jump, multi probe, rendezvous, maglev)
https://www.youtube.com/watch?v=YXDm3WHZT5g Devoxx Belgium 2017, Plain Functional Programming by Martin Odersky; example using Kleisli (for config) against implicit types (incoming)
https://awesomeopensource.com/project/mikolak-net/travesty Generating diagram for akka streams
https://alistapart.com/article/coding-with-clarity Single responsability principle, low coupling/high cohesion, with analogies to real-world example
http://akaptur.com/blog/2017/11/12/love-your-bugs/ Bits flip are real. Use feature flags. Don't DDOS yourself.
https://medium.com/dailymotion-engineering/a-brief-history-of-apis-at-dailymotion-3c2c16001717 Quick post from Dailymotion explaining the switch of their API to GraphQL (mostly for performance purpose, less round-trip)
https://embano1.github.io/post/scratch/ Study of the "FROM scratch" image and explanations of the differences between the container image and one of its instance (OCI runtime specification)
http://highscalability.com/blog/2018/4/2/how-ipdata-serves-25m-api-calls-from-10-infinitely-scalable.html Very cool feedback and archi about by ipdata (using aws gateway, dynamo, lambdas, kinesis, cloudwatch)
https://levelup.gitconnected.com/how-to-use-technical-debt-in-your-favor-98bae475ba68?ref=hn322 Dealing with technical debt: always start naive, then refactor the past when it's more clear and patterns emerge
https://medium.com/databasss/on-disk-io-part-1-flavours-of-io-8e1ace1de017 Multiple posts explaining how ios work, very interesting to get the base
https://medium.com/activewizards-machine-learning-company/top-15-scala-libraries-for-data-science-in-2018-4b2cb5c5367e Some nice pointers for data science in scala: Breeze (Analysis, NLP), Saddle (Analysis), Breeze-vis (dataviz), Vegas (dataviz), Smile (ML), and Spark stuff
https://cloudplatform.googleblog.com/2018/01/why-you-should-pick-strong-consistency-whenever-possible.html Spanner and its "external consistency" (strongly consistent + serializability): no trade-off in the apps!
https://www.youtube.com/watch?v=BgcJnurVFag Building a 400TB PostgreSQL clusters: tips and tricks
https://www.youtube.com/watch?v=v3msiBIny6s Nice talk about the pure push/pull flaws that lead to create Reactive Streams, and Akka Streams is one implementation. Here nicely presented by Viktor Klang.
https://thenewstack.io/microservices-running-containers-need-streaming-platform/ Microservices, Containers, and the upcoming of Streaming Platforms to handle all the technicals points (communication, pubsub, storage, failures etc.)
https://hackernoon.com/thorough-introduction-to-apache-kafka-6fbf2989bbc1 A large and clear overview of the Kafka streaming platform
https://medium.com/netflix-techblog/distributing-content-to-open-connect-3e3e391d4dc9 Netflix is now using a smarter Consistent Hashing technique based on multiple weights to distribute resources into their heterogeneous servers
https://www.youtube.com/watch?v=h48kuflGEDw Scala 2.12 (tech refactor) /13 (library refactor) /14 (remove features)/15 (to dotty) evolutions and improvements
https://www.slideshare.net/cloudera/performance-of-apache-impala Impala misc optimizations: codegen, smart joins + create bloomfilter if needed, preaggregation, cache hits
https://reactjs.org/blog/2018/03/29/react-v-16-3.html An official "context" API! Better ref management; and lifecycle methods deprecations/new
https://www.lightbend.com/blog/the-six-questions-architects-ask-about-using-akka-in-production Some points of why using Akka. It misses the part "why NOT".
https://github.com/envoyproxy/envoy/issues/2852 Sending req/res into Kafka within Envoy?
https://github.com/scala-native/scala-native/releases/tag/v0.3.7 Scala Native 0.3.7 and sbt-crossproject to compile a project to js/native/jvm
https://www.youtube.com/watch?v=9Wp_riP8LQw Implicit FunctionTypes soon in Scala? basically type Gimme[E] = implicitly Int => E, implicit is part of the type (for easy reusability)
https://medium.com/@maximebeauchemin/functional-data-engineering-a-modern-paradigm-for-batch-data-processing-2327ec32c42a An ode to the functional data engineering: how to "data engineer" with functional principles
https://gtoonstra.github.io/etl-with-airflow/index.html A very good and complete documentation about Airflow and ETLs in general
https://github.com/confluentinc/schema-registry/pull/680/files It's now possible to save record using different Avro (without union, totally disjoint) records in one topic and let the SR knows about it
https://medium.com/serialized-io/apache-kafka-is-not-for-event-sourcing-81735c3cf5c Some interesting points (challenged in the comments, to read) why Kafka does not fit event sourcing constraints.
https://developers.google.com/web/updates/2018/01/paintapi CSS Paint API in Chrome: a dedicated js to register which can be referred in "background-image: paint(toto)" to return the content (using the canvas api). This fills a gap, nice.
https://sleeplessinslc.blogspot.fr/2018/02/inventory-microservice-example-with.html Sleepless in Salt Lake City: Inventory Microservice example with Kafka Streams and CQRS
https://coreos.com/etcd/docs/latest/learning/why.html etcd vs. other key-value stores
http://www.landoop.com/blog/2018/01/mqtt-influxdb/ Landoop showing off its (good) Lenses platform (a centralized UI to deal with Kafka*, query endpoints, see topology etc.), and using it to ingest (Kafka Connect) from some MQTT to InfluxDB
http://www.landoop.com/blog/2018/03/cassandra-to-kafka-part-2/ Cassandra to Kafka using Connect (and a polling strategy)
https://cloudplatform.googleblog.com/2018/03/how-we-used-Cloud-Spanner-to-build-our-email-personalization-system-from-Soup-to-nuts.html An interesting feedback of a company going from HBase+Hive to Spanner, why & takeaways
https://cloudplatform.googleblog.com/2018/03/introducing-Stackdriver-APM-and-Stackdriver-Profiler-Distributed-tracing-debugging-and-profiling-for-your-performance-sensitive-applications.html GA: Stackdriver Profiler to analyze application cpu, mem etc. through flame charts; Debugger to easily debug (breakpoint) and log in prod (without redeploying); Trace to do trace (spans) analysis through the services (à la OpenTracing, with propagation, latency etc.).
https://en.wikipedia.org/wiki/Quine_(computing) TIL about Quines and Multiquines. Programs that produce a copy of their own source code.
https://www.infoq.com/presentations/microservices-data-centric Very nice talk about microservices management and techniques of migration
https://shipilev.net/blog/2014/safe-public-construction/ Double-checked locking in Java (quite subtle!), applied to the Singleton Factory pattern
http://wiki.jvmlangsummit.com/images/1/1e/2011_Goetz_Lambda.pdf JVM Strategy to convert lambdas to bytecode
https://www.youtube.com/watch?v=kglEJ5x8xR8 problèmatiques de scheduling à criteo, de lobster à cuddle: lib à embed, plein de "connectors" (sh, yarn, clouds, etc.), démo UI, backfilling
https://typelevel.org/blog/2016/09/30/subtype-typeclasses.html implicit resolutions and subtyping loopholes (think cat theory, functor etc.) and solutions (define levels of subtypes exposing the implicits to change the priorities; used in cats, scalaz etc.)
https://typelevel.org/blog/2016/10/26/edsls-part-2.html Introducing MonadError and MonadState
https://medium.com/google-cloud/understanding-kubernetes-networking-ingress-1bc341c84078 Services, nodeport, lb, ingresses
https://shipilev.net/blog/2014/heapdump-is-a-lie/ JVM objects size (JOL being the single source of truth)
http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html static and dynamic type systems (sound, perf, doc, analysis, correctness, more or less verbose); explicit vs inference; structural typing; duck typing; what is a type finally? "a label used by a type system to prove some properties of the program behavior"
http://mail.openjdk.java.net/pipermail/announce/2018-March/000247.html JDK 10 GA, tons of new features but mainly type inference and Graal (
-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler) (no pattern matching :()
https://github.com/scala/scala/releases/tag/v2.12.5 scalac -release 9 !!
https://www.youtube.com/watch?v=wfWYm0MYj_8 Java 10: Panama (replace JNI, use JIT to generate the C layer), Amber: type inference, '_', pattern matching (+ scalaish sealed ADTs and extractors)
https://cloudplatform.googleblog.com/2018/03/understand-your-spending-at-a-glance-with-Google-Cloud-Billing-reports-beta.html GCP Billing reports: group by project and product (gae, bq, pubsub etc.) to see the trends, nice
http://lptk.github.io/programming/2018/03/02/a-dual-to-iterator.html Compute any aggregations in one pass using for-comp syntax
https://www.dropbox.com/s/qmuwo7z0v9jmnwi/NEScala2018.pdf "Composing programs": explaining why the composition is the essence of functional programming. Also discuss some category theory elements (kleisli, functors, monads).
https://awesomeopensource.com/project/plokhotnyuk/jsoniter-scala ultra-fast JSON codecs in Scala
https://rossabaker.github.io/boston-http4s/ Really great slideshow about http4s evolutions from simple stuff to Kleisli of Task/IO
https://www.opsian.com/blog/java-on-docker/ Java 10 will be easier to manage when Docker'ed
https://qconlondon.com/system/files/presentation-slides/how_events_are_reshaping_modern_systems_-_qcon_london.pdf Event-first design and event logging advantages
http://psy-lob-saw.blogspot.fr/ All the posts are amazing, dealing with JVM performances and profiling, read some of them, but lost a bit my way into ahah.
http://psy-lob-saw.blogspot.fr/2013/05/using-jmh-to-benchmark-multi-threaded.html False sharing problem using jmh
https://awesomeopensource.com/project/jvm-profiling-tools/honest-profiler Profiling JVM apps without waiting for safepoints (+ lower overhead)
http://psy-lob-saw.blogspot.fr/2018/01/what-difference-jvm-makes.html?spref=tw G1GC is the default in Java 9, that could lead to tremendous changes in benchmarks, as seen here; g1gc added locks to handle memory barriers
https://www.slideshare.net/RednaxelaFX/green-teajug-hotspotintrinsics02232013 Intrinsic Methods in HotSpot VM
https://monix.io/blog/2018/03/20/monix-vs-cats-effect.html Monix vs cats-effect, and some history about Monix and cats-effect and misc (cancellability, reactive streams, scalaz's Task, optimizations, monix's Iterant)
https://medium.com/@muuki88/follow-the-stacktraces-jvm-performance-profiling-3c371d323e5f Lesson learned: Never use exceptions for control flow in your hot code path
https://cloudplatform.googleblog.com/2018/03/introducing-the-ability-to-connect-to-Cloud-Shell-from-any-terminal.html We can now access the Cloud Shell (was in-browser only before) from "gcloud alpha cloud-shell" command now (it comes with preinstalled stuff, to avoid polluting the local env)
https://cloudplatform.googleblog.com/2018/03/automatic-serverless-deployments-with-Cloud-Source-Repositories-and-Container-Builder.html Mirror git source into GCP Repo, and write a "build trigger" (yaml) in Container Builder to be triggered when source changes
https://awesomeopensource.com/project/GoogleCloudPlatform/skaffold In the "same" vein, skaffold auto-runs the whole build/deploy pipeline on code change
https://jenkins.io/blog/2018/03/19/introducing-jenkins-x/ Jenkins X: CI/CD with a new cli "jx" to create apps and handle the whole ci/cd cycle automatically (versioning, envs, builds (jenkinsfile, dockerfile, helm chart), deployments, pull requests, issues..). A sub-project of Jenkins.
http://jpetazzo.github.io/2018/03/13/appswitch-hyperlay-network-stack-future/ AppSwitch looks like a service mesh for anything (ie: outside containers), cross-machines, tiny overhead, very simple. Will it happen?
https://hackernoon.com/how-graphql-replaces-redux-3fff8289221d A simple but useful revelation: querying using graphql can prevent you to code tons of Redux reducers and async stuff querying classic rest endpoints.
https://github.com/atlassian/react-beautiful-dnd/releases/tag/v6.0.0 v6 of react-beautiful-dnd, just an amazing work
https://meta.plasm.us/slides/circe/algebra/ Experimental circe-algebra: splitting decoding from interpreting (think Free), and using cursors.
http://www.softwaredaily.com/ Software Daily podcasts
http://debezium.io/blog/2018/03/08/creating-ddd-aggregates-with-debezium-and-kafka-streams/ An aggregate user+addresses built with Debezium and Kafka Streams
https://images.guide/ The most complete guide to image optimization you can find. Very informative to be aware of every possibilities to optimize our pictures because #perfmatters.
https://insights.stackoverflow.com/survey/2018/ Stack Overflow Developer Survey 2018
https://community.akamai.com/community/web-performance/blog/2016/06/22/understanding-how-the-http2-protocol-is-negotiated Understanding how the HTTP/2 protocol is negociated
https://medium.com/@duhroach/improving-cloud-function-cold-start-time-2eb6f5700f6 GCP boot time: reduce dependencies, have 1 version of them (cached), lazy load them if possible (not needed at boot time).
http://benjiweber.co.uk/blog/2018/03/03/representing-the-impractical-and-impossible-with-jdk-10-var/ "var" in JDK10 is useful to define previously impossible types (mixes of interfaces or structural types)
https://www.linkedin.com/pulse/nightmare-letter-subject-access-request-under-gdpr-karbaliotis/ The (great) Nightmare Letter: A Subject Access Request under GDPR.
https://cloudplatform.googleblog.com/2018/03/introducing-GCPs-new-interactive-CLI.html CLI are some ubiquitous right now, gcloud offers a better alternative: "gcloud alpha interactive --update-cli-trees"
https://www.nginx.com/blog/nginx-1-13-10-grpc/ gRPC support in nginx
https://chrome.google.com/webstore/detail/personal-blocklist-by-goo/nolijncfnkgaikbjbdaogikpmpbdcdef?hl=en Google's own extension to block some websites to appear in search results. But the last Chrome version makes it useless, #willfixlater ?
https://www.youtube.com/watch?v=hzf3hTUKk8U A 2014 talk about why functional programming is good! composability, modularity, genericity, less strain, happiness. But code could be complicated (yeah).
https://awesomeopensource.com/project/estatico/scala-newtype Haskell's "newtype" for Scala (to replace value classes and their undesired effects)
https://awesomeopensource.com/project/mathiasbynens/dotfiles useful dotfiles to use on macosx (tune them!). I discovered some nice shortcuts and tools in there.
https://awesomeopensource.com/project/kelseyhightower/kubernetes-the-hard-way Bootstraping Kubernetes manually on GCP, using GCE, VPC, subnetworks etc. Good if you truly wanna know how it works underneath
http://blog.effectivemessaging.com/2017/06/load-balancing-grpc-connections-in.html lb gRPC in k8s with Linkerd and Istio. I had this link for a while; now Istio is way more mature and even integrated in GCP: https://cloud.google.com/kubernetes-engine/docs/tutorials/istio-on-gke
https://medium.com/google-cloud/bigquery-performance-tips-searching-for-text-8x-faster-f9314927b8d2 Interesting BigQuery performance tips when using like '%x%'. Use regexp_contains or convert to bytes for better perf. (for now)
https://virtuslab.com/blog/mechanics-unboxed-union-types-scala/ A sweet article about understanding "how to make a union type" in Scala (without Either), and using contravariance
https://medium.com/netflix-techblog/scaling-time-series-data-storage-part-i-ec2b6d44ba39 From Cassandra, to Cass+Cache, to compression/parallelization/chunkages to get better r/w latency, less Cass maintenance, less data size.
https://www.reoptimize.io/ Control you GCP billing
https://medium.com/google-cloud/understanding-kubernetes-networking-services-f0cb48e4cc82 kube-proxy is the "hidden" gem in k8s that manages internal traffic packets routing (using netfilter and iptables in kernel space to do the routing)
https://blog.envoyproxy.io/envoy-threading-model-a8d44b922310 Envoy threading model – locks, logging, stats, and.. i didn't got everything!
https://akka.io/blog/news/2018/02/23/akka-2.5.10-released Many updates in Akka: Akka Typed is there, StreamRefs (RS over the network, finally!), Artery with TCP/TLS, not production ready but still.
http://the-paper-trail.org/blog/exactly-not-atomic-broadcast-still-impossible-kafka/#more-660 Theorical consensus can't be solved (thus no atomic broadcast, thus no exactly-once), but partial consensus can be, so Kafka can be.
https://barryoreilly.com/2015/12/14/lean-pmo-explore-vs-exploit/ Balance exploring new business with exploiting proven existing business models – and how to transition businesses successfully between these domains
https://barryoreilly.com/2016/01/13/lean-pmo-managing-the-innovation-portfolio/ Good post about the necessity of having a business Portfolio. Explore/Exploit/Sustain/Retire features and products. Classify them and act. Beware of the Feature Fallacy. (more features does not have necessary add value)
http://www.oreilly.com/programming/free/designing-autonomous-teams-and-services.csp Very interesting ebook. Helps you to get insights how to break down a company business into autonomous teams and bounded contexts; identify bottlenecks; all sort of schemas to pinpoint knowledge, boundaries, and organizational behavior.
https://www.youtube.com/watch?v=k9rwU8G1Oi0 A quick talk about typed actors, enough to get it. Actors are becoming "Behavior" following a protocol. The root ActorSystem also has get behavior now.
http://www.lambdadays.org/static/upload/media/1519663154528176valentinkasasthese10000classesineverwrote.pdf A truly impressive case study using recursion schemes, ana/cata to build a hylomorphism, and convert parquet<->avro<->json<->anything in a generic way with the least possible code, with validation
https://mtlynch.io/why-i-quit-google/ A ex-Googler talking about promotion in Google, metrics oriented instead of actual work-oriented
https://fsfe.org/freesoftware/basics/comparison.en.html Free Software, Open Source, FOSS, FLOSS - same same but different
https://contributors.scala-lang.org/t/the-state-of-then/1638/8 Are we gonna get "then" in Scala?
https://vimeo.com/224636602 Excellent court talk sur comment trouver sa valeur en tant qu'indépendant. D'une estimation à 150€ (en regardant son net/j), on passe facilement à 500€ pour garder le même niveau de vie (à cause des avantages qu'on avait grâce à l'employeur)
https://cloudplatform.googleblog.com/2018/02/announcing-SSL-policies-for-HTTPS-and-SSL-proxy-load-balancers.html Create and link an SSL policy (custom or predefined) to a LB
https://cloudplatform.googleblog.com/2018/02/fully-managed-export-and-import-with-Cloud-Datastore-now-generally-available.html Export and import with Cloud Datastore now GA!
http://www.scalactic.org/user_guide Scalactic, originated from ScalaTest, is a small lib providing simple and useful structures such as "Or" and "Every" to type like: "String Or One[Error]", left biased; provides some "===" and neat stuff.
https://awesomeopensource.com/project/developit/karmatic Automatic (headless) browser testing. Karma/Webpack/Jasmine. 0 config tools are the best.
https://twitter.com/DasSurma/status/955484341358022657 Deep copying a JS object with clever means: the history API, or the MessageChannel for workers x_x
https://www.youtube.com/watch?v=CUVOBANHzpo Why Akka streams rocks for high throughput
https://dzone.com/articles/microprofile-enhances-microservices-for-java MicroProfile is a project to make jvm microservices-oriented (config, fault tolerance, health check, metrics, auth)
https://www.thoughtworks.com/radar ThoughtWorks has a really great tech radar split in several domains (techniques, tools, platforms, languages)
https://en.fabernovel.com/insights/tech-en/akka-typed Another example of using Akka typed. Much more verbose but at least, it's compile-time type-checked!
https://medium.com/@ericsimons/introducing-turbo-5x-faster-than-yarn-npm-and-runs-natively-in-browser-cc2c39715403 Loading lazily packages instead of being eager: way less to dl=faster, and can work in a web browser now
https://www.youtube.com/watch?v=B37UbzPlSzw is IOTA the future "blockchain" err, "blockdag"? scalable, quantum resistant, no fees..
https://www.youtube.com/watch?v=1eg0ahHtxcQ Microservices & DDD
https://banzaicloud.com/blog/spark-monitoring/ Monitoring Apache Spark with Prometheus on Kubernetes. Buzzzzing!
http://blog.cloudera.com/blog/2017/12/faster-performance-for-selective-queries/ Combining partitioning+clustering (sort by (x, y, ..) in create ddl) for maximum partition pruning, very useful!
https://cloud.google.com/blog/big-data/2017/12/busting-12-myths-about-bigquery Busting 12 myths about BigQuery. I wasn't aware of the point-in-time snapshot feature. But it makes sense, because bq is bigtable behind the scene.
http://highscalability.com/blog/2015/3/9/the-architecture-of-algolias-distributed-search-network.html Algolia’s architecture explained (from 2015), quite interesting
https://medium.com/@addyosmani/a-tinder-progressive-web-app-performance-case-study-78919d98ece0 Very nice case study to review all what makes a performant webapp
https://danluu.com/input-lag/ Keyboard to screen latency, from 1977 to 2017. We didn't really improve /o\
https://www.theguardian.com/world/2017/apr/14/what-is-the-historical-evidence-that-jesus-christ-lived-and-died Always question believers facts
https://www.youtube.com/watch?v=o7wtlMb_Qv0 Microservices, talk by Vaughn Vernon
https://www.youtube.com/watch?v=v7b4J2INq9c Microsoft Quantum Development Kit: Introduction
https://swizec.com/blog/blockchain-backed-redux-clone-105-lines-code/swizec/7980 blockchain in the new TODO
http://woz.posthaven.com/what-orms-have-taught-me-just-learn-sql Benefits and drawbacks of ORMs (+simplity/+complexity)
http://jonasboner.com/bla-bla-microservices-bla-bla/ "Asynchronous Communication, Isolation, Autonomicity, Single Responsibility, Exclusive State, and Mobility. These are the core traits of Microservices."
https://v8project.blogspot.fr/2017/12/v8-release-64.html V8 still adding some optimizations (bind, Weak*, slice/filter) and smaller memory footprint
https://staltz.com/a-plan-to-rescue-the-web-from-the-internet.html Is the future is mobile mesh networks?
https://awesomeopensource.com/project/Jam3/math-as-code a cheat-sheet for mathematical notation in code form, quite straight-forward