Skip to content

Instantly share code, notes, and snippets.

View itarato's full-sized avatar

Peter Arato itarato

  • Montreal, Canada
View GitHub Profile
@itarato
itarato / thread_test_experiment.rb
Created February 19, 2023 04:28
Thread step management enhanced testing
require("thread")
class Foo
def initialize(arr)
@arr = arr
end
def update
i = @arr[-1]
@arr.push(i + 1)
@itarato
itarato / hilbert_space_filling_curve.png
Last active May 2, 2022 01:30
Turtle-ish drawing with Python
hilbert_space_filling_curve.png
@itarato
itarato / asm.hs
Last active April 25, 2022 01:50
ASM interpreter in Haskell
import Control.Monad.State
import Data.Foldable
import Text.Read
import Control.Applicative
import System.IO
data Regs = Regs {
ax::Int,
cx::Int,
dx::Int,
@itarato
itarato / data_def.rb
Last active November 5, 2020 03:35
Playing with (almost) algebraic data definitions in Ruby
class Def
class DataContainer
def initialize(name)
@name = name
@members = []
@last_constructor = nil
Object.const_set(name, self)
end
@itarato
itarato / migrate_feature.rs
Last active June 14, 2020 02:01
Feature migration framework brainstorm
use std::cell::{RefCell};
/****************************************
* Abstractions
*/
trait Task {
fn get_name(&self) -> String;
fn get_description(&self) -> String;
fn is_complete(&self) -> bool;
@itarato
itarato / game_of_life.c
Created December 6, 2019 23:17
Game of Life (in C/SDL)
#include "SDL.h"
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#define SIZE 1000
struct cell {
@itarato
itarato / game_of_life.py
Created December 6, 2019 02:27
Game of Life (in Pyxel)
import pyxel
import random
class App:
def __init__(self, size, game_of_life):
super().__init__()
self.size = size
self.game_of_life = game_of_life
@itarato
itarato / non_blocking_queue.c
Last active September 30, 2019 02:22
Non blocking queue.
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#define EXAMPLE_SIZE 100
#define CONSUMER_COUNT 10
static pthread_mutex_t q_mtx; // = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t q_cond = PTHREAD_COND_INITIALIZER;
@itarato
itarato / maze.hs
Last active August 19, 2019 02:28
Learning functional maze
{-
Funcitonal Maze
Run: runhaskell <SOURCE> <WIDTH::Int> <HEIGHT::Int> <RANDOM_SEED::Int>
Control:
- [W] [A] [S] [D]: move up, left, down, right
- [Q] [E|SPACE]: rotate counter-clockwise, clockwise
- [ESC]: quit
-}
@itarato
itarato / parser_combinator.rb
Last active February 28, 2021 06:14
Parser combinator trial
require 'pp'
require "test/unit"
class String
def parse_response
ParseResponse.new(self)
end
def token
for_tokens(self)