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 / 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)]
@shishkin
shishkin / KataTennis.scala
Created October 20, 2013 15:44
Kata Tennis in Scala using pattern matching on sealed types.
package kataTennis
sealed trait Player
case object Player1 extends Player
case object Player2 extends Player
sealed trait Score {
def inc: Score = this match {
case Score0 => Score15
case Score15 => Score30
@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 / 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 / AskingActor.scala
Created January 3, 2014 22:31
Helper method for akka actor system to keep asking an underlying `service` actor continuously and replying to the original requester upon the underlying request completion.
import akka.actor._
import akka.pattern.ask
import scala.concurrent.duration._
import scala.concurrent.Future
import scala.concurrent.Promise
import scala.concurrent.ExecutionContext
class AskingActor(val service: ActorRef) extends Actor {
case class SomeCommand(id: String)
case class SomeEvent(id: String)
@shishkin
shishkin / FunctionalErrorHandling.cs
Created December 16, 2013 09:31
Functional error handling
using System;
using System.Collections.Generic;
using System.Linq;
using FSharpx;
using Microsoft.FSharp.Core;
using NUnit.Framework;
namespace FunctionalErrorHandling
{
public static class Extensions