Skip to content

Instantly share code, notes, and snippets.

View guillaumebort's full-sized avatar

Guillaume Bort guillaumebort

View GitHub Profile
@guillaumebort
guillaumebort / 1.sql
Created May 25, 2012 15:17
Play 2.0/Anorm
# --- !Ups
CREATE TABLE users(
email VARCHAR(255) NOT NULL PRIMARY KEY,
name VARCHAR(255)
);
CREATE TABLE subjects(
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
title LONGTEXT NOT NULL,
@guillaumebort
guillaumebort / Global.scala
Created June 9, 2012 11:50
Track response time of simple Action
import play.api._
import play.api.mvc._
object Global extends GlobalSettings {
def ResponseTime[A](action: Action[A]): Action[A] = Action(action.parser) { request =>
val start = System.currentTimeMillis
val result = action(request)
println( request + " -> " + (System.currentTimeMillis - start) + " ms.")
result
@guillaumebort
guillaumebort / Procfile
Created June 22, 2012 16:04
Configuration for a blocking Play 2.0 application
web: target/start -Dhttp.port=${PORT} -Dconfig.resource=prod.conf ${JAVA_OPTS}
interface Person {
name: string;
}
var f = function(p: Person): number {
return p.name.length
}
var a = 'COCO'
var b = f({
@-webkit-keyframes coloredSpans
{
0% { background: #97e733; }
12% { background: #47ff74; }
25% { background: #3cf1f3; }
37% { background: #77cbfd; }
50% { background: #f19efd; }
62% { background: #fa87fd; }
75% { background: #fb9594; }
87% { background: #fdba3e; }
@guillaumebort
guillaumebort / Build.scala
Created December 4, 2012 16:49
Latest Play 2.1 Nightly
.settings(
resolvers += "GB Play nightlies - Maven" at "http://guillaume.bort.fr/repository/"
)
@guillaumebort
guillaumebort / Build.scala
Created December 14, 2012 15:20
Dynamically extracting SASS
val main = play.Project(appName, appVersion, appDependencies).settings(
resourceGenerators in Compile <+= (target, resourceManaged in Compile, cacheDirectory, streams) map { (target, resources, cache, streams) =>
val logger = streams.log
val sassWorkingDir = target / "sass-blabla"
if(!sassWorkingDir.exists) {
val maybeSass = this.getClass.getClassLoader.getParent.asInstanceOf[java.net.URLClassLoader].getURLs.map(_.getFile).map(file).find { file =>
@guillaumebort
guillaumebort / gist:4546727
Last active December 11, 2015 04:39
Hoho, I've something that will allow to write an awesome Scala Macro for #playframework
> compile
[info] Compiling 1 Scala source to /private/tmp/my/target/scala-2.10/classes...
> Analysing SQL: select name, age from people where age > ?
-- Parameters:
java.lang.Integer
-- Returns:
java.lang.String
java.lang.Integer
-------------
{
"Main" : {
"body" : {
"type" : "StructuredText",
"config" : {
"imageConstraint" : {
"width" : 580.0
},
"minHeight" : "400px"
}
{"id":26,"label":"document","children":[{"id":14,"label":"heading1","children":[{"id":15,"content":"SURFACEPAD “THE ONLY CASE I WOULD CONSIDER USING WITH AN IPHONE”","parents":"14-26","tags":[]}],"parents":"26","tags":[]},{"id":16,"label":"paragraph","children":[{"id":17,"content":"This SurfacePad review is just so good we had to share it with you. If you’ve been following our SurfacePad for iPhone news, you already know it’s a product for, well, people who would rather their iPhone be au naturale…but they want to protect the screen and back from keys and hard surfaces. Gizmodo editor Jesus Dias gets it. In his doesn’t-mince-words-words:","parents":"16-26","tags":[]}],"parents":"26","tags":[]},{"id":18,"label":"paragraph","children":[{"id":19,"content":"“No, you don’t need a damn case for your iPhone 5—but if you have butterfingers and you must use a case, this seems to me like the only acceptable one. The SurfacePad is not only simple and elegant—complementing the iPhone’s design rather than turning it into