Skip to content

Instantly share code, notes, and snippets.

View spamegg1's full-sized avatar
:octocat:
perpetually dissatisfied

spamegg spamegg1

:octocat:
perpetually dissatisfied
View GitHub Profile

Understanding Comparative Benchmarks

I'm going to do something that I don't normally do, which is to say I'm going to talk about comparative benchmarks. In general, I try to confine performance discussion to absolute metrics as much as possible, or comparisons to other well-defined neutral reference points. This is precisely why Cats Effect's readme mentions a comparison to a fixed thread pool, rather doing comparisons with other asynchronous runtimes like Akka or ZIO. Comparisons in general devolve very quickly into emotional marketing.

But, just once, today we're going to talk about the emotional marketing. In particular, we're going to look at Cats Effect 3 and ZIO 2. Now, for context, as of this writing ZIO 2 has released their first milestone; they have not released a final 2.0 version. This implies straight off the bat that we're comparing apples to oranges a bit, since Cats Effect 3 has been out and in production for months. However, there has been a post going around which cites various compar

@amaalali
amaalali / Scala .gitignore
Last active November 30, 2023 08:25
My standard .gitignore for scala projects
bin/
# Scala/SBT specific
project/
target/
build/
# Scala-Cli build folder
.scala-build/
@francescofrontera
francescofrontera / Op.scala
Last active November 11, 2023 05:22
Apply Aux pattern through Shapeless
import shapeless._, shapeless.ops.hlist._, shapeless.labelled.FieldType
trait Op[A] extends DepFn1[A]
trait LowPriority {
implicit def identity[A]: Op.Aux[A, A] = Op.createInstance(i => i)
}
object Op extends LowPriority {
type Aux[A, OUT0] = Op[A] { type Out = OUT0 }
@olets
olets / zsh-plugin-manager-plugin-installation-procedures.md
Last active July 4, 2025 11:54
zsh plugin manager cross-reference

Instructions for installing zsh plugins, for a variety of plugin managers

@a6y3ap
a6y3ap / JosephusProblem.java
Last active February 2, 2025 15:35
Josephus Problem using Bitwise Operation (Java)
/*
* Solution of Josephus Problem using Bitwise Operation
* Shifting the most-significant set bit of n to the
* least significant bit will return the safe position.
*
* ====================== EXPLANATION ======================
*
* n (41) the number of people standing in the circle
* n = 101001
*
#![allow(unused_imports)]
extern crate regex;
#[macro_use]
extern crate lazy_static;
extern crate itertools;
extern crate pbr;
extern crate colored;
use std::collections::VecDeque;
use itertools::Itertools;
use pbr::ProgressBar;
@ephemient
ephemient / Advent of Code 2018.md
Last active February 20, 2025 19:51
my answers in Python
@jdegoes
jdegoes / fpmax.scala
Created July 13, 2018 03:18
FP to the Max — Code Examples
package fpmax
import scala.util.Try
import scala.io.StdIn.readLine
object App0 {
def main: Unit = {
println("What is your name?")
val name = readLine()
@lregnier
lregnier / scala-with-style-by-martin-odersky.md
Last active March 16, 2023 21:41
Scala with Style, by Martin Odersky
@lattner
lattner / TaskConcurrencyManifesto.md
Last active July 18, 2025 12:29
Swift Concurrency Manifesto