Skip to content

Instantly share code, notes, and snippets.

View itarato's full-sized avatar

Peter Arato itarato

  • Montreal, Canada
  • 10:14 (UTC -03:00)
View GitHub Profile
@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)
@itarato
itarato / dmg_beep.rs
Created April 30, 2019 01:08
DMG Boot logo beep sound prototype.
extern crate sdl2;
use sdl2::audio::{AudioCallback, AudioSpecDesired};
use std::sync::{Arc, Mutex};
use std::time::Duration;
struct SoundPacket {
pitch: f32,
len: Option<usize>,
volume: f32,
@itarato
itarato / serde_json_dig.rs
Created December 8, 2018 13:49
Serde JSON nest digger
use serde_json::Value;
#[derive(Debug)]
enum Shovel {
Key(&'static str),
Index(usize),
}
fn dig(val: Value, with: &[Shovel]) -> Option<Value> {
if with.len() == 0 {
@itarato
itarato / translation.rb
Last active November 28, 2018 14:13
Translation finder
# USAGE: ruby PATH_TO_SCRIPT/translation.rb "TOKEN_TO_TRANSLATE"
require 'yaml'
LANG = 'en'
subject = ARGV[0].split('.')
`find . -name '#{LANG}.yml'`
.lines
.map { |line| YAML.load(IO.read(line.strip))[LANG] }
@itarato
itarato / nqueen.rb
Last active November 9, 2018 01:03
N-Queen with recursive and non-recursive algorithm
require 'pp'
def run_test
make_board = -> { 8.times.map { [0] * 8 } }
board = make_board.call
return false unless ok?(board)
board = make_board.call
board[0][0] = 1