- Memorize formulae for WCU and RCU from DynamoDB
- AZs end in letters; Regions end in numbers
EC2 {#EC2}
!pip install textblob 'spacy==3.0.0' | |
!python -m textblob.download_corpora | |
!python -m spacy download en_core_web_trf | |
import spacy | |
import en_core_web_trf | |
nlp = en_core_web_trf.load() |
fswatch -0 . | xargs -0 -n 1 -I {} sh -c "clear; echo '\033[0;32mRunning {}\033[0;37m'; echo; kscript {} ; echo;" |
Set up credentials in the Developer Console using OAuth2 and a Service Account:
client_secret.json
client_secret.json
Install the Google OAuth2 and Client libraries: pip install gspread oauth2client
import cats.effect.{IO, Timer} | |
import cats.syntax.applicativeError._ | |
import cats.syntax.apply._ | |
import scala.concurrent.ExecutionContext.Implicits.global | |
import scala.concurrent.duration.{FiniteDuration, _} | |
import scala.math._ | |
// From https://typelevel.org/cats-effect/datatypes/io.html#example-retrying-with-exponential-backoff | |
def eventually[A](ioa: IO[A], initialDelay: FiniteDuration = 1.second, maxRetries: Int = 10, backOffMultiplier: Int = 1) | |
(implicit timer: Timer[IO]): IO[A] = { |
import $ivy.`org.typelevel::cats:0.9.0`, cats.{Monoid, Show} | |
case class LCDDigit(firstRow: String, secondRow: String, thirdRow: String) | |
object LCDDigit { | |
implicit val ShowInstance = Show.show[LCDDigit](_.productIterator mkString "\n") | |
implicit val ConcatMonoid = new Monoid[LCDDigit] { | |
override def empty = LCDDigit("", "", "") | |
override def combine(l1: LCDDigit, l2: LCDDigit): LCDDigit = |
import $ivy.`org.typelevel::cats:0.9.0`, cats.Semigroup | |
// Our domain entity | |
case class Company(name: String, value: Int) | |
// Some example data | |
val c1 = Company("A", 10) | |
val c2 = Company("B", 20) | |
val c3 = Company("C", 30) | |
val c4 = Company("D", 40) |
import $ivy.`com.github.julien-truffaut::monocle-core:1.4.0`, monocle.Lens | |
import $ivy.`com.github.julien-truffaut::monocle-macro:1.4.0`, monocle.macros.GenLens | |
// _.copy fine for simple cases | |
case class Address(line1: String, line2: String, postcode: String) | |
val a = Address("221B", "Baker St", "NW1 6XE") | |
println(a) | |
println(a.copy(line1 = "221A")) |
abstract sealed class Beat | |
case object Rest extends Beat | |
case object Note extends Beat | |
case class Note(pitch: Int, duration: Int) extends Beat | |
case class Pattern(beats: Seq[Beat]) | |
def formatBeat(b: Beat): String = b match { | |
case Rest => " _ " | |
case Note => " X " |
class LCDDigit(val firstRow: String, val secondRow: String, val thirdRow: String) |