Skip to content

Instantly share code, notes, and snippets.

@ruippeixotog
ruippeixotog / steps.sh
Created April 3, 2023 20:41
Create Raspberry Pi 3B VM on QEMU
# -----------
# 1. Download Raspberry Pi OS 64-bit image from https://www.raspberrypi.com/software/operating-systems
# (2023-02-21-raspios-bullseye-arm64-lite.img)
# -----------
# 2. Use a copy of it as an sdcard image for QEMU. It needs to be sized as a power of two to be accepted.
cp 2023-02-21-raspios-bullseye-arm64-lite.img sdcard.img
qemu-img resize -f raw sdcard.img 4G
# qemu-img convert -f raw -O qcow2 2023-02-21-raspios-bullseye-arm64-lite.img sdcard.qcow2
@ruippeixotog
ruippeixotog / piet_blueprint.txt
Created October 14, 2021 23:48
Explanation for my implementation of Quicksort in Piet (https://github.com/ruippeixotog/quicksort)
--------------------
label start
push 1 1
push 2 1 2
subtract -1
in -1 n
duplicate -1 n k
@ruippeixotog
ruippeixotog / test.scala
Created August 29, 2018 11:08
Scala 2.10 bug
import pureconfig._
import pureconfig.generic.auto._
object Util {
def myImplicitly[A](implicit a: A): A = a
def exec(f: => Unit): Unit = f
}
import Util._
@ruippeixotog
ruippeixotog / Main.scala
Created August 5, 2018 22:15
LowPriorityConfigReader
import core._
case class InnerConf(n: Int, str: String)
object InnerConf {
implicit val innerConfReader: ConfigReader[InnerConf] = { _ => InnerConf(42, "custom") }
}
case class OuterConf(k: Int, inners: List[InnerConf])
@ruippeixotog
ruippeixotog / build.sbt
Created June 2, 2018 23:54
Regression in shapeless 2.3.3 with Scala 2.10 SBT console (milessabin/shapeless#831)
scalaVersion := "2.10.7"
libraryDependencies ++= Seq(
"com.chuusai" %% "shapeless" % "2.3.3",
compilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))
scalacOptions += "-language:experimental.macros"
@ruippeixotog
ruippeixotog / cartpole_v1.py
Last active September 9, 2017 22:45
OpenAI Gym - CartPole-v1
import os
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from common.gym_runner import GymRunner
from common.q_learning_agent import QLearningAgent
@ruippeixotog
ruippeixotog / cartpole_v0.py
Created September 9, 2017 20:55
OpenAI Gym - CartPole-v0
import os
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from common.gym_runner import GymRunner
from common.q_learning_agent import QLearningAgent
@ruippeixotog
ruippeixotog / Macros_1.scala
Created July 6, 2017 00:01
Divergence check strategies
trait Mat[A]
object Mat {
def materializeMatImpl[A](c: whitebox.Context)(implicit tt: c.WeakTypeTag[A]): c.Tree = {
import c.universe._
println(s"At ${weakTypeOf[A]} (${c.openImplicits.length})")
c.inferImplicitValue(weakTypeOf[A]) match {
case EmptyTree => c.abort(c.enclosingPosition, "fail")
case _ => q"new Mat[${weakTypeOf[A]}] {}"
@ruippeixotog
ruippeixotog / Derivation.scala
Created June 20, 2017 22:51
Strange behavior with `inferImplicitValue` on a macro
import scala.language.experimental.macros
import scala.reflect.macros.blackbox
trait Derivation[A] {
def value: A
}
object Derivation {
case class Successful[A](value: A) extends Derivation[A]
@ruippeixotog
ruippeixotog / example.scala
Created May 6, 2017 18:41
Extension methods for classes with type members
object Test {
trait MyTrait { type Out[_] }
object MyInstance extends MyTrait { type Out[A] = A }
implicit class RichMyTrait[Out0[_]](myStuff: MyTrait { type Out[A] = Out0[A] }) {
def f[A]: Out0[A] = ???
}
MyInstance.f[String]