Skip to content

Instantly share code, notes, and snippets.

View pshirshov's full-sized avatar
😹

Paul S. pshirshov

😹
View GitHub Profile
@pshirshov
pshirshov / ht.py
Created May 26, 2015 12:13 — forked from guenter/http.py
import sys
port = 8080
if sys.version_info.major == 3:
import http.server
import socketserver
handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(("",port), handler)
elif sys.version_info.major == 2:
@pshirshov
pshirshov / ConfigUtils.scala
Last active November 18, 2015 18:32
OSGi complex config
// flat <-> hierarchical conversions
import java.util
import java.util.regex.Pattern
import scala.collection.JavaConversions._
import com.typesafe.config.{Config, ConfigFactory, ConfigList, ConfigObject, ConfigUtil}
import com.typesafe.scalalogging.StrictLogging
@pshirshov
pshirshov / DNF.scala
Last active October 13, 2017 10:10
Optimizing DNF converter
import scala.reflect.ClassTag
trait Expr
case class Not(expr: Expr) extends Expr {
override def toString = s"!$expr"
}
case class Value[T](t: T) extends Expr {
override def toString = s"$t"
import com.typesafe.config.{Config, ConfigFactory}
import scala.language.{existentials, higherKinds, implicitConversions}
trait Monoid[T] {
def mapply(a: T, b: T): T
def mzero: T
}
@pshirshov
pshirshov / hlist.scala
Last active October 18, 2017 16:27
HLIst and implicit based specializations
// hlist definition
sealed trait HList
case class HPair[A, B <: HList](head: A, tail: B) extends HList {
override def toString = Seq(head, tail).mkString(" ::: ")
}
case object HNil extends HList
// instantiation
-server
-ea
-noverify
-Xms1024m
-Xmx2048m
-XX:+UseG1GC
-XX:-UseParNewGC
-XX:-UseConcMarkSweepGC
-XX:ReservedCodeCacheSize=240m
-XX:+OmitStackTraceInFastThrow
@pshirshov
pshirshov / PolymorphicCirce.scala
Created March 3, 2018 00:39
circe with polymorphism
import OT.{OT1, OT2}
import _root_.io.circe._
import _root_.io.circe.generic.semiauto._
import _root_.io.circe.syntax._
import io.circe.parser._
//import _root_.io.circe.java8.time._
decode[List[Int]](List(123, 456).asJson.noSpaces)
sealed trait ST
@pshirshov
pshirshov / Pipeline.scala
Last active March 12, 2018 14:27
A dirty example of monadic value processing pipeline
import cats.Foldable
import shapeless.ops.product._
import shapeless.ops.tuple._
import cats._
import cats.implicits._
trait Pipeline[+A] {
@inline def map[B](f: A => B): Pipeline[B]
@inline def flatMap[B](f: A => Pipeline[B]): Pipeline[B]
@pshirshov
pshirshov / CatsAbstractMonadicResult.scala
Created March 14, 2018 16:28
A simple example explaning how to abstract on result container moand type
import cats._
import cats.implicits._
trait Service[R[_]] {
type Result[T] = R[T]
def computeValue(): Result[Int]
}
class ServiceImpl[R[_] : Monad : Foldable]
@pshirshov
pshirshov / GenericCirce.scala
Created March 16, 2018 16:52
Circe with generic types
import io.circe._
import io.circe.parser._
import io.circe.syntax._
import io.circe.generic.decoding._
import io.circe.generic.encoding._
import io.circe.generic.semiauto._
case class GenericModel[Payload](payload: Payload, value: String)
case class TestPayload()