Skip to content

Instantly share code, notes, and snippets.

Jack Mott jackmott

Block or report user

Report or block jackmott

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jackmott
jackmott / main.rs
Last active Sep 9, 2019
chunk noise example
View main.rs
use minifb::{Key, Window, WindowOptions};
use simdnoise::NoiseBuilder;
use std::{thread, time};
const WIDTH: usize = 640;
const HEIGHT: usize = 640;
fn main() {
let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];
@jackmott
jackmott / duconverter
Created Mar 7, 2019
newtonsoft json DU converter
View duconverter
namespace AlphaFront
module JsonCustomConverters =
open Newtonsoft.Json
open Microsoft.FSharp.Reflection
open System
open System.IO
type DuConverter() =
inherit JsonConverter()
@jackmott
jackmott / pqueue.cs
Created Feb 3, 2019
priority queue in c#
View pqueue.cs
using System.Collections.Generic;
using System.Linq;
namespace FB
{
public class PQueue<T>
{
private SortedDictionary<float, Stack<T>> sdict;
View keybase.md

Keybase proof

I hereby claim:

  • I am jackmott on github.
  • I am jackmott (https://keybase.io/jackmott) on keybase.
  • I have a public key whose fingerprint is DE51 EA3B 8EFA E93E 229C C013 2C5A AAC6 CAD9 92F8

To claim this, I am signing this object:

@jackmott
jackmott / thread.cs
Created Jan 10, 2019
What could be thread unsafe about this?
View thread.cs
// When this function runs in my program on multiple threads, memory corruption eventually happens
// When it doesn't run, or runs on only 1 thread, no problems
// I can't see what could be thread unsafe about it, am I missing something?
public static float SingleCellular2EdgeSimple(float x, float y, float jitter, int seed)
{
int xr = (x >= 0) ? (int)(x + 0.5f) : (int)(x - 0.5f);
int yr = (y >= 0) ? (int)(y + 0.5f) : (int)(y - 0.5f);
float[] distance = { 999999f, 999999f, 999999f, 999999f };
@jackmott
jackmott / ast.fs
Created Dec 17, 2018
AST Cleaned Up
View ast.fs
open System
type ASTNode =
| Add of (ASTNode * ASTNode)
| Sub of (ASTNode * ASTNode)
| X
| Constant of int
let rec Evaluate node x =
match node with
View ConstantFold.fs
let rec ConstantFolding node =
match node with
| Add (l,r) -> match (ConstantFolding(l),ConstantFolding(r)) with
| (Constant v1,Constant v2) -> Constant(v1+v2)
| (optL,optR) -> Add(optL,optR)
| Sub(l,r) -> match (ConstantFolding(l),ConstantFolding(r)) with
| (Constant v1,Constant v2) -> Constant(v1-v2)
| (optL,optR) -> Sub(optL,optR)
| X -> X
| Constant v -> Constant(v)
View add.c
// Got a minute to revisit this question this morning and cleaned it up a lot
// - Jack
#define MAX(a,b) (((a)>(b))?(a):(b))
int ctoi(char c){
return (int)(c - '0');
}
char itoc(int i){
@jackmott
jackmott / wordwrap.cs
Last active Nov 11, 2018
word wrap for monogame
View wordwrap.cs
public static string Wrap(string s, int width, Func<string, int> widthMeasure)
{
StringBuilder builder = new StringBuilder(s.Length);
var text = s.AsSpan();
int start = 0;
int len = 0;
for (int i = 0; i < text.Length; i++) {
if (text[i] == ' ')
{
View pqeueu.cs
using System.Collections.Generic;
using System.Linq;
namespace FB
{
public class PQueue<T>
{
private SortedDictionary<float, Stack<T>> sdict;
You can’t perform that action at this time.