Skip to content

Instantly share code, notes, and snippets.

View mandubian's full-sized avatar

Pascal Voitot mandubian

View GitHub Profile
@mandubian
mandubian / FinalGaussianNoise.glsl
Created May 19, 2014 21:34 — forked from glslioadmin/TEMPLATE.glsl
GLSL.io Transition (v1)
#ifdef GL_ES
precision highp float;
#endif
uniform sampler2D from, to;
uniform float progress;
uniform vec2 resolution;
float Rand(vec2 v) {
return fract(sin(dot(v.xy ,vec2(12.9898,78.233))) * 43758.5453);
}
@mandubian
mandubian / ButterflyWaveScrawler.glsl
Created May 19, 2014 11:48 — forked from glslioadmin/TEMPLATE.glsl
GLSL.io Transition (v1)
#ifdef GL_ES
precision highp float;
#endif
uniform sampler2D from, to;
uniform float progress;
uniform vec2 resolution;
// default amplitude = 1.0
uniform float amplitude;
// default waves = 30.
uniform float waves;
@mandubian
mandubian / TEMPLATE.glsl
Created May 19, 2014 11:42 — forked from glslioadmin/TEMPLATE.glsl
GLSL.io Transition (v1)
#ifdef GL_ES
precision highp float;
#endif
uniform sampler2D from, to;
uniform float progress;
uniform vec2 resolution;
// default amplitude = 1.0
uniform float amplitude;
// default waves = 30.
@mandubian
mandubian / TEMPLATE.glsl
Created May 19, 2014 11:41 — forked from glslioadmin/TEMPLATE.glsl
GLSL.io Transition (v1)
#ifdef GL_ES
precision highp float;
#endif
uniform sampler2D from, to;
uniform float progress;
uniform vec2 resolution;
// default amplitude = 1.0
uniform float amplitude;
// default waves = 30.
@mandubian
mandubian / CrazyParametricFun.glsl
Created May 19, 2014 08:04 — forked from glslioadmin/TEMPLATE.glsl
GLSL.io Transition (v1)
#ifdef GL_ES
precision highp float;
#endif
uniform sampler2D from, to;
uniform float progress;
uniform vec2 resolution;
// default a = 4
uniform float a;
// default b = 1
@mandubian
mandubian / CODE.scala
Last active December 20, 2015 03:49 — forked from playxamplez-admin/CODE
#json #Reads 2 fields that must be present exclusively #XOR #play2.1
import play.api.libs.json._
import play.api.libs.functional.syntax._
val r = (
(__ \ "field1").readNullable[String] and
(__ \ "field2").readNullable[Int]
).tupled.filter(ValidationError("unexpected result")){
case( Some(x), None ) => true;
case ( None, Some(x) ) => true;
case _ => false
@mandubian
mandubian / code.scala
Last active December 20, 2015 03:09 — forked from playxamplez-admin/CODE
#Json #Reads a #JsArray & map on each elements of the array applying provided Reads (cumulative errors) #Play2.1
// Reads a JsArray and then map on its elements applying Reads (cumulating errors)
def readJsArrayMap[A <: JsValue](transformEach: Reads[A]): Reads[JsArray] = Reads { js => js match {
case arr: JsArray =>
arr.value.foldLeft(JsSuccess(Seq[JsValue]()): JsResult[Seq[JsValue]]) { (acc, e) =>
acc.flatMap{ seq =>
e.transform(transformEach).map( v => seq :+ v )
}
}.map(JsArray(_))
case _ => JsError("expected JsArray")
@mandubian
mandubian / CODE.scala
Last active December 20, 2015 01:49 — forked from playxamplez-admin/CODE
Validate #Json with pure #JsObject #transformer #Reads #Play2.1
import play.api.libs.json._
import play.api.data.validation._
import play.api.libs.functional.syntax._
val json = Json.obj(
"name" -> "John",
"email" -> "john.doe@company.com",
"password" -> "password",
"confirmPassword" -> "password"
)
@mandubian
mandubian / CODE.scala
Last active September 30, 2021 20:03 — forked from playxamplez-admin/CODE
#Json #Reads/#Writes for a sealed #trait & inheriting caseclasses without type indication in Json #Play2.1
import play.api.libs.json._
import play.api.libs.functional.syntax._
sealed trait Shape
case class Circle(c: (Float, Float), r: Float) extends Shape
object Circle {
// reader is covariant and can be implicit in inheriting caseclasses
implicit val reader = Json.reads[Circle]
// writer is contravariant and can't be implicit in inheriting caseclasses
@mandubian
mandubian / Macros.scala
Last active December 20, 2015 01:19 — forked from scalamacroxamplez-admin/CODE
Infer #implicit #typeclass of input type inside macro #scala2.10
import scala.reflect.macros.Context
import language.experimental.macros
trait MyTypeClass[A] {
def doit(a: A): A
}
object Macros {
def inferImplicitsImpl[A: c.WeakTypeTag](c: Context): c.Expr[MyTypeClass[A]] = {
import c.universe._