Mirco Dotta (@mircodotta) profile picture

@triple_quote co-founder - https://xitter.cf/t.co/3qqgS9Mv65 Rock your #Scala compile time 🤘

Switzerland
Joined August 2008
Photo by Mirco Dotta (@mircodotta)Photo by Mirco Dotta (@mircodotta)Photo by Mirco Dotta (@mircodotta)Photo by Mirco Dotta (@mircodotta)Photo by Mirco Dotta (@mircodotta)Photo by Mirco Dotta (@mircodotta)Photo by Mirco Dotta (@mircodotta)Photo by Mirco Dotta (@mircodotta)
Come at the @gradle booth at @scaladays for breakfast! Freshly baked croissants 🥐 and Swiss chocolate 🍫, all paired with tips and tricks to improve your #sbt #Gradle #Maven #npm #Python builds!
1
2
11
1,520
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…
2
152
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…
3
24
1,189
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
7
491
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! 🫳🐕‍🦺
24
228
10
1,544
266,512
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!
1
243
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
5
11
1,102
Mirco Dotta retweeted
Scala 3 is so damn good.
3
18
2
140
23,184
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.
15
3
105
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
22
93
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!🤘🎸
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…
8
100
8
351
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…
13
214
14
552
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!
2
3
Mirco Dotta retweeted
Giving @triple_quote a try. So far - everything is compiling...
1
2
1
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! 🤘
1
2
1
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
2
2
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…
4
3