Skip to content

Instantly share code, notes, and snippets.

View felipecrv's full-sized avatar

Felipe Oliveira Carvalho felipecrv

View GitHub Profile
@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 / 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 / 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 / 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 / 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 / Sampling.scala
Last active July 19, 2018 19:14
Sampling and Shuffling sequences in Scala
package m79.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 / btree.js
Created April 1, 2018 13:32
In-memory B+ Tree implemented in Javascript with Flow type annotations
/* @flow */
const KEY_KIND_STRING = 1;
const KEY_KIND_NUMBER = 2;
const KEY_KIND_BOOL = 3;
const KEY_KIND_RECORD = 4;
type KeyKind = 1 | 2 | 3 | 4;
class KeyValue<K, V> {
key: ?K;
@felipecrv
felipecrv / HttpApiClient.scala
Last active April 8, 2018 13:56
A convenient HTTP API Client based on the Jetty HTTP client written in Scala
package m79.infra
import java.net.URI
import java.time.format.DateTimeFormatter
import m79.infra.HttpAPIClient.Call
import org.eclipse.jetty.client.HttpClient
import org.eclipse.jetty.client.api.{Request, Result}
import org.eclipse.jetty.client.util.{BufferingResponseListener, MultiPartContentProvider, StringContentProvider}
import org.eclipse.jetty.http.HttpMethod
#! /bin/bash
set -e
trap 'previous_command=$this_command; this_command=$BASH_COMMAND' DEBUG
trap 'echo FAILED COMMAND: $previous_command' EXIT
#-------------------------------------------------------------------------------------------
# This script will download packages for, configure, build and install a GCC cross-compiler.
# Customize the variables (INSTALL_PATH, TARGET, etc.) to your liking before running.
# If you get an error and need to resume the script from some point in the middle,
# just delete/comment the preceding lines before running it again.
### Keybase proof
I hereby claim:
* I am philix on github.
* I am felipeoc (https://keybase.io/felipeoc) on keybase.
* I have a public key whose fingerprint is 966B E9AC DAD9 4616 ABC9 A3C8 0BBA AF18 42EB 67DC
To claim this, I am signing this object: