Skip to content

Instantly share code, notes, and snippets.

View RaasAhsan's full-sized avatar

Raas Ahsan RaasAhsan

View GitHub Profile
@RaasAhsan
RaasAhsan / main.rs
Created April 24, 2022 23:14
Rust mpsc byte buffering
use std::sync::mpsc::{sync_channel, Receiver, SyncSender};
use std::thread;
enum Message {
Chunk(Vec<u8>),
Flush,
}
struct TxWrite {
tx: SyncSender<Message>,
@RaasAhsan
RaasAhsan / Lambda.scala
Last active April 21, 2021 11:19
Type-level, untyped lambda calculus in Scala 3
object Lambda extends App {
sealed trait Term
sealed trait Var[I <: Index] extends Term
sealed trait App[T1 <: Term, T2 <: Term] extends Term
sealed trait Abs[T1 <: Term] extends Term
sealed trait If[T1 <: Term, T2 <: Term, T3 <: Term] extends Term
sealed trait Bool[T1 <: Boolean] extends Term
sealed trait Index
@RaasAhsan
RaasAhsan / Shared.scala
Created February 24, 2021 19:33
Shared resources
import cats.effect._
import cats.effect.kernel.Resource
import cats.syntax.all._
trait Shared[F[_], A] {
def resource: Resource[F, A]
}
object Shared {
def allocate[F[_], A](resource: Resource[F, A])(implicit F: Concurrent[F]): Resource[F, (Shared[F, A], A)] = {
@RaasAhsan
RaasAhsan / BlazeServer.scala
Last active January 30, 2021 01:52
Load test setup
import cats.effect._
import org.http4s.implicits._
import org.http4s.server.blaze.BlazeServerBuilder
import org.http4s.server.middleware.Logger
import scala.concurrent.ExecutionContext.global
object BlazeServer extends IOApp {
def server: IO[Nothing] = {
val app = Logger.httpApp(true, true)(routes.orNotFound)
@RaasAhsan
RaasAhsan / Main.java
Last active June 16, 2023 06:37
minimized ARM memory barrier violation
import java.util.concurrent.atomic.*;
import java.util.concurrent.*;
public class Main {
private static ExecutorService executor = Executors.newFixedThreadPool(2);
private static int iterations = 10000000;
public static class Runner {
// writes to canceled happen before a CAS on suspended
// reads on canceled happen after a CAS on suspended
@RaasAhsan
RaasAhsan / ch8.slf
Created August 17, 2020 18:00
Chapter 8 Proofs
package tapl;
terminals true false if then else value steporvalue Bool Nat subterm succ nv
syntax
t ::= true |
false |
if t then t else t |
0 |
@RaasAhsan
RaasAhsan / system.slf
Created August 15, 2020 05:02
TAPL Typed Arithmetic Expressions
package tapl;
terminals true false if then else value steporvalue Bool
syntax
t ::= true |
false |
if t then t else t
@RaasAhsan
RaasAhsan / README.md
Created June 10, 2020 00:16
Fiber tracing render
[info] running org.simpleapp.example.Example 
1
2
3
4
5
IOTrace: 13 frames captured, 0 omitted
╭ flatMap
│ ╰╮
@RaasAhsan
RaasAhsan / README.md
Created May 24, 2020 19:31
IOTrace rendering
IOTrace: 0 omitted frames
╭ flatMap
│ ╰╮
│  ├ org.simpleapp.example.Example.main (Example.scala:21)
│  ├ org.simpleapp.example.Example.main (Example.scala:-1)
│  ├ sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
│  ├ sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
│  ├ sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
│  ├ java.lang.reflect.Method.invoke (Method.java:498)
@RaasAhsan
RaasAhsan / README.md
Created May 7, 2019 19:16
Useful FFMPEG commands

Useful FFMPEG commands

Print out GOP picture types

$ ffprobe -v quiet -print_format json -i vods/1/low/segment-0.ts -show_frames | \
    jq -r '.frames[] | select(.media_type=="video") | .pict_type' | \
    tr -d '\n'
IBBBPPBPBPBPBPBPBBPBBBPBBBPBBPBBBPBBBPBPBBBPBBBPIBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPIBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBPIBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBBPBBPIBBBPBBBPBBBPBBBPBBPBBBPBBBPBBBPBBBPBPBBBPBBBPBP