Skip to content

Instantly share code, notes, and snippets.

View melrief's full-sized avatar

Mario Pastorelli melrief

View GitHub Profile
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverlappingInstances #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE TupleSections #-}
{-
Parsing the output of the xrandr command. For example:
$> xrandr
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
@melrief
melrief / init_sbt_project.sh
Last active August 29, 2015 14:12
This is a simple script to create an sbt template project in a directory
#!/bin/bash -eu
#
# Set up a sbt project. This script requires sbt and bash :).
#
# usage:
# - mkdir <project_name>
# - cd <project_name>
# - ./<this_script_dir>/init_sbt_project.sh
#
# author: Mario Pastorelli <pastorelli.mario@gmail.com>
package csvShapeless
import shapeless._, labelled.{ field, FieldType }, syntax.singleton._
import scala.util.{Try,Success,Failure}
case class Person(name: String, surname: String, age: Int)
object Main extends App {
@melrief
melrief / circeDecoderOption.scala
Created June 12, 2016 09:29
Problem with circe's Decoder[Option]
import cats.data.Xor
import io.circe._
sealed abstract class Predicate extends Product with Serializable
final case class Equal(int: Int) extends Predicate
final case class Bigger(int: Int) extends Predicate
case class Foo(opt: Option[Predicate])
class HasN a where
n :: a -> Int
data JobOne = JobOne Int
data JobTwo = JobTwo
data JobThree = JobThree Int
data JobDescriptionWithN = JobDescriptionWithNOne JobOne | JobDescriptionWithNThree JobThree
data JobDescription = JobDescriptionTwo JobTwo | JobWithN JobDescriptionWithN
val scanner = accumulo.connector.createScanner(tableName, new Authorizations())
val iteratorSetting = new IteratorSetting(Int.MaxValue, classOf[RowCounterIterator])
scanner.addScanIterator(iteratorSetting)
val iterator = scanner.iterator()
iterator.hasNext shouldEqual true
val entry = iterator.next()
entry.getValue.get().length shouldEqual 0
println(entry)
LongByteCodec.decode(entry.getKey.getRowData.toArray) shouldEqual daySubscriberProfiles.size
scanner.close()