Skip to content

Instantly share code, notes, and snippets.

View kiambogo's full-sized avatar

Christopher Poenaru kiambogo

View GitHub Profile
@kiambogo
kiambogo / spacemacs-keybindings
Last active April 12, 2018 21:21 — forked from adham90/spacemacs-keybindings
spacemacs keybindings that i need to learn
SPC s c remove highlight
SPC T s list themes
SPC w b focus mini-buffer
SPC z x font size minor mode
**** Files manipulations key bindings
Files manipulation commands (start with ~f~):
| Key Binding | Description |
|-------------+----------------------------------------------------------------|
@kiambogo
kiambogo / groupBy.scala
Last active September 22, 2020 00:01
FS2 1.0.0 groupBy
import fs2.concurrent.Queue
import cats.implicits._
import cats.effect.Concurrent
import cats.effect.concurrent.Ref
def groupBy[F[_], A, K](selector: A => F[K])(implicit F: Concurrent[F]): Pipe[F, A, (K, Stream[F, A])] = {
in =>
Stream.eval(Ref.of[F, Map[K, Queue[F, Option[A]]]](Map.empty)).flatMap { st =>
val cleanup = {
import alleycats.std.all._
import cats.effect._
import scala.concurrent.ExecutionContext
import java.nio.file.Paths
import io.circe.generic.auto._
import io.circe.fs2._
implicit val ec: ExecutionContext = ExecutionContext.global
implicit val ioContextShift: ContextShift[IO] = IO.contextShift(ec)
case class Repo(repo: String, stars: Int)
@kiambogo
kiambogo / gist:b696fe441946df49895bba07cfb2dda5
Last active July 10, 2019 04:36
fs2 ErrorLoggingStream
import fs2.{Stream, Pipe}
import cats.effect.{Sync, IO}
trait Logger[F[_]] {
def infoF(msg: String)(implicit F: Sync[F]): F[Unit]
def info(msg: String): Unit
def errorF(msg: String, e: Throwable)(implicit F: Sync[F]): F[Unit]
}
class ConsoleLogger[F[_]] extends Logger[F] {
@kiambogo
kiambogo / chunkN
Created November 26, 2018 03:11
fs2 chunkN vs groupWithin
import $ivy.`co.fs2::fs2-core:1.0.0`
import fs2.{Stream, Pipe}
import fs2.concurrent.Queue
import cats.effect.{IO, ContextShift, Timer, Concurrent}
import scala.util.Random
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext
import $ivy.`org.systemfw::upperbound:0.2.0-M1`
import fs2._, concurrent._
import upperbound._
import cats.effect.{IO, ContextShift, Timer}
import upperbound.syntax.rate._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext
implicit val ec: ExecutionContext = ExecutionContext.global
@kiambogo
kiambogo / kcl_throughput.scala
Last active December 21, 2018 16:02
fs2-aws KCL throughput
import $ivy.`io.github.dmateusp::fs2-aws:0.26.4`
import fs2._
import cats.implicits._
import cats.effect.{IO, ContextShift, Timer}
import cats.effect.concurrent.Ref
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext
import fs2.aws.kinesis.kcl._
### Keybase proof
I hereby claim:
* I am kiambogo on github.
* I am kiambogo (https://keybase.io/kiambogo) on keybase.
* I have a public key whose fingerprint is 2AA8 7B49 D5DB 54FD 584F 1643 456A 1530 1A39 4B49
To claim this, I am signing this object:
@kiambogo
kiambogo / stack.go
Last active May 7, 2021 04:50
Go Stack
package main
import "log"
type Node struct {
val int
next *Node
}
type Stack struct {
@kiambogo
kiambogo / queue.go
Created May 7, 2021 04:59
Go Queue
package main
import "log"
type Node struct {
val int
next *Node
}
type Queue struct {