Skip to content

Instantly share code, notes, and snippets.

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")
@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:
@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 / 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 / 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 / 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'
{
"basics": {
"name": "Srdan Srepfler",
"label": "VP of Engineering",
"summary": "My primary professional focus is rapidly growing teams working within Product driven frameworks. Spent more than a decade of developing bespoke JVM backends with emphasis on scalability, resilience and business flexiblity. Boostrapped a startup Engineering Department and it's platform in the cloud (AWS and Oracle Cloud) and Clound Native technologies. 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, 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, SQL, Cassandra, PostgreSQL, Kafka, Kubernetes.",
"website": "http://schrepfler.blogspot.com/",
"email": "[email protected]",
"phone": "+385 91 2
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
@schrepfler
schrepfler / cms list.txt
Last active July 3, 2021 09:34
List of CMS-es
https://www.storyblok.com/
@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 }