Skip to content

Instantly share code, notes, and snippets.

View rexim's full-sized avatar
📺
https://twitch.tv/tsoding

Alexey Kutepov rexim

📺
https://twitch.tv/tsoding
View GitHub Profile
@rexim
rexim / simple_openssl_client.c
Last active March 25, 2025 23:04
Simple OpenSSL example that makes HTTPS request
// cc `pkg-config --cflags openssl` -o simple_openssl_client simple_openssl_client.c `pkg-config --libs openssl`
// Copyright 2021 Alexey Kutepov <[email protected]>
//
// 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 furnished to do so, subject to
#!/usr/bin/env python3
import random
cs = "BCDFGHJKLMNPQRSTVWXZY"
vs = "AEIOU"
def generate_name(n=3):
result = ""
for i in range(n):
@rexim
rexim / main.c
Created February 2, 2021 11:09
Stretching Buffer in C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
size_t size;
size_t capacity;
char *data;
} Buffer;
@rexim
rexim / main.c
Created February 1, 2021 14:58
Region-based memory management
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
typedef struct Region Region;
struct Region {
Region *next;
@rexim
rexim / main.c
Created January 30, 2021 14:16
Piping two commands together on POSIX
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <unistd.h>
@rexim
rexim / gol.adb
Last active January 24, 2021 09:32
Game of Life in Ada
-- $ gnatmake gol.adb
-- $ ./gol
with Ada.Text_IO;
procedure Gol is
use Ada.Text_IO;
Width : constant Integer := 10;
Height : constant Integer := 10;
@rexim
rexim / Main.hs
Last active June 15, 2023 17:15
Epic Screencast Adder PauseChamp
module Main where
import qualified Data.Text as T
import qualified Data.Text.IO as T
import System.Directory
import Data.Functor
-- NOTE: Yt stands for YouTube. It's a YouTube link to the video
type Yt = T.Text
@rexim
rexim / main.d
Created October 9, 2020 11:58
Game of Life in D
import std.stdio;
import std.traits;
import core.thread.osthread;
import core.time;
enum Cell {
Dead = 0,
Alive
}
@rexim
rexim / main.cpp
Created October 7, 2020 12:19
PCRE2 C++ example with named capture groups
#define PCRE2_CODE_UNIT_WIDTH 8
#include <stdio.h>
#include <string.h>
#include <pcre2.h>
#define MY_PATTERN "\\[(?<hours>\\d+):(?<minutes>\\d+):(?<seconds>\\d+)(\\.(?<milliseconds>\\d+))?\\] \\<(?<nickname>\\w+)\\> (?<message>.*)"
#define MY_SUBJECT "[0:00:01] <Tsoding> forsenPls forsenPls forsenPls forsenPls forsenPls forsenPls forsenPls forsenPls forsenPls forsenPls"
const char *line_comps[] = {
module Main where
import Data.Maybe
import Data.List
-- Solution for https://www.geeksforgeeks.org/averages-levels-binary-tree/
data Tree a
= Node a (Tree a) (Tree a)
| Leaf