Skip to content

Instantly share code, notes, and snippets.

View shishkin's full-sized avatar

Sergey Shishkin shishkin

View GitHub Profile
{
"//": {
"metadata": {
"backend": "local",
"stackName": "test",
"version": "0.14.3"
},
"outputs": {
"test": {
"test": "test"
@shishkin
shishkin / Dockerfile
Last active December 12, 2016 15:47
Docker args expansion
FROM busybox
ENTRYPOINT ["sh", "-c", "echo $0 $@", "hello"]
CMD ["world"]
@shishkin
shishkin / package.scala
Created December 1, 2016 03:03
Sangria scalar type derived from Circe encoder and decoder
package org.shishkin.sangria
import cats.syntax.either._
import io.circe._
import sangria.execution.Resolver
import sangria.marshalling.circe._
import sangria.schema._
import sangria.validation.Violation
import scala.language.implicitConversions

Keybase proof

I hereby claim:

  • I am shishkin on github.
  • I am sshishkin (https://keybase.io/sshishkin) on keybase.
  • I have a public key whose fingerprint is E619 D103 BAB7 F1CF 5CD5 B7BA B9C1 5954 C4E8 AF2A

To claim this, I am signing this object:

@shishkin
shishkin / Meetup.scala
Created October 6, 2015 15:57
Example code for the Singapore scala meetup
import scala.annotation.tailrec
def sum(nums: Seq[Int]) = fold(0)(nums, _ + _)
def filterEven(nums: Seq[Int]): Seq[Int] = filter(nums, _ % 2 == 0)
def filter(nums: Seq[Int], predicate: Int => Boolean): Seq[Int] =
fold(List[Int]())(nums, (l, i) => if (predicate(i)) l :+ i else l)
def square(nums: Seq[Int]): Seq[Int] = map(nums, i => i * i)
@shishkin
shishkin / XmlTest.scala
Created March 30, 2015 16:56
Combinatorial XML Transformations in Scala
import org.scalatest.{Matchers, Spec}
import scala.xml._
class XmlTest extends Spec with Matchers {
def `Set text inside XML element`() = {
val doc =
<root>
@shishkin
shishkin / pom.xml
Created March 22, 2015 12:57
Maven template for Scala+ScalaTest+ScalaCheck
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.shishkin</groupId>
<artifactId>testing-examples</artifactId>
<version>1.0-SNAPSHOT</version>
<name>${project.artifactId}</name>
<prerequisites>
@shishkin
shishkin / SpringContextTests.scala
Created November 27, 2014 17:30
Spring annotation-based configuration with ScalaTest
package samples
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest._
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation._
import org.springframework.stereotype.Service
import org.springframework.test.context.support.AnnotationConfigContextLoader
import org.springframework.test.context.{ActiveProfiles, ContextConfiguration, TestContextManager}
@shishkin
shishkin / async.clj
Created October 22, 2014 10:37
Clojure core.async configurable polling for a change of a non-reactive function
;### Tested with clojure "1.6.0" and core.async "0.1.346.0-17112a-alpha" ###
(use 'clojure.core.async)
;### Lib functions ###
(defn take-until
"Creates a channel that replicates values from the in channel until the
control channel either emits a value or closes."
[control in]
(let [out (chan)]
package demo
object ScalaDsl {
/*
* Defining a simplistic model for the web app DSL
*/
case class HttpRequest(path: String, headers: Map[String, String], body: Option[String])