Skip to content

Instantly share code, notes, and snippets.

View gboncoffee's full-sized avatar
💜

Gabriel G. de Brito (AKA 96) gboncoffee

💜
View GitHub Profile
@gboncoffee
gboncoffee / edit.html
Created June 23, 2024 22:34
Example of a minimal wiki web app with only Go's standard library
<h1>Editing {{.Title}}</h1>
<form action="/save/{{.Title}}" method="POST">
<div><textarea name="body" rows="20" cols="80">{{printf "%s" .Body}}</textarea></div>
<div><input type="submit" value="Save"></div>
</form>
@gboncoffee
gboncoffee / mergeSortCuda.cu
Created June 16, 2024 18:41
Merge Sort running on Nvidia GPU via CUDA
#include <iostream>
void coutArray(float array[], int n) {
for (auto i = 0; i < n - 1; ++i) std::cout << array[i] << ", ";
std::cout << array[n - 1] << std::endl;
}
__global__ void gpuCopyArray(float dest[], float src[], int n) {
int index = blockIdx.x * blockDim.x + threadIdx.x;
int stride = blockDim.x * gridDim.x;
@gboncoffee
gboncoffee / saguisimdasm.exs
Created May 11, 2024 23:54
Assembler de Sagui Vetorial (Sagui em Bando)
#
# Montador ridiculamente simples para Assembly de Sagui Vetorial.
# Escreve arquivos no formato hex do Logisim Evolution.
# (Informações sobre a licença abaixo)
# (Licensing information below)
#
# DÚVIDAS:
#
# - Como eu uso essa desgraça?
#
@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
@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 / 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 / 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 / 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 / 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 / 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