Skip to content

Instantly share code, notes, and snippets.

View felipecrv's full-sized avatar

Felipe Oliveira Carvalho felipecrv

View GitHub Profile
@felipecrv
felipecrv / SBTTestEngine.php
Created September 11, 2018 21:30
sbt Test Engine for Arcanist/Phabricator #scala
<?php
final class SBTTestEngine extends ArcanistUnitTestEngine {
const SBT_ROOT = 'services';
public function getEngineConfigurationName() {
return 'sbt';
}
protected function supportsRunAllTests() {
@felipecrv
felipecrv / union_find.ml
Last active June 27, 2022 13:03
Union-Find data-structure in OCaml
type 'a member =
{ mutable parent : 'a member
; mutable rank : int
; value : 'a
}
let make_set value =
let rec m = { parent = m; rank = 0; value } in
m
;;
@felipecrv
felipecrv / Sampling.scala
Created June 30, 2022 06:53
Sampling and Shuffling
package rs.felipe.random
import java.util.Random
import scala.collection.mutable
import scala.collection.mutable.ArrayBuffer
object Sampling {
/**
* Randomly sample up to k items from a sequence.
@felipecrv
felipecrv / HalfSipHasher64.java
Last active June 11, 2023 16:40
Implementation of HalfSipHash-2-4-64 in Java.
/**
* Copyright (C) 2022 Felipe Oliveira Carvalho
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
@felipecrv
felipecrv / arrow.svg
Created July 14, 2023 18:30
Class and type predicate graph for Arrow C++
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@felipecrv
felipecrv / cancellation.js
Created April 25, 2024 23:00
Concurrency Control for shared mutable state that gets mutated by asynchronous callbacks.
/* @flow */
export class CancellationToken {
source: CancellationTokenSource;
requestId: number;
constructor(source: CancellationTokenSource, requestId: number) {
this.source = source;
this.requestId = requestId;
}