Skip to content

Instantly share code, notes, and snippets.

View heliocentrist's full-sized avatar

Yury Liavitski heliocentrist

  • Miro
  • Haarlem, the Netherlands
View GitHub Profile

Keybase proof

I hereby claim:

  • I am heliocentrist on github.
  • I am heliocentrist (https://keybase.io/heliocentrist) on keybase.
  • I have a public key whose fingerprint is 7A3D 9E1C 13E0 97A3 4363 9F54 6301 84C4 FED7 98D9

To claim this, I am signing this object:

//package ch4
// 4.1
import scala.util.Left
import scala.{Either => _, Left => _, Right => _, None => _, Option => _, Some => _, _}
case class Some[+A](get: A) extends Option[A]
case object None extends Option[Nothing]
// 2.1
def fib(n: Int): Int = {
@annotation.tailrec
def go(a: Int, b: Int, n: Int): Int =
if (n > 0) go(b, a+b, n-1) else a
go(0, 1, n)
}
val sumConsumer: Consumer[Int,Long] =
new Consumer[Int,Long] {
def createSubscriber(cb: Callback[Long], s: Scheduler) = {
val out = new Subscriber.Sync[Int] {
implicit val scheduler = s
private var sum = 0L
def onNext(elem: Int): Continue = {
sum += elem
Thread.sleep(20000)
package ingestionservicemonix
import monix.kafka._
import monix.reactive.Observable
import org.apache.kafka.clients.producer.ProducerRecord
import monix.execution.Scheduler.Implicits.global
import scala.concurrent.Await
import scala.concurrent.duration._

Getting Started in Scala

This is my attempt to give Scala newcomers a quick-and-easy rundown to the prerequisite steps they need to a) try Scala, and b) get a standard project up and running on their machine. I'm not going to talk about the language at all; there are plenty of better resources a google search away. This is just focused on the prerequisite tooling and machine setup. I will not be assuming you have any background in JVM languages. So if you're coming from Python, Ruby, JavaScript, Haskell, or anywhere…  I hope to present the information you need without assuming anything.

Disclaimer It has been over a decade since I was new to Scala, and when I was new to Scala, I was coming from a Java and Ruby background. This has probably caused me to unknowingly make some assumptions. Please feel free to call me out in comments/tweets!

One assumption I'm knowingly making is that you're on a Unix-like platform. Sorry, Windows users.

Getting the JVM

Keybase proof

I hereby claim:

  • I am heliocentrist on github.
  • I am heliocentrist (https://keybase.io/heliocentrist) on keybase.
  • I have a public key whose fingerprint is DB31 94EA C484 CF66 436B 3662 18B0 8146 EA24 71A2

To claim this, I am signing this object:

Beads burials and beauty

  1. Layers of civilisations
  2. Behaviours are scripts
  3. User input is done in rare points
  4. Persistent environment