Skip to content

Instantly share code, notes, and snippets.

View kroggen's full-sized avatar

Bernardo Ramos kroggen

View GitHub Profile
@kroggen
kroggen / client.py
Created February 15, 2021 08:07
Length-prefix message framing in Python
import asyncio
import struct
def send_message(writer, message):
data = message.encode()
size = struct.pack('>L', len(data))
writer.write(size + data)
async def receive_message(reader):
data = await reader.readexactly(4)
@kroggen
kroggen / makeios
Created November 19, 2020 18:08
Compile libuv for iOS
#!/bin/bash
PLATFORMPATH="/Applications/Xcode.app/Contents/Developer/Platforms"
TOOLSPATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin"
export IPHONEOS_DEPLOYMENT_TARGET="8.0"
pwd=`pwd`
findLatestSDKVersion()
{
sdks=`ls $PLATFORMPATH/$1.platform/Developer/SDKs`
@kroggen
kroggen / queue.c
Created April 28, 2017 18:54
Simple implementation of a queue using linked list in C
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int val;
struct node *next;
} node_t;
void enqueue(node_t **head, int val) {
node_t *new_node = malloc(sizeof(node_t));
@kroggen
kroggen / test_sqlite_changeset.c
Last active August 11, 2016 20:36
sqlite3 session changeset example
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sqlite3.h"
int save_binary_file(char *file_path, void *buffer, int size) {
FILE *fp;
fp = fopen(file_path, "wb");
if (fp) {
@kroggen
kroggen / Android.mk
Created December 20, 2015 02:31
nanomsg on Android-15 and previous
LOCAL_PATH := $(call my-dir)/nanomsg
include $(CLEAR_VARS)
LOCAL_SRC_FILES := src/core/epbase.c src/core/sock.c src/core/poll.c \
src/core/symbol.c src/core/ep.c src/core/pipe.c \
src/core/sockbase.c src/core/global.c src/devices/device.c \
src/transports/inproc/ins.c src/transports/inproc/inproc.c \
src/transports/inproc/cinproc.c src/transports/inproc/binproc.c \
src/transports/inproc/sinproc.c src/transports/inproc/msgqueue.c \