I hereby claim:
- I am andrewconner on github.
- I am adc (https://keybase.io/adc) on keybase.
- I have a public key whose fingerprint is 5ED1 9137 2BCA C7BC 5E5D 3806 7C3F 80BE DD1B CDBD
To claim this, I am signing this object:
class Parent { | |
val a = 1 | |
val b = a | |
} | |
class Kid extends Parent { | |
override val a = 100 | |
} | |
new Kid().b // == 0 |
final class Lazily[A](f: () => A) { | |
private[this] var thunk: () => A = f | |
@volatile private var inst = false | |
private lazy val value: A = { | |
val r = thunk() | |
thunk = null // scalastyle:off | |
inst = true | |
r | |
} | |
def get: A = value |
implicit class AnyExtensionOps[A](val x: A) extends AnyVal { | |
def |>[B](f: A => B): B = f(x) | |
} |
I hereby claim:
To claim this, I am signing this object:
| 2546 | youtube.com | | |
| 865 | facebook.com | | |
| 632 | docs.google.com | | |
| 550 | mail.google.com | | |
| 514 | amazon.com | | |
| 507 | github.com | | |
| 499 | google.com | | |
| 455 | linkedin.com | | |
| 386 | en.wikipedia.org | | |
| 378 | techcrunch.com | |
/* We've run into a few common pitfalls when dealing with Futures in Scala, so I wrote these three helpful | |
* classes to give some baked-in functionality. | |
* | |
* I'd love to hear about other helpers you're using like these, or if you have improvement suggestions. | |
* [email protected] / @connerdelights | |
*/ | |
import scala.concurrent.{ExecutionContext, CanAwait, Awaitable, Future, Promise} | |
import scala.concurrent.duration.Duration | |
import scala.util.Try |
import java.nio.{ByteBuffer, CharBuffer} | |
import java.nio.charset.Charset | |
def trimAtBytes(str: String, len: Int, charset: Charset) = { | |
val outBuf = ByteBuffer.wrap(new Array[Byte](len)) | |
val inBuf = CharBuffer.wrap(str.toCharArray()) | |
charset.newEncoder().encode(inBuf, outBuf, true) | |
new String(outBuf.array, 0, outBuf.position(), charset) | |
} |
// Reverses an integer without using Strings | |
def reverse(n: Int): Int = { | |
val len = math.ceil(math.log10(n+1)).toInt | |
Stream.continually(n).take(len).zipWithIndex | |
.map{ case (m,p) => | |
(m % math.pow(10, len-p) / math.pow(10, len-p-1)).toInt * math.pow(10,p) | |
} | |
.sum.toInt | |
} |
case class Employee(id: Option[Long] = None, name: String, age: Int, salary: Int) | |
object EmployeeRepo { | |
private def persist(employee: Employee): Employee = { | |
// persisting logic | |
employee.copy(id = Some(10L)) // database returns persisted id, return new object with id set | |
} | |
def save(employees: Seq[Employee])(implicit validator: Employee => Try[Employee]): Seq[Try[Employee]] = { | |
employees.map(validator(_).map(persist)) |
maxShutdownTime=15 | |
function stopServiceProcess { | |
kill $pid || return 1 | |
for ((i=0; i<maxShutdownTime*10; i++)); do | |
checkProcessIsRunning $pid | |
if [ $? -ne 0 ]; then | |
rm -f $pidFile | |
return 0 | |
fi |