Skip to content

Instantly share code, notes, and snippets.

View russwyte's full-sized avatar

Russ White russwyte

View GitHub Profile
import akka.NotUsed
import akka.actor.ActorSystem
import akka.stream._
import akka.stream.scaladsl._
import scala.concurrent.Future
import scala.concurrent.duration._
object Example extends App {
implicit val system = ActorSystem("QuickStart")
@russwyte
russwyte / Advent19.scala
Created December 19, 2017 19:41
AoC Day 19
package advent
class Advent19 extends Advent {
type Grid = Array[Array[Char]]
case class Position(x: Int, y: Int)
sealed trait Move {
def apply(position: Position): Position
}
case object Up extends Move {
def apply(p: Position): Position = p.copy(y = p.y - 1)
@russwyte
russwyte / TodoApp.scala
Created January 19, 2019 19:09
react4s Todo with Diode
package todo
import com.github.ahnfelt.react4s._
import org.scalajs.dom.window
import todo.TodoCircuit._
import scala.scalajs.js.annotation._
@JSExportTopLevel("TodoApp")
object TodoApp {
@russwyte
russwyte / BigAdaptiveSchedulerExample.scala
Created May 27, 2022 16:44
Trying to use a custom blocking executor
import zio.*
import zio.Executor
import java.util.concurrent.atomic.AtomicInteger
import java.util.concurrent._
object CustomizedRuntimeZIOApp extends ZIOAppDefault {
class NamedThreadFactory(name: String, daemon: Boolean)
extends ThreadFactory {
private val parentGroup = Thread.currentThread.getThreadGroup
@russwyte
russwyte / Example.scala
Last active May 27, 2022 23:11
Semaphore Fun
import zio.*
import zio.Executor
import zio.Console.printLine
object CustomizedRuntimeZIOApp extends ZIOAppDefault:
val blockingTask = (n: Int) =>
for {
_ <- printLine(s"start potentially long API call or something for $n")
r <- Random.nextIntBetween(500, 1000)
_ <- ZIO.succeed(Thread.sleep(r))
package service.model
import scala.collection.mutable.BitSet
import scala.util.hashing.MurmurHash3
import zio.*
case class HashResult(base: Long, seed: Int)
/** Represents a slot in the bloom filter
*