Skip to content

Instantly share code, notes, and snippets.

@vorce
vorce / exunit_sequence.md
Last active September 21, 2022 14:38
Mermaid sequence diagram of ExUnit Runner

sequenceDiagram ExUnit.Runner->>+ExUnit.Server: {:take_async_modules, count} ExUnit.Server->>-ExUnit.Runner: [AsyncModule1Test, AsyncModule2Test, ...] ExUnit.Runner->>+ExUnit.EventManager: {:module_started, %ExUnit.TestModule{module: AsyncModule1Test}} ExUnit.EventManager->>+ExUnit.CLIFormatter: {:module_started, %ExUnit.TestModule{}} ExUnit.EventManager->>+CustomFormatter: {:module_started, %ExUnit.TestModule{}} loop Every test case ExUnit.Runner->>+ExUnit.EventManager: {:test_started, %ExUnit.Test{tags: t}} ExUnit.EventManager->>+ExUnit.CLIFormatter: {:test_started, %ExUnit.Test{tags: t}} ExUnit.EventManager->>+CustomFormatter: {:test_started, %ExUnit.Test{tags: t + c}}

@vorce
vorce / test_mem.ex
Created July 5, 2022 12:18
JUnitFormatter that outputs memory usage to a file
defmodule TestMem do
@moduledoc """
JUnitFormatter that outputs memory usage to a file.
Useful to measure your test suite's memory consumption.
"""
use GenServer
@impl true
def init(_opts) do
@vorce
vorce / absinthe_helper.ex
Last active December 6, 2022 16:24
Absinthe import_fields from module
defmodule AbsintheHelper do
@moduledoc """
A way to `import_fields` from a specific module.
The idea is to make it more explicit in your schema where
object fields are coming from at a glance.
Usage in your schema:
```
require AbsintheHelper
@vorce
vorce / jerry.swift
Last active August 15, 2024 11:14
Mouse move and click test thing for macos in swift
import Cocoa
import Foundation
// Move around and click automatically at random places in macos, kinda human like in a cheap way.
// Moves the mouse pointer to `moves` random locations on the screen and runs the `action` function at
// each point with the point as argument.
func mouseMoveWithAction(moves: Int, action: (CGPoint) -> Void = defaultAction) {
let screenSize = NSScreen.main?.visibleFrame.size
@vorce
vorce / fn.lua
Created August 18, 2019 19:14
Some functional utilities
-- functional programming utilities
-- usage: local fn = require "fn"
NAME = "fn"
local M = { }
-- Invokes the reducer function for each element in the collection with the accumulator.
-- The initial value of the accumulator is initial. The function is invoked for each
-- element in the enumerable with the accumulator. The result returned by the
@vorce
vorce / memory.ex
Last active September 27, 2021 08:54
Show what's using memory
# show top memory using processes
:erlang.processes()
|> Enum.map(fn pid ->
:erlang.process_info(pid, [:memory, :current_function, :current_location])
end)
|> Enum.sort_by(fn process_info -> process_info[:memory] end)
|> Enum.reverse()
|> Enum.take(25)
# show top memory using ETS tables

Keybase proof

I hereby claim:

  • I am vorce on github.
  • I am vorce (https://keybase.io/vorce) on keybase.
  • I have a public key ASB3SC08McO8-tJmvv3Mg3UbfhXyQKHZi_xXORoKAxVukwo

To claim this, I am signing this object:

(defn _henon [x y]
(let [x1 (* 1.4 (Math/pow x 2))]
[(+ y (- 1 x1)), (* x 0.3)]))
(defn henon [x y]
(let [[hx hy] (_henon x y)]
(lazy-seq (cons [hx hy] (henon hx hy)))))
; Example usage: (take 100 (henon 1 1))
@vorce
vorce / simplex.clj
Created November 28, 2014 21:25
Clojure simplex 2d noise (translated from java)
(ns vorce.procedural.simplex)
; Direct translation of
; https://github.com/mikera/clisk/blob/develop/src/main/java/clisk/noise/Simplex.java
; to clojure.
; ...... friday night fun.
; Only supports 2d right now.
(defstruct grad :x :y :z :w)
@vorce
vorce / gist:10004442
Created April 6, 2014 10:53
Example usage of raev
(ns symmetri.core
(:use quil.core
raev.core))
(def mid-x 400)
(def mid-y 300)
(defrecord Point [x y z])
(defrecord Sym [s1 s2 col])
(defrecord Colors [r g b a])