Skip to content

Instantly share code, notes, and snippets.

View kubukoz's full-sized avatar
😱
I might take a week to respond. Or a month.

Jakub Kozłowski kubukoz

😱
I might take a week to respond. Or a month.
View GitHub Profile
@kubukoz
kubukoz / Demo.scala
Created April 19, 2023 13:50
Using `getAndDiscreteUpdates` and `mapN` and it still works
//> using lib "co.fs2::fs2-core:3.7.0-RC4"
import cats.effect.IOApp
import cats.effect.IO
import scala.concurrent.duration._
import cats.effect.std.UUIDGen
import cats.implicits._
import scala.util.Random
import fs2.concurrent.Signal
object Demo extends IOApp.Simple {
@kubukoz
kubukoz / fs2zip.scala
Created January 22, 2023 04:03
Example of using fs2 + ZipInputStream to open a zipfile in Scala. Probably buggy and maybe leaky.
//> using scala "2.13.10"
//> using lib "co.fs2::fs2-io:3.5.0"
//> using option "-Wunused:imports"
import cats.effect.IO
import cats.effect.IOApp
import cats.effect.kernel.Resource
import cats.implicits._
import fs2.io.file.Files
import fs2.io.file.Path
https://www.usenix.org/legacy/events/hotos07/tech/full_papers/dolstra/dolstra.pdf
https://edolstra.github.io/pubs/phd-thesis.pdf
https://nixos.org/manual/nix/stable/
https://nixos.org/guides/nix-pills/index.html
https://nix.dev/
https://wiki.nikitavoloboev.xyz/package-managers/nix
https://edolstra.github.io/pubs/nixos-jfp-final.pdf
https://nixos.org/docs/SCR-2005-091.pdf
https://medium.com/@MrJamesFisher/nix-by-example-a0063a1a4c55
https://scrive.github.io/nix-workshop/01-getting-started/01-introduction.html
@kubukoz
kubukoz / demo.scala
Created December 15, 2022 01:25
Smithy's NeighborProvider and unit shapes
//> using lib "software.amazon.smithy:smithy-model:1.26.4"
//> using scala "2.13.10"
import software.amazon.smithy.model.Model
import software.amazon.smithy.model.neighbor.NeighborProvider
import software.amazon.smithy.model.shapes.ShapeId
import scala.jdk.CollectionConverters._
object demo extends App {
@kubukoz
kubukoz / main.scala
Created December 14, 2022 21:45
IdRefVisitor used in a neighbor provider
//> using lib "software.amazon.smithy:smithy-model:1.26.4"
//> using lib "com.disneystreaming.smithy4s:smithy4s-protocol:0.17.1"
//> using scala "2.13.10"
import software.amazon.smithy.model.Model
import software.amazon.smithy.model.neighbor.Walker
import software.amazon.smithy.model.shapes.ShapeId
import scala.jdk.CollectionConverters._
import software.amazon.smithy.model.neighbor.NeighborProvider
import software.amazon.smithy.model.neighbor.Relationship
import software.amazon.smithy.model.shapes.Shape
@kubukoz
kubukoz / advent-type-level.scala
Created December 4, 2022 02:49
Scala's type system solution of Advent of Code 2022 day 1 part 1
import scala.compiletime.ops.int.{>, +, *}
import scala.compiletime.ops.string.{Length, Substring, CharAt}
import Tuple.Map
object StringOps {
type IndexOfRec[Haystack <: String, Needle <: String, I <: Int] =
((I + Length[Needle]) > Length[Haystack]) match {
case true => -1
case false =>
Substring[Haystack, I, I + Length[Needle]] match {
@kubukoz
kubukoz / cursed.scala
Created November 9, 2022 00:17
git conflicts parsing as Scala
object main extends App {
object <<<<<<< {
def HEAD(s: String) = this
}
implicit class StringOps(s: String) {
def =======(i: Int) = s
def >>>>>>>(i: Int) = i
}
//> using scala "3.1.2"
//> using plugin "org.polyvariant:::better-tostring:0.3.15"
//> using lib "com.monovore::decline-effect:2.3.0"
//> using lib "org.typelevel::cats-effect:3.3.14"
//> using lib "co.fs2::fs2-io:3.2.10"
import cats.effect.IOApp
import cats.effect.IO
import com.monovore.decline.effect.CommandIOApp
import cats.effect.ExitCode
error: can't decompile /Users/kubukoz/dev/scala-scripts/.bloop/root/bloop-bsp-clients-classes/classes-Metals-nKCKEcyTSeqo2gMsi6lw1w==/META-INF/semanticdb/src/main/scala/com/kubukoz/ForceActivate.scala.semanticdb
java.lang.StackOverflowError
at scala.runtime.Statics.anyHash(Statics.java:127)
at scala.collection.mutable.HashMap.get(HashMap.scala:78)
at scala.meta.internal.metap.SymbolInformationPrinter$InfoNotes.visit(SymbolInformationPrinter.scala:377)
at scala.meta.internal.metap.SymbolInformationPrinter$InfoPrinter.pprint(SymbolInformationPrinter.scala:267)
at scala.meta.internal.metap.SymbolInformationPrinter$InfoPrinter.pprintRef(SymbolInformationPrinter.scala:254)
at scala.meta.internal.metap.SymbolInformationPrinter$InfoPrinter.prefix$1(SymbolInformationPrinter.scala:187)
at scala.meta.internal.metap.SymbolInformationPrinter$InfoPrinter.normal$1(SymbolInformationPrinter.scala:247)
at scala.meta.internal.metap.SymbolInformationPrinter$InfoPrinter.$anonfun$pprint$25(SymbolInformationPrinter.scala:2
//> using scala "3.1.1"
//> using option "-Xfatal-warnings"
enum Foo { case Bar, Baz }
val x: Foo = ???
val y = x match { case Foo.Bar => 42 }