
@triple_quote co-founder - https://xitter.cf/t.co/3qqgS9Mv65 Rock your #Scala compile time 🤘
Switzerland
Joined August 2008
- Tweets814
- Following137
- Followers1.2K
- Likes327
You know where you need to be at 5pm CEST _today_
This is going to be fun and informative! #scala #JVM #GenAI #DPE
🎧 In < 5 hours!
Join @Gradle creator @hans_d with @scala_lang creator @odersky for a fireside chat on #GenAI and developer productivity, hosted by @trisha_gee!
Don't miss a chance to hear from these industry luminaries in person!
Register 👇 👇 👇
gradle.com/events/software-d…
Mirco Dotta retweeted
Gradle joining the #Scala Center advisory board means that we get to work more closely with @odersky and the @scala_lang team!
globenewswire.com/news-relea…
p.s. Take a look at the latest #Scala builds and tests at develocity.scala-lang.org/sc…
I can’t believe @scaladays is only 10 days away! 🥳
📣 Attending #scaladays Madrid? Don't miss out on this tactical session led by @mircodotta and @jaguarul from our very own #Gradle engineering team!
scaladays.org/madrid-2023/x-…
#DPE #DeveloperProductivityEngineering #DevProd #DX #buildcache
Mirco Dotta retweeted
The way Datadog calculates percentiles at scale is very innovative 🔥
Usually, calculating the percentiles of large datasets is very expensive.
To know the 99th percentile of a stream of values, you need to:
- keep all the values
- sort them
- return the value whose rank matches the percentile (e.g 99th item)
Datadog cannot afford to do this with the many millions of data points that come in every second - the space and CPU requirements are not practical for a company with thousands of customers. 🐾
Naturally, they opted for sketch algorithms - those should provide them with a good-enough probabilistic result while being vastly more efficient to compute.
Unfortunately - they couldn’t get satisfactory results.
The algorithms would produce results that were too inaccurate. ❌
Why?
Many percentile sketches had guarantees in terms of *rank error*.
A rank-error guarantee of 2% means that the p95 value returned by the sketch is somewhere between the p93-p97 value.
But system latencies exhibit very fat tails - the difference between the p97 and p99 values can be 2-10x!
So what did the dogs do? 🐶
They invented a new sketch algorithm - DDSketch.
Instead of rank error guarantees, they designed it for *relative error* guarantees.
If the p99 is 60s, a 2% error means the sketch would return 58.8-61.2s.
The algorithm is surprisingly pretty simple:
• They create buckets covering ranges of the desired error rate. (+- 2% in this case) 🪣
• Each bucket keeps a counter of the amount of data points within that range. 💯
• When processing an item (latency metric data point), increment the counter of the appropriate bucket. ➕
• To count the desired percentile, you sum up the bucket’s values until you get to the desired percentile. Whatever bucket that percentile is in - that’s your value. 🏆
In this example, the 50th percentile is 1033ms. (4th value out of our total of 8)
Going by count, the 4th value is in the second bucket (b-1) and the algorithm would produce a result of 1021-1061ms.
To cover the range from 1 millisecond to 1 minute, you only need 275 buckets.
With 64-bit counters, that's just ~2kB of memory, regardless of the amount of input data.
This is why we call sketch algorithms sublinear in space growth - memory requirements do NOT grow linearly with input.
The exponential nature of the bucket distribution makes it cheap to cover an even wider range: 1 nanosecond to 1 day takes just 3x more buckets:
• 802 buckets at ~6kB.
As you can probably tell, this is pretty easy to parallelize.
You can divide this bucket-building exercise into many parallel lightweight substreams, and then merge the results freely. 🕊
The merge operation is a simple sum of the buckets & their counters, which ensures that the accuracy is kept in the same range.
It is a very scalable and performant sketch algorithm.
Kudos to Datadog for inventing it.
Good boy! 🫳🐕🦺
Whohooo!
Finally, Scala Italy returns with a 2023 edition in its birthplace, Milano! The event will be on 10-11 November. For updates, check our site scala-italy.it/. Stay tuned!
Mirco Dotta retweeted
Did you know that @gradle offers much more than a build tool? We caught up with @mircodotta at the Scala Tooling Summit where he explained that Gradle Enterprise is like a Swiss Army knife for developers' productivity.
#Scala @scala_lang
Mirco Dotta retweeted
Super happy to see this press release today: . gradle.com/press-media/gradl…. Well done @mircodotta and @jaguarul!
Mirco Dotta retweeted
For everyone who has asked about the Safer Exceptions paper, here's a link that should work: infoscience.epfl.ch/record/2…
It seems there is a way to get open access to ACM papers but you have to go through some other link first.
Mirco Dotta retweeted
Thanks to all 163 people who tuned in to watch the premiere of "Let's speak about Scala 3" - already looking forward to sharing the next ones 🥳
For those who couldn't make it for the live streaming, it's available here:
youtu.be/j-H6LSv2z_8
Mirco Dotta retweeted
Hydra 2.3.2 is out. Get it while it's still hot! 🔥
Featuring #Scala 2.13.5 support!📢👇
Upgrade to Hydra now and rock your #Scala compile times!🤘🎸
Scala 2.13.5 is here, with:
* Scala 3.0.0-RC1 support
* JDK 16 and 17 support
* Safer pattern matching
And more!
Thank you to everyone who contributed! ✨
github.com/scala/scala/relea…
Mirco Dotta retweeted
This is mind-blowingly clever work by @jartine. A single binary that runs natively on Windows/Linux/Mac/*BSD without any VM, implementing a web server that serves the content of a zip archive stored in the binary itself! 🤯🤯👏👏 justine.lol/redbean/index.ht…
Mirco Dotta retweeted
We are delighted to announce the first release candidate of the stable version of Scala 3 – Scala 3.0.0-RC1. This version further polishes and stabilizes the language – read more in the blog article: dotty.epfl.ch/blog/2021/02/1…
Mirco Dotta retweeted
The Hydra IntelliJ #Scala plug-in for IntelliJ IDEA 2020.3 is out. Download it from the marketplace!
What’s new? 🧐
Leverage parallel, intra(!) module, #Scala compilation together with compile-time monitoring 🤓
All of the above, on top of these👇amazing new features!
IntelliJ Scala Plugin 2020.3 Is Out!
• Parallel Compilation
• Compilation Charts
• Enhanced Package Prefixes
• MUnit Support
• Scala 3 Improvements
• And more!
blog.jetbrains.com/scala/202…
Mirco Dotta retweeted
Giving @triple_quote a try. So far - everything is compiling...
Mirco Dotta retweeted
Hydra 2.3.1 was just released! 🤩
The highlight is #Scala 2.12.13 support!👇😍
Upgrade to Hydra now and rock your #Scala compile times! 🤘
Scala 2.12.13 is here! It includes support for configurable warnings (`-Wconf` and `nowarn`), backported from 2.13. A few other changes and fixes are included. Release notes: github.com/scala/scala/relea…
Mirco Dotta retweeted
Hydra 2.3.0 featuring #sbt 1.4 support was just released. Get it while it's still hot! 🎄🎅
👉docs.triplequote.com/trial/s…
You’re unable to view this Post because this account owner limits who can view their Posts. Learn more
Mirco Dotta retweeted
Hydra 2.2.5 was just released! 😍
Time to upgrade and profit from these great improvements 👇
Scala 2.13.4 is here, with:
* Improved exhaustivity checking in the pattern matcher
* Experimental support for consuming some libraries built by Scala 3
* Default global ExecutionContext changed
* and more...
Thank you to everyone who contributed! ✨
github.com/scala/scala/relea…




















