Skip to content

Instantly share code, notes, and snippets.

@vorce
vorce / jerry.swift
Last active January 31, 2024 19:11
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 / 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 / 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 / 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
@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

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 / gist:5817721
Created June 19, 2013 20:25
Spazmo-qore, contribution to the 4k source compo 2004
#include "g.h"
#define f float
f P=3.1415,X= 500,Y=400, o;
#define e glEnd
#define g glVertex3d
#define n glEnable
#define N glNormal3d
#define fl for(
#define i int
c(f h) { f j; glBegin(6); N(0,0,-1);g(0,0,0);
@vorce
vorce / gist:5748534
Created June 10, 2013 13:02
hex-to-rgb
(defn hex-to-rgb
"Convert hex strings to rgb list. Ex: 'FF0000' -> (255 0 0)"
[hex]
(let [ hex-pairs (partition 2 hex) ]
(for [p hex-pairs]
(java.lang.Integer/parseInt (apply str p) 16))))