Skip to content

Instantly share code, notes, and snippets.

View hauleth's full-sized avatar
⌨️
Click! Clack!

Łukasz Jan Niemier hauleth

⌨️
Click! Clack!
View GitHub Profile
defmodule Foo do
defmacro fn_rec(do: body) do
{name, argc, body} =
body
|> Enum.map(fn
{:'->', e1, [[{:when, e2, [{name, _, args}, guard]}], body]} ->
{name, length(args), {:'->', e1, [[{:when, e2, args ++ [guard]}], body]}}
{:'->', e1, [[{name, _, args}], body]} ->
{name, length(args), {:'->', e1, [args, body]}}
defmodule LangustaWeb.Plug.CSP do
import Plug.Conn
@behaviour Plug
@impl true
def init(opts) do
enable? = opts[:enable?] || (&__MODULE__.__true__/1)
force = opts[:force]
report_only = opts[:report_only]
# INSTALL INSTRUCTIONS: save as ~/.gdbinit
#
# DESCRIPTION: A user-friendly gdb configuration file, for x86/x86_64 and ARM platforms.
#
# REVISION : 8.0.5 (18/08/2013)
#
# CONTRIBUTORS: mammon_, elaine, pusillus, mong, zhang le, l0kit,
# truthix the cyberpunk, fG!, gln
#
# FEEDBACK: http://reverse.put.as - reverser@put.as
@hauleth
hauleth / hardening.nix
Created September 19, 2025 09:18
Hardening module for NixOS systemd services
{
config,
lib,
...
}: let
inherit (lib) types;
in {
options.systemd.services = lib.mkOption {
type = types.attrsOf (types.submodule ({
name,
Jakiś czas temu szukałem ekipy do remontu w domu no i jak to standardowo bywa popytałem znajomych i zadzwoniłem do najbardziej polecanej ekipy. Tak się złożyło, że miałem wyjazd służbowy i jak wróciłem to chłopaki już od 2 dni pracowali, więc po powrocie poszedłem do nich, żeby sprawdzić jak im idzie.
Wszedłem do salonu, patrze, a tam Bartosiak i Zychowicz stoją na drabinie eskalacyjnej i szlifują ściany. Przywitałem się mówiąc dzień dobry. Zychowicz słysząc to zrobił piwot na drabinie i powiedział Czołem. Trochę się zdziwiłem, że taka śmietanka polskiej sceny geopolitycznej robi u mnie remont, ale może chłopaki mają trudną sytuację kapitałową.
- Jak wam idzie chłopaki? - zapytałem
- Wszystko okaże się, kiedy już opadnie mgła pyłu z angielskiego Fog of Dust - odpowiedział Bartosiak
- no jasne, rozumiem. A jak to się stało, że tacy sławni geopolitycy zajmują się remontami?
- Pisaliśmy o tym w książce - odburknął Bartosiak
- wybaczcie panowie, ale nie czytałem. Możecie coś o tym opowiedzieć?
- No dobrze, ale

Untitled notebook

Mix.install([
  :kino_benchee,
  :peep
])
@hauleth
hauleth / pg_graph.sh
Created April 17, 2018 17:22
Script to generate DOT graph of dependencies between tables in PostgreSQL
#!/bin/sh
psql -qX "$@" <<EOF
\t on
\timing off
\echo 'Digraph F{'
\echo 'ranksep=1.0; size="18.5, 15.5"; rankdir=LR;'
SELECT

Last part benchmark

Mix.install([
  {:benchee, "~> 1.0"},
  {:kino_benchee, "~> 0.1.0"},
  {:faker, "~> 0.18"}
])
{config, pkgs, ...}: let
domain = "hauleth.dev";
mail-domain = "mail.${domain}";
sieve-data = let
stalwart-mail = config.services.stalwart-mail.package;
in pkgs.stdenvNoCC.mkDerivation {
pname = "stalwart-mail-sieve-data";
inherit (stalwart-mail) version src;
dontBuild = true;
-module(fizzbuzz).
-export([main/0]).
main() ->
Types = [
{3, "Fizz"},
{5, "Buzz"}
],
io:put_chars(run(100, Types)).