Skip to content

Instantly share code, notes, and snippets.

Alexandre Berthaud urcadox

Block or report user

Report or block urcadox

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View constraint.sql
alter table records
add constraint cname_single_record_per_name_a
exclude using gist (name with =, "type" with <>)
where ("type" IN ('A', 'CNAME'));
View keybase.md

Keybase proof

I hereby claim:

  • I am urcadox on github.
  • I am urcadox (https://keybase.io/urcadox) on keybase.
  • I have a public key whose fingerprint is 7C92 56D4 AB89 2A42 1D0F FDBF F19E 634D 4F24 A5C7

To claim this, I am signing this object:

@urcadox
urcadox / repl.scala
Last active Jul 30, 2018
Creating an instance of a class with injected components in Play 2.5.x / 2.6.x REPL
View repl.scala
// After starting the application in the console (https://www.playframework.com/documentation/2.5.x/PlayConsole#launch-the-interactive-console)
import play.api._
val env = Environment(new java.io.File("."), this.getClass.getClassLoader, Mode.Dev)
val context = ApplicationLoader.createContext(env)
val loader = ApplicationLoader(context)
val app = loader.load(context)
Play.start(app)
// Do this:
app.injector.instanceOf[full.path.YourClass](app.classloader.loadClass("full.path.YourClass").asInstanceOf[Class[full.path.YourClass]])
@urcadox
urcadox / Filters.scala
Created Nov 18, 2016
Play 2.5 HTTPS redirection on Clever Cloud
View Filters.scala
package controllers
import javax.inject._
import play.api._
import play.api.http.DefaultHttpFilters
import play.api.mvc._
import play.api.Environment
import scala.concurrent.{ExecutionContext, Future}
import akka.stream.Materializer
@urcadox
urcadox / Filters.scala
Created Feb 11, 2016
Play 2.4.6 HTTPS filter
View Filters.scala
package controllers;
import play.api._
import play.api.http.HttpFilters
import play.api.mvc._
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import play.api.Play.current
View keybase.md

Keybase proof

I hereby claim:

  • I am urcadox on github.
  • I am urcadox (https://keybase.io/urcadox) on keybase.
  • I have a public key whose fingerprint is E43B 1323 D806 A25A AD59 1A27 07D6 60E5 E621 D21D

To claim this, I am signing this object:

View gist:fe010243520e79c9a25b
import org.joda.time.format.ISODateTimeFormat
implicit val dateTimeBinder = new QueryStringBindable.Parsing[DateTime](
ISODateTimeFormat.dateTime.parseDateTime _,
ISODateTimeFormat.dateTime.print _,
(key: String, e: Exception) => s"Cannot parse parameter $key as DateTime: ${e.getMessage}"
)
View keybase.md

Keybase proof

I hereby claim:

  • I am urcadox on github.
  • I am urcadox (https://keybase.io/urcadox) on keybase.
  • I have a public key whose fingerprint is BDF6 8233 D3C1 176E 70D4 99B9 88C0 73AD 16FB 3109

To claim this, I am signing this object:

@urcadox
urcadox / gist:9620563
Created Mar 18, 2014
Excerpt of a Global.scala file from a Play project - on error handler
View gist:9620563
object Global extends WithFilters(new GzipFilter()) with DBeable {
/* [...] */
override def onError(request: RequestHeader, ex: Throwable) = {
import _root_.util.Mailer
val exId = ex match {
case e: PlayException => Some(e.id)
case _ => None
@urcadox
urcadox / Intervals.scala
Last active Jan 4, 2016
Get the opposite of a List[Interval] in Scala
View Intervals.scala
import org.joda.time.{Interval, Instant}
val intervals = List(
new Interval(new Instant("2014-01-25T12:00"), new Instant("2014-01-27T08:00")),
new Interval(new Instant("2014-01-27T18:00"), new Instant("2014-01-28T08:00")),
new Interval(new Instant("2014-01-28T18:00"), new Instant("2014-01-29T08:00")),
new Interval(new Instant("2014-01-29T18:00"), new Instant("2014-01-30T08:00")),
new Interval(new Instant("2014-01-30T18:00"), new Instant("2014-01-31T08:00")),
new Interval(new Instant("2014-01-31T18:00"), new Instant("2014-02-01T08:00")),
new Interval(new Instant("2014-02-01T12:00"), new Instant("2014-02-03T08:00")),
You can’t perform that action at this time.