Skip to content

Instantly share code, notes, and snippets.

View mavam's full-sized avatar

Matthias Vallentin mavam

View GitHub Profile
@mavam
mavam / dark_save.R
Last active May 16, 2022 09:24
A ggsave wrapper to store both a light and dark themed version of a plot.
# Wraps ggsave to produce both light and dark themed plot using ggdark.
dark_save <- function(filename, plot, sep = "-", ...) {
require(tools)
require(ggdark)
base <- file_path_sans_ext(filename)
ext <- file_ext(filename)
base_light <- paste(base, "light", sep = "-")
base_dark <- paste(base, "dark", sep = "-")
filename_light <- paste(base_light, ext, sep = ".")
filename_dark <- paste(base_dark, ext, sep = ".")
@mavam
mavam / sVimrc
Created September 12, 2018 09:16
sVimrc
let blacklists = ["*://www.inoreader.com/*", "*://mail.google.com/*"]
@mavam
mavam / flatbuffers-building.cpp
Created March 22, 2017 20:57
A function that takes a discriminated union and writes it into a flatbuffers builder.
flexbuffers::Builder& build(flexBuffers::Builder& builder, const data& x) {
struct converter {
converter(flatbuffers::FlatBufferBuilder& builder) : builder_{builder} {
}
using result_type = flatbuffers::Offset<detail::Data>;
result_type operator()(none) {
detail::DataBuilder db{builder_};
return db.Finish();
}
result_type operator()(boolean x) {
@mavam
mavam / flexbuffer-building.cpp
Created March 22, 2017 20:54
A function that takes a discriminated union and writes it into a flexbuffer builder.
flexbuffers::Builder& build(flexbuffers::Builder& builder, const data& x) {
static auto to_uint = [](auto i) {
return static_cast<std::underlying_type_t<detail::DataType>>(i);
};
struct converter {
converter(flexbuffers::Builder& builder) : builder_{builder} {
}
void operator()(none) {
builder_.UInt(to_uint(detail::DataType::NoneType));
}
@mavam
mavam / flexbuffer-serializer.cpp
Last active March 22, 2017 20:55
FlexBuffer serializer
#ifndef VAST_FLEXBUFFER_PACKER_HPP
#define VAST_FLEXBUFFER_PACKER_HPP
#include <caf/deserializer.hpp>
#include <caf/serializer.hpp>
#include <flatbuffers/flexbuffers.h>
#include "vast/chunk.hpp"
@mavam
mavam / aoc-day10-2.cpp
Created March 2, 2017 05:17
Advent of Code - Day 10 - Part Two
#include <cassert>
#include <iostream>
#include <vector>
#include <caf/all.hpp>
using namespace std;
using namespace caf;
// The same bot from part one.
@mavam
mavam / aoc-day10-1.cpp
Created March 2, 2017 05:11
Advent of Code - Day 10 - Part One
#include <cassert>
#include <iostream>
#include <vector>
#include <caf/all.hpp>
using namespace std;
using namespace caf;
// Predicate to check whether a particular bot is the puzzle solution.
@mavam
mavam / broker-synopsis.cpp
Last active May 6, 2016 22:28
Broker API Synopsis
// --- component setup --------------------------------------------------------
// Creates a broker execution context that encapsulates runtime state, such as
// a thread pool and message type information.
system sys{cfg};
// Create a broker in a given system. A broker is a thin abstraction on top of
// a CAF actor for sending and receiving messages. There exist synchronous and
// aysnchronous brokers.
async_broker a{sys};
@mavam
mavam / ca-data-breaches.R
Last active April 26, 2016 19:12
California data breach analysis
# California data breach analysis
#
# Author: Matthias Vallentin <vallentin@icir.org>
# Copyright (c) 2016
#
# To reproduce, please contact me.
library(dplyr)
library(ggplot2)
library(lubridate)
@mavam
mavam / goes.R
Last active August 29, 2015 14:24
GOES-13 proton flux for particles >= 10 Mev
# Plots GOES-13 Proton Flux for particles >= 10 Mev.
#
# Data source: ftp://ftp.swpc.noaa.gov/pub/lists/particle/
#
# Check out http://stuffin.space to see where GOES-13 flies.
library(dplyr)
library(tidyr)
library(lubridate)
library(ggplot2)