Skip to content

Instantly share code, notes, and snippets.

View gboncoffee's full-sized avatar
💜

Gabriel de Brito gboncoffee

💜
View GitHub Profile
@gboncoffee
gboncoffee / kakrc
Last active September 29, 2023 12:49
Kakoune configuration
set-option global indentwidth 0
set-option global scrolloff 10,10
set-option -remove global autocomplete prompt|insert
set-option -add global ui_options terminal_assistant=none
set-option -add global ui_options terminal_enable_mouse=true
set-option global makecmd ''
# hooks
hook global WinCreate ^[^*]+$ %{editorconfig-load}
hook global BufCreate .+\.lua %{
@gboncoffee
gboncoffee / battery-monitor.lua
Created October 29, 2023 23:07
Lua script to monitor the battery status
#!/usr/bin/env lua
--
-- System battery notifier ;)
--
sleep = function(sec)
os.execute("sleep " .. sec)
end
@gboncoffee
gboncoffee / knights.lua
Created November 18, 2023 12:38
Knight Tour problem in Lua
#!/usr/bin/env lua
--
-- Copyright (c) 2023 Gabriel G. de Brito
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the "Software"), to deal
-- in the Software without restriction, including without limitation the rights
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-- copies of the Software, and to permit persons to whom the Software is
@gboncoffee
gboncoffee / queens.lua
Created November 30, 2023 21:13
8 queens problem solution in Lua
#!/usr/bin/env lua
--
-- Copyright (c) 2023 Gabriel G. de Brito
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the "Software"), to deal
-- in the Software without restriction, including without limitation the rights
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-- copies of the Software, and to permit persons to whom the Software is
@gboncoffee
gboncoffee / html.h
Last active December 6, 2023 03:05
Macros to generate HTML with the C preprocessor
#ifndef __HTML_MACROS
#define __HTML_MACROS
#define HTML(l, head, body) <!DOCTYPE html> \
<html lang=#l> \
head \
body \
</html>
#define HEAD(...) <head> \
@gboncoffee
gboncoffee / goserve.go
Created December 17, 2023 03:09
The simplest static web server in Go
package main
import "net/http"
func main() {
port := ":6969"
handler := http.FileServer(http.Dir("."))
http.ListenAndServe(port, handler)
}
@gboncoffee
gboncoffee / drw.h
Created March 10, 2024 17:06
Header-only distribution of drw.c and drw.h
#ifndef __DRW_INCLUDED
#define __DRW_INCLUDED
/*
* drw.h - Header-only library for easy X11 text-oriented graphics.
*/
/*
* Copyright (C) 2023 Gabriel de Brito
*
@gboncoffee
gboncoffee / rule110.odin
Created April 4, 2024 03:26
Rule 110 in Odin
package main
import "core:fmt"
import "core:os"
import "core:strconv"
import "core:strings"
panic_read :: proc() {
fmt.eprintln("cannot read from stdin")
os.exit(1)
@gboncoffee
gboncoffee / calc.erl
Created April 7, 2024 20:38
Reverse polish calculator in Erlang
-module(calc).
-export([main_loop/1]).
read_tokens() ->
case io:get_line("calc> ") of
[] -> [];
L -> string:tokens(lists:droplast(L), " ")
end.
exec_token(S, T) ->
@gboncoffee
gboncoffee / calc.exs
Created April 8, 2024 00:44
Reverse polish calculator in Elixir
defmodule Calc do
defp exec_op(_, "clear"), do: []
defp exec_op([fa | [fb | r]], token) do
case token do
"+" -> [fa + fb | r]
"-" -> [fa - fb | r]
"*" -> [fa * fb | r]
"/" -> [fa / fb | r]
"swap" -> [fb | [fa | r]]
end