Skip to content

Instantly share code, notes, and snippets.

View netanelrabinowitz's full-sized avatar
✌️

Netanel Rabinowitz netanelrabinowitz

✌️
View GitHub Profile
@olafurpg
olafurpg / add-semanticdb-scalac.gradle
Last active March 30, 2019 22:34 — forked from fomkin/scala-add-compiler-plugin.gradle
⚠️Untested. Enable semanticdb-scalac in Gradle build.
apply plugin: 'application'
apply plugin: 'scala'
repositories {
mavenLocal()
mavenCentral()
}
ext {
scalaBinaryVersion = "2.12"
@jastice
jastice / integrations-bsp-intellij-bloop.md
Last active June 28, 2019 11:48 — forked from jvican/integrations-bsp-intellij-bloop.md
Instructions to try the BSP IntelliJ-Bloop integration out.

Installation instructions

  1. Install bloop 1.0.0-M11 by following the Bloop installation instructions. Then, make sure you start up the bloop server on the background and to generate the configuration files by running bloopInstall in your build tool.
  2. Install IntelliJ 2018.2 EAP and then enable the nightly version of the Scala Plugin by opening Preferences | Languages & Frameworks | Scala | Updates tab and selecting the Nightly plugin update channel: intellij-eap
  3. check for updates and download the Scala plugin Nightly release.
  4. Reboot IntelliJ. The Scala plugin should now have version 2018.2.277 or higher (check in Preferences | Plugins)
  5. Open the "Find Action" search box (usual hotkey Shift+Ctrl+A or shift+cmd+A) and search for "bsp". The search box will show the full action name: "Enable experime
@nerro
nerro / helper.gradle
Last active October 27, 2023 10:20
Gradle: task 'resolveDependencies' for CI
task resolveDependencies {
setDescription "Resolves all projects dependencies from the repository."
setGroup "Build Server"
doLast {
rootProject.allprojects { project ->
project.buildscript.configurations.forEach { configuration ->
if (configuration.canBeResolved) {
configuration.resolve()
}
import monix.eval.Task
import java.util.concurrent.TimeUnit
import scala.concurrent.duration._
/** Request limiter for APIs that have quotas per second, minute, hour, etc.
*
* {{{
* // Rate-limits to 100 requests per second
* val limiter = TaskLimiter(TimeUnit.SECONDS, limit = 100)
*
@cb372
cb372 / sequence.scala
Last active October 26, 2020 12:52
Using Cats Traverse to turn a List of Try into a Try of List
Welcome to the Ammonite Repl 0.8.0
(Scala 2.11.8 Java 1.8.0_91)
@ import scala.util.Try
import scala.util.Try
@ val listOfTries: List[Try[String]] = List(Try("a"), Try("b"), Try("c"))
listOfTries: List[Try[String]] = List(Success("a"), Success("b"), Success("c"))
// I have a List[Try[String]] but I actually want a Try[List[String]].

Applied Functional Programming with Scala - Notes

Copyright © 2016-2018 Fantasyland Institute of Learning. All rights reserved.

1. Mastering Functions

A function is a mapping from one set, called a domain, to another set, called the codomain. A function associates every element in the domain with exactly one element in the codomain. In Scala, both domain and codomain are types.

val square : Int => Int = x => x * x
@MightyPork
MightyPork / usb_hid_keys.h
Last active April 29, 2026 15:31
USB HID Keyboard scan codes
/**
* USB HID Keyboard scan codes as per USB spec 1.11
* plus some additional codes
*
* Created by MightyPork, 2016
* Public domain
*
* Adapted from:
* https://source.android.com/devices/input/keyboard-devices.html
*/
@danidiaz
danidiaz / _FP reading lists.md
Last active January 15, 2026 20:31
assorted reading lists

A series of reading lists mostly related to functional programming.

@piscisaureus
piscisaureus / pr.md
Created August 13, 2012 16:12
Checkout github pull requests locally

Locate the section for your github remote in the .git/config file. It looks like this:

[remote "origin"]
	fetch = +refs/heads/*:refs/remotes/origin/*
	url = git@github.com:joyent/node.git

Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:

@retronym
retronym / generalised-type-constraints.scala
Created November 8, 2009 08:02
Demo of generalised type constraints in Scala 2.8
// scala 2.7 simple type constraint. This can only constrain a type parameter of this function.
// Below, in ListW.sumint28, we can't use this approach because we want to constrain T,
// a type param of the enclosing trait.
def sumint27A[T <: Int](l: List[T]) : Int = l.reduceLeft((a: Int, b: Int) => a + b)
trait IntLike[X] extends (X => Int)
object IntLike {
implicit val intIntLike: IntLike[Int] = new IntLike[Int] { def apply(x: Int) = identity(x) }
}