Skip to content

Instantly share code, notes, and snippets.

View urcadox's full-sized avatar

Alexandre Berthaud urcadox

View GitHub Profile
@urcadox
urcadox / gist:5678556
Created May 30, 2013 15:03
List of countries in the local language
"Afghanestan", "Al Arabiyah as Suudiyah", "Al Bahrayn", "Al Imarat al Arabiyah al Muttahidah", "Al Jaza'ir", "Al Kuwayt", "Al Maghrib", "Al Urdun", "Al Yaman", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Aomen", "Aotearoa", "Argentina", "Aruba", "As-Sudan", "Australia", "Azarbaycan", "Aṣ-Ṣaḥrā’ al-Gharbīyah ", "Bahamas", "Bangladesh", "Barbados", "Belau", "Belgique/Belgie", "Belize", "Benin", "Bermuda", "Bharat", "Bhutan", "Bod ", "Bolivia", "Bosna i Hercegovina", "Botswana", "Brasil", "Bulgaria", "Burkina Faso", "Burundi", "Byelarus", "Cabo Verde", "Cameroon", "Canada", "Cayman Islands", "Ceska Republika", "Chile", "Choson", "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comores", "Cook Islands", "Costa Rica", "Cote d'Ivoire", "Crna Gora", "Cuba", "Danmark", "Dawlat Qatar", "Deutschland", "Dhivehi Raajje", "Djibouti", "Dominica", "Dominicana, Republica", "Éire", "Ecuador", "Eesti Vabariik", "El Salvador", "Ellas or Ellada", "España", "Estados Unidos M
@urcadox
urcadox / RSA.scala
Created August 7, 2013 12:57
RSA encryption in Scala
package util
import java.security._
import java.security.spec.X509EncodedKeySpec
import javax.crypto._
import org.apache.commons.codec.binary.Base64
object RSA {
def decodePublicKey(encodedKey: String): Option[PublicKey] = {
this.decodePublicKey(
@urcadox
urcadox / Intervals.scala
Last active January 4, 2016 19:49
Get the opposite of a List[Interval] in 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")),
@urcadox
urcadox / gist:9620563
Created March 18, 2014 13:57
Excerpt of a Global.scala file from a Play project - on error handler
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

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:

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}"
)

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:

@urcadox
urcadox / Filters.scala
Created February 11, 2016 17:23
Play 2.4.6 HTTPS filter
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
@urcadox
urcadox / Filters.scala
Created November 18, 2016 11:30
Play 2.5 HTTPS redirection on Clever Cloud
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 / repl_2.5.scala
Last active January 22, 2020 11:18
Creating an instance of a class with injected components in Play 2.5.x / 2.6.x / 2.7.x / 2.8.x REPL
// For Play 2.5.x and 2.6.x
// 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)