Skip to content

Instantly share code, notes, and snippets.

View fversnel's full-sized avatar

Frank Versnel fversnel

View GitHub Profile
@fversnel
fversnel / baba.clj
Last active April 2, 2019 08:27
Baba is you spec
(ns babaisyou.spec
(:require [clojure.spec.alpha :as s]))
(s/def ::subject
#{:word/baba :word/wall :word/flag :word/grass})
(s/def ::verb
#{:word/is})
(s/def ::object
#{:word/you :word/push :word/stop :word/win})
(s/def ::sentence
@fversnel
fversnel / extra-database-assignments.md
Last active May 10, 2018 23:25
Extra database assignments

Extra assignments

Here are some extra assignments for everyone who has finished the database homework and couldn't get enough ;).

Indices

Indices are a very important feature to make queries faster.

  1. What is a database index? Explain in your own words.
@fversnel
fversnel / MachineLearning1.scala
Last active November 9, 2017 15:24
Following along in Scala with the Coursera Machine Learning course
import spire.implicits._
import spire.math._
class MachineLearning1[Number](implicit fractional: Fractional[Number]) {
import fractional.pow
private def number(integer: Int): Number = fractional.fromInt(integer)
type Hypothesis = Number => Number
@fversnel
fversnel / ComplexNumber.cs
Last active February 17, 2017 11:12
My first attempt at implementing lateral (i.e. imaginary) numbers. Currently implemented +, - and *
namespace Lateralus {
public struct ComplexNumber {
public readonly double Direct; // Real part
public readonly Lateral Lateral; // Imaginary part
public ComplexNumber(double direct, Lateral lateral) {
Direct = direct;
Lateral = lateral;
@fversnel
fversnel / BulletThreadingUnity.cs
Last active August 11, 2016 14:44
Bullet physics in a separate thread on Unity
using System.Diagnostics;
using System.Threading;
using BulletSharp;
using BulletSharp.Math;
using BulletUnity;
using UnityEngine;
using Vector3 = BulletSharp.Math.Vector3;
public class MultithreadingTest : MonoBehaviour {
private MotionState _bodyView;
@fversnel
fversnel / QuartzObservable.scala
Last active February 11, 2016 08:56
Creates an Observable from a cron expression using the Quartz scheduler
package org.frankversnel.rxquartz
import java.time.Instant
import java.util.UUID
import scala.concurrent.{ExecutionContext, Promise, Future}
import com.typesafe.scalalogging.Logger
import org.quartz._
import rx.lang.scala.{Observer, Subscription, Observable}
@fversnel
fversnel / UnetAvailablePort.md
Last active December 4, 2015 16:17
Get available port for UNET socket
using System.Net;
using System.Net.Sockets;
using UnityEngine.Networking;

var address = IPAddress.Parse("0.0.0.0");
int port;
using (var tempSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) {
    tempSocket.Bind(new IPEndPoint(address, port: 0));
 port = ((IPEndPoint) tempSocket.LocalEndPoint).Port;
frank@ui:~/Desktop/RakNet/DependentExtensions/Swig$ ./MakeSwig.sh ../../Source/
Performing Swig build
without SQLiteClientLogger
../../Source/RakNetDefines.h:28: Warning 305: Bad constant value (ignored).
../../Source/RakPeer.h:57: Warning 401: Nothing known about base class 'RNS2EventHandler'. Ignored.
../../Source/NatTypeDetectionClient.h:45: Warning 401: Nothing known about base class 'RNS2EventHandler'. Ignored.
../../Source/NatTypeDetectionServer.h:55: Warning 401: Nothing known about base class 'RNS2EventHandler'. Ignored.
../../Source/RakWString.h:40: Warning 503: Can't wrap 'operator wchar_t*' unless renamed to a valid identifier.
Swig build complete
Removing and replacing the sample cs files with fresh ones
using System;
using UnityEngine;
namespace RamjetAnvil.Networking {
public static class Compression {
public static class Rotation {
private const float Minimum = -1.0f / 1.414214f; // note: 1.0f / sqrt(2)
private const float Maximum = +1.0f / 1.414214f;
@fversnel
fversnel / FunctionalEntitas.cs
Created June 26, 2015 11:22
First version of a functional API for the Entitas framework
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
namespace Entitas.Functional {
/// <summary>
/// TODO Naming systems with string instead of Type