Skip to content

Instantly share code, notes, and snippets.

View MateuszKubuszok's full-sized avatar
🏠
Vacationing from OSS at an actual work

Mateusz Kubuszok MateuszKubuszok

🏠
Vacationing from OSS at an actual work
View GitHub Profile
@MateuszKubuszok
MateuszKubuszok / github-badge-cache-buster.sh
Last active April 15, 2024 10:49
Basically, a fork of https://github.com/sbts/github-badge-cache-buster bacause original stopped working on my setup
#!/bin/bash
defaultURL='https://github.com/ledgersmb/LedgerSMB'
defaultFILE=''
HELP() {
cat <<-EOF
usage: github-badge-cache-buster.sh [ -h | --help | [ repoURL | "auto" [ badgeFile ] ] ]
repoURL defaults to '$defaultURL'
@MateuszKubuszok
MateuszKubuszok / automatic-optional.md
Last active August 7, 2023 00:39
Chimney implementation ideas

Separate automatic derivation from semiautomatic

Directly solves:

General idea of the solution

Currently Chimney attempts to derive as much as possible with a single expression. It inline results on Scala 2 it uses an approach where when implicit is summoned it is expected that only user-provided implicit would be used. This is done because:

type ~>[F[_], G[_]] = [A] => F[A] => G[A]
final case class <~>[F[_], G[_]](to: F ~> G, from: G ~> F):
val mapAsTo: [A, B] => (G[A] => G[B]) => (F[A] => F[B]) =
[A, B] => (f: (G[A] => G[B])) => to[A].andThen(f).andThen(from[B])
val mapAsFrom: [A, B] => (F[A] => F[B]) => (G[A] => G[B]) =
[A, B] => (f: (F[A] => F[B])) => from[A].andThen(f).andThen(to[B])
extension [F[_], A](fa: F[A])
transparent inline def mapAs[G[_]]: [B] => (G[A] => G[B]) => F[B] =
@MateuszKubuszok
MateuszKubuszok / reinstall.sh
Last active January 7, 2022 09:47
Migrate brew from Intel to M1 after transfer
#!/bin/bash
brew bundle dump --file Brewfile
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew bundle install
@MateuszKubuszok
MateuszKubuszok / TypedSliding.scala
Created March 15, 2021 16:03
Safe sliding in Scala
trait TypedSlide[F[_], I <: Int] {
type Out[A]
def sliding[A](fa: F[A]): F[Out[A]]
}
object TypedSlide {
type Arbitrary
class Helper[F[_], I <: Int] {
def apply[OOut[_]](f: F[Arbitrary] => F[OOut[Arbitrary]]) = new TypedSlide[F, I] {
type Out[A] = OOut[A]
@MateuszKubuszok
MateuszKubuszok / algebras.scala
Last active March 2, 2021 14:34
Algebras implementation which isn't based on nested type hierarchy
import scala.language.reflectiveCalls
type Nullary[A] = Unit
type Unary[A] = A
type Binary[A] = (A, A)
trait Algebra {
type Set
type Operation[F[_]] = F[Set] => Set
@MateuszKubuszok
MateuszKubuszok / speeches.md
Last active May 16, 2023 14:12
My public speeches, presentations and and stuff

My public speeches

Actually, more like hall of shame because I cannot watch/listen to myself without cringe, but in this time and age everyone has to be a salesman. Well, not really, but it kind of help with self-development and getting confidence, so whatever. Remember kids! You don't have to be competent to be a public speaker! (Or write a book. Or blog. Or OSS. Or get a job.)

Optimizing Heavy Web Service presentation

@MateuszKubuszok
MateuszKubuszok / FList.scala
Created October 27, 2020 16:06
List of Functions
sealed trait FList[F[_]] extends Product with Serializable
object FList {
final case class Last[F[_], A, B](f: A => F[B]) extends FList[F]
final case class Cons[F[_], A, B, Tail <: FList[F]](f: A => F[B], tail: Tail) extends FList[F]
}
implicit class FunOps[F[_], A, B](f: A => F[B]) extends AnyVal {
def toFList: FList.One[F, A, B] = FList.One(f)
@MateuszKubuszok
MateuszKubuszok / keybase.md
Created October 12, 2020 10:45
keybase.md

Keybase proof

I hereby claim:

  • I am mateuszkubuszok on github.
  • I am mateuszkubuszok (https://keybase.io/mateuszkubuszok) on keybase.
  • I have a public key ASDad2uAPXJRFF-i7B7nKeQixgIFu5bVsXJLqD7jJGRg0Ao

To claim this, I am signing this object:

@MateuszKubuszok
MateuszKubuszok / flame-graph-cpu-reverse.svg
Created August 31, 2020 13:26
Flame graphs for FizzBuzzBenchmark - Things that you need to know about JVM (that matter in Scala)
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.