Skip to content

Instantly share code, notes, and snippets.

View Forkk's full-sized avatar
📖
Archive all the things!

Forkk Forkk

📖
Archive all the things!
View GitHub Profile
@Forkk
Forkk / grpl.md
Last active April 7, 2020 23:01
GRPL Guide

GRPL Guide

GRPL (short for Greenstone Reverse Polish Language) may be quite different from the languages you're used to, but its implementation is very simple. This guide aims to introduce both experienced and novice programmers to GRPL. If you've used a similar stack-based language before, you'll probably already be familiar with most of the concepts here, but you may want to skim this guide anyway to refresh your memory, and familiarize yourself with some GRPL-specific syntax.

How to Stack

@Forkk
Forkk / keybase.md
Created January 10, 2020 06:57
Keybase Proof

Keybase proof

I hereby claim:

  • I am forkk on github.
  • I am forkk (https://keybase.io/forkk) on keybase.
  • I have a public key ASBAhr3LbMM7VguS-WPQTSTO6d8h4YwVSXL7oKBdJnfjMQo

To claim this, I am signing this object:

@Forkk
Forkk / fizzbuzz.js
Created September 6, 2017 00:44
FizzBuzz in JavaScript ;)
[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]][([]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+(!![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+[+[]]]+(!![]+[])[!![]+!![]+!![]]+(+[![]]+[[!![]][+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]+[+[]]]]]+[][(![]
-- | Sample an auto's output when a blip stream outputs something.
--
-- Takes two autos, one which outputs a some value, and another which outputs a
-- blip stream. Produces an auto which outputs a blip with the contents of the
-- first auto whenever the blip stream outputs.
sample :: forall m a b c. (Monad m) =>
Auto m a c
-> Auto m a (Blip b)
-> Auto m a (Blip (b, c))
sample valueAuto blipAuto = onJusts <<< arr extractMaybe <<< ((asMaybes <<< blipAuto) &&& valueAuto)
@Forkk
Forkk / gist:527e95ca12c6c251b01f
Last active August 29, 2015 14:14
repoman2 Design

With the repository manager, the GoUpdate spec will be somewhat overhauled, but the goal is to do so in a manner which is backwards compatible.

Firstly, in repoman2, we are introducing the concept of a "collection". A collection is simply one big folder containing a folder for each platform the application runs on.

A platform directory, or platform, refers to a folder containing GoUpdate repositories (or channels) for a particular platform. Inside this platform directory is a channels.json file, which contains information about all of the

@Forkk
Forkk / Gloss.hs
Last active August 29, 2015 13:56
import Graphics.Gloss
import Hypercubes
import PVector
import qualified Data.Vector as DVector
import GHC.Float
import Data.Fixed
@Forkk
Forkk / VersionNumbering.md
Created January 7, 2014 22:39
Description of yet another possible new versioning system for MultiMC.

MultiMC Version Numbering

Release Version Numbers

Release version numbers are a part of the version name that indicates what the last release was. For stable release builds, the version string only contains a release version, but version names for development and release candidate builds include other information such as the release candidate revision and the development build number.

MultiMC's release version numbers consist of three numbers, the major revision, minor revision, and hotfix number. The "5" in MultiMC 5 is not a part of MultiMC's version numbers, it is simply part of the name. It's MultiMC 5 version 0.3.1, not MultiMC version 5.0.3.1. The major revision number increments when major features are added or major code changes are made. The minor version is incremented whenever smaller features or bugfixes are made. The hotfix number is only incremented when hotfixes are made and is usually excluded unless it is greater than zero.

@Forkk
Forkk / MultiMC-Git-Workflow.md
Created January 7, 2014 18:59
Draft of a document outlining the Git workflow that is to be used for MultiMC.

This is still a work in progress, but feel free to comment and make suggestions.

MultiMC Git Workflow

As the MultiMC project grows and more people contribute to the project, we have found our previous ways of using Git to be inadequate to properly maintain the project any longer. As such, this document shall outline a standard workflow to be used by all contributors and maintainers when working on the project.

Definitions

@Forkk
Forkk / updater.md
Last active December 30, 2015 01:09
Design doc for MultiMC's update checker and downloader.

Vocabulary

Before we start, I'd like to define some vocabulary that has been a source of confusion in previous discussions of MultiMC's versioning and update systems. This is the vocabulary that will be used throughout this design document.

  • branch - Refers to a branch on the Git repository. Nothing more, nothing less.
  • channel - Channels are separate "types" of builds (don't call them types), usually built off of different branches of the code. For example, there may be a "stable" channel and "develop" channel for stable and development builds.
  • repository / update repository - A GoUpdate repository.
  • builder - A single Buildbot build configuration.
@Forkk
Forkk / basic-info.md
Created November 26, 2013 16:49
MultiMC Analytics System

MultiMC Analytics

This is an outline for a possible analytics system for MultiMC.

It will be an optional system that works similarly to Minecraft's snooper, collecting anonymous information about a user's hardware, operating system, MultiMC version, etc. This will allow us, the MultiMC developers, to be able to see how many users we have, what versions they're using, what OSes they're using, etc. The system might be able to give us some insight whether the update system is being used or not.

Tracked Information