Skip to content

Instantly share code, notes, and snippets.

@reeFridge
reeFridge / cute.bnf
Created October 3, 2018 21:13
cute-grammar-second-try
{
parserClass="org.cutejs.lang.parser.CuteParser"
parserUtilClass="org.cutejs.lang.parser.CuteParserUtil"
elementTypeHolderClass="org.cutejs.lang.psi.CuteTypes"
elementTypeClass="org.cutejs.lang.psi.CuteCompositeElementType"
tokenTypeClass="org.cutejs.lang.psi.CuteTokenType"
psiClassPrefix="JST"
psiImplClassSuffix="Impl"
@reeFridge
reeFridge / cute.flex
Last active October 3, 2018 21:11
cute-lexer-second-try
package org.cutejs.lang.lexer;
import com.intellij.lexer.*;
import com.intellij.psi.tree.IElementType;
import static org.cutejs.lang.psi.CuteTypes.*;
import static com.intellij.psi.TokenType.BAD_CHARACTER;
import static com.intellij.psi.TokenType.WHITE_SPACE;
%%
@reeFridge
reeFridge / .spacemacs
Created September 1, 2018 13:53
emacs-conf
;; -*- mode: emacs-lisp -*-
;; This file is loaded by Spacemacs at startup.
;; It must be stored in your home directory.
(defun dotspacemacs/layers ()
"Configuration Layers declaration.
You should not put any user code in this function besides modifying the variable
values."
(setq-default
;; Base distribution to use. This is a layer contained in the directory
@reeFridge
reeFridge / p2p-http.js
Created February 16, 2018 19:36
piece-to-piece-downlading-over-http
const exchangeMetadata = require('./lib/exchange-metadata');
const peerWireSwarm = require('peer-wire-swarm');
const hat = require('hat');
const bncode = require('bncode');
const parseTorrent = require('parse-torrent');
const DHT = require('bittorrent-dht');
const Bitfield = require('bitfield');
const crypto = require('crypto');
const http = require('http');
@reeFridge
reeFridge / print_by_kind.rs
Created January 16, 2018 17:54
Bencode recursively print
fn print_by_kind(v: &BencodeMut) {
match v.kind() {
BencodeRefKind::Bytes(bytes) => {
match std::str::from_utf8(bytes) {
Ok(val_str) => {
print!("{}", val_str);
}
Err(_) => {
print!("Bytes({})", bytes.len());
}
@reeFridge
reeFridge / m-echo-server.rs
Last active October 4, 2017 17:30
Echo server with broadcast feature (it is simple game-data-transfer-server and i am using him as game server for my side-scroller game project)
extern crate mio;
extern crate byteorder;
use byteorder::{ByteOrder, LittleEndian, BigEndian};
use mio::*;
use std::io::{self, Read, Write};
use mio::net::{TcpListener, TcpStream};
use std::collections::HashMap;
use std::convert::From;
// Setup some tokens to allow us to identify which event is
@reeFridge
reeFridge / side-run-server.rs
Last active October 2, 2017 07:55
server-app
extern crate mio;
use mio::*;
use std::io::{self, Read, Write};
use mio::net::{TcpListener, TcpStream};
use std::collections::HashMap;
// Setup some tokens to allow us to identify which event is
// for which socket.
const SERVER: Token = Token(0);
@reeFridge
reeFridge / side-run.rs
Last active October 4, 2017 17:27
Side-scrolling game with multiplayer (so ugly to read - but it works pretty well!)
extern crate ggez;
extern crate byteorder;
use ggez::conf;
use ggez::event;
use ggez::event::{Keycode, Mod};
use ggez::{GameResult, Context};
use ggez::graphics;
use ggez::graphics::{DrawMode, Point, Rect, Color};
use std::time::Duration;
@reeFridge
reeFridge / tcp-stp-handshake.rs
Last active September 7, 2017 14:19
Discover Scope Transport Protocol
extern crate encoding;
use std::net::{TcpListener, TcpStream};
use std::str::FromStr;
use std::io::{Read, Write, Result, Error, ErrorKind, BufRead, BufReader};
use encoding::{Encoding, EncoderTrap, DecoderTrap};
use encoding::all::{UTF_16BE, ASCII};
enum STP0Command {
Services,
@reeFridge
reeFridge / amed01.cpp
Last active March 23, 2017 21:09
Handmade Vector Class
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <vector>
#ifdef _MSC_VER
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <psapi.h>