Skip to content

Instantly share code, notes, and snippets.

View treeform's full-sized avatar

Andre von Houck treeform

View GitHub Profile
import ws, asyncdispatch, asynchttpserver
proc cb(req: Request) {.async.} =
var ws = await newWebSocket(req)
await ws.send("Welcome")
ws.close()
var server = newAsyncHttpServer()
waitFor server.serve(Port(9001), cb)
import ws, asyncdispatch, asynchttpserver
proc cb(req: Request) {.async.} =
var ws = await newWebSocket(req)
echo "Got ws connecting with protocol ", ws.protocol
if ws.protocol == "alpha":
await ws.send("Welcome Protocol Alpha")
ws.close()
var server = newAsyncHttpServer()
# Get the log itself
var
logStr = cast[ptr GLchar](alloc(logSize))
logLen: GLsizei
glGetShaderInfoLog(vertShader, logSize.GLsizei, logLen.addr, logStr)
# Print the log
echo $logStr
const
cbWebSafe64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
proc encodeWebSafeNoPadding*(s: string): string =
## encodes `s` into web safe base64 representation.
proc encodeSize(size: int): int =
return (size * 4 div 3) + 6
result.setLen(encodeSize(s.len))
## Bare-bones SDL2 example
import sdl2
discard sdl2.init(INIT_EVERYTHING)
var
window: WindowPtr
render: RendererPtr
window = createWindow("SDL Skeleton", 100, 100, 640,480, SDL_WINDOW_SHOWN)
## Bare-bones SDL2 example
import sdl2
import typography, vmath, flippy, chroma, tables, times
discard sdl2.init(INIT_EVERYTHING)
var
window: WindowPtr
render: RendererPtr
@treeform
treeform / html.nim
Last active January 11, 2020 05:47
let a = html:
html:
lang "en"
head:
meta:
charset "utf-8"
title "myTitle"
meta:
name "description"
content "myDescription"
spawn:
var socket = newSocket()
print "1"
socket.connectFi("localhost", Port(12321))
print "2"
socket.sendFi("spawn #1\c\L")
print "4"
echo socket.recvFi()
socket.close()
print "5"
spawn:
var socket = newSocket()
print "1"
socket.connectFi("localhost", Port(12321))
print "2"
socket.sendFi("spawn #1\c\L")
print "4"
echo socket.recvFi()
socket.close()
print "5"
# createThread then .add -> crash
# .add then createThread -> some threads dont run
# pre .add all threads -> works 100%
import locks
var
thr: seq[Thread[void]]
L: Lock