Skip to content

Instantly share code, notes, and snippets.

View aaabramov's full-sized avatar
👨‍💻
Focusing

Andrii Abramov aaabramov

👨‍💻
Focusing
View GitHub Profile
@aaabramov
aaabramov / ScalaDslAttempts
Created February 11, 2018 13:16
Attempt to create Anti Fraud DSL based on rules
package example.dsl
import scala.language.implicitConversions
case class Card(number: String, firstName: String, lastName: String)
case class User(username: String, email: String)
case class AntiFraudInput(card: Card, user: User, amount: Double)
@aaabramov
aaabramov / SignTest.scala
Last active March 16, 2018 09:05
Implicit parameter in traits
trait PrettyPrinted[A] extends (A => String)
object PrettyPrinted {
def apply[A](f: A => String): PrettyPrinted[A] = f(_)
}
trait Printable[A] {
implicit def printer: PrettyPrinted[A]
}
@aaabramov
aaabramov / Attempt1.conf
Last active February 17, 2019 16:17
Logstash PATCH behavior
input {
# ...
}
output {
elasticsearch {
index => "transactions"
document_id => "%{id}"
action => update
hosts => "es"
}
@aaabramov
aaabramov / bug.scala
Last active December 21, 2020 12:05
Mongo Integer ClassCastException issue
package the
import org.bson.codecs.configuration.CodecRegistries.fromRegistries
import org.mongodb.scala.MongoClient.DEFAULT_CODEC_REGISTRY
import org.mongodb.scala.bson.BsonInt64
import org.mongodb.scala.{Document, MongoClient}
import scala.concurrent.Await
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._
@aaabramov
aaabramov / solution.scala
Created January 12, 2021 12:26
akka-http validate path param with reusable directive
// https://stackoverflow.com/questions/65669069/akka-http-validate-path-segment
import akka.http.scaladsl.model.Uri.Path
import akka.http.scaladsl.server.{Directive, Rejection}
import com.exabeam.scheduler.models.AppErrors
import org.bson.types.ObjectId
final case class MalformedPathParamRejection(parameterName: String, errorMsg: String) extends Rejection
object ValidatedObjectId {
@aaabramov
aaabramov / build.sbt
Last active January 13, 2021 11:44
SBT bug for scala 2.12.13
lazy val myProjectClient = (project in file("my-project-client"))
.settings(name := "myProjectClient")
.settings(commonSettings)
.enablePlugins(CustomPlugin)
lazy val service = (project in file("service"))
.settings(name := "myProjectSvc")
.settings(commonSettings)
.settings(serviceSettings)
.dependsOn(myProjectClient)
@aaabramov
aaabramov / code.scala
Last active April 7, 2021 15:47
Scala 0.asInstanceOf[B]
// Code example for https://stackoverflow.com/q/66989225/5091346
package com.github.aaabramov
import java.time.LocalDateTime
object Test extends App {
trait TestTrait[A] {
@aaabramov
aaabramov / install.sh
Last active January 13, 2024 01:26
Installing zsh + oh-my-zsh on Amazon EC2 Amazon Linux 2 AMI. (Prepared in the scope of posting https://aaabramov.medium.com/installing-zsh-oh-my-zsh-on-amazon-ec2-amazon-linux-2-ami-88b5fc83109)
sudo yum update
# Installing ZSH
sudo yum -y install zsh
# Check ZSH has been installed
zsh --version
# Install "util-linux-user" because "chsh" is not available by default
# See https://superuser.com/a/1389273/599050
@aaabramov
aaabramov / Dockerfile
Last active September 29, 2022 11:46
NestJS Docker packaging
# Building layer
FROM node:16-alpine as development
# Optional NPM automation (auth) token build argument
# ARG NPM_TOKEN
# Optionally authenticate NPM registry
# RUN npm set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
WORKDIR /app
@aaabramov
aaabramov / UTF-8 table (box) symbols.txt
Last active April 29, 2024 11:47
Drawing tables (boxes) using UTF-8 symbols