Skip to content

Instantly share code, notes, and snippets.

@schrepfler
schrepfler / switchMap.scala
Created August 6, 2024 08:05 — forked from mpilquist/switchMap.scala
FS2 version of switchMap
def switchMap[F[_]: Async, A, B](f: A => Stream[F, B]): Pipe[F, A, B] = {
def go(
outer: ScopedFuture[F, Pull[F, Nothing, (NonEmptyChunk[A], Handle[F, A])]],
inner: ScopedFuture[F, Pull[F, Nothing, (NonEmptyChunk[B], Handle[F, B])]]
): Pull[F, B, Nothing] = {
(outer race inner).pull.flatMap {
case Left(outer) =>
outer.optional.flatMap {
case None =>
inner.pull.flatMap(identity).flatMap { case (hd, tl) => Pull.output(hd) >> tl.echo }
@schrepfler
schrepfler / cms list.txt
Last active July 3, 2021 09:34
List of CMS-es
https://www.storyblok.com/
https://www.scalatest.org/
https://github.com/lihaoyi/utest
https://github.com/propensive/probably
https://zio.dev/docs/usecases/usecases_testing
https://etorreborre.github.io/specs2/
https://github.com/wvlet/airframe/tree/master/airspec
https://scalameta.org/munit/blog/2020/02/01/hello-world.html
{
"basics": {
"name": "Srdan Srepfler",
"label": "VP of Engineering, Architect, VP QA, Tech Lead, Dev Lead",
"summary": "My primary professional focus is rapidly growing teams working within a Product driven framework. Spent more than a decade of developing bespoke backend JVM and Node applications with ephasis on scalability and resilience but also business flexiblity. Freshly completed a crash course on boostraping a company fully on the cloud (AWS and Oracle Cloud) on top of Clound Native technology stack. From analysis and design to the development of EDA and SOA architectures, their integration with external systems, security and an emphasis on software delivery using Agile methodologies. \r\nSpecialties: Java, Scala, C#, JavaScript, CQRS, Event Sourcing, Distributed Systems, UML, XML, SOA, REST, JEE, maven, sbt, HTML, CSS, Jenkins CI, Agile, Architecture, Spring Framework, Spring Integration, Spring Security, JPA, Spring JPA, GWT, SQL, Cassandra, PostgreSQL, Kafka, Kubernetes, Payments.",
@schrepfler
schrepfler / attributes.rb
Created January 12, 2020 20:20 — forked from lizthegrey/attributes.rb
Hardening SSH with 2fa
default['sshd']['sshd_config']['AuthenticationMethods'] = 'publickey,keyboard-interactive:pam'
default['sshd']['sshd_config']['ChallengeResponseAuthentication'] = 'yes'
default['sshd']['sshd_config']['PasswordAuthentication'] = 'no'
@schrepfler
schrepfler / KafkaContainer.scala
Last active June 15, 2019 22:25
Scala testcontainers Kafka wrapper
import com.dimafeng.testcontainers.SingleContainer
import org.testcontainers.containers.{KafkaContainer => OTCKafkaContainer}
import org.testcontainers.containers.{GenericContainer => OTCGenericContainer}
class KafkaContainer(confluentPlatformVersion: Option[String] = None,
externalZookeeper: Option[String] = None) extends SingleContainer[OTCGenericContainer[_]] {
type OTCContainer = OTCGenericContainer[T] forSome {type T <: OTCKafkaContainer}
var kafkaContainer: OTCKafkaContainer = null
@schrepfler
schrepfler / CassandraContainer.scala
Last active June 16, 2019 00:29
Scala testcontainers Cassandra wrapper
import com.dimafeng.testcontainers.SingleContainer
import org.testcontainers.containers.{CassandraContainer => OTCCassandraContainer, GenericContainer => OTCGenericContainer}
class CassandraContainer(dockerImageNameOverride: Option[String] = None,
configurationOverride: Option[String] = None,
initScript: Option[String] = None,
jmxReporting: Boolean = false) extends SingleContainer[OTCCassandraContainer[_]] {
type OTCContainer = OTCGenericContainer[T] forSome {type T <: OTCCassandraContainer[T]}
@schrepfler
schrepfler / literate programming environments.txt
Last active February 5, 2021 14:33
literate programming environments and links
Wolfram Mathematica
https://www.wolfram.com/mathematica
Matlab
https://www.mathworks.com/products/matlab.html
Observable
https://observablehq.com/
Iodide
@schrepfler
schrepfler / contoso.yml
Created November 21, 2018 19:16
k8s lagom akka cluster descriptor yml
apiVersion: "apps/v1beta2"
kind: Deployment
metadata:
name: "contoso-v1-4-snapshot"
labels:
appName: "contoso"
appNameVersion: "contoso-v1-4-snapshot"
spec:
replicas: 3
selector:
object Client extends App with CirceSupport {
implicit val system = ActorSystem("client")
import system.dispatcher
// Create the 'greeter' actor
val greeter = system.actorOf(Props[Greeter], "greeter")