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 ;)
[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]][([]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[+!![]+[+[]]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+(!![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+!![]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+[+[]]]+(!![]+[])[!![]+!![]+!![]]+(+[![]]+[[!![]][+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!![]+[+[]]]+(![]+[])[!![]+!![]]+(![]+[])[!![]+!![]]])[!![]+!![]+!![]+[+[]]]]]+[][(![]
@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

@Forkk
Forkk / versioning.md
Last active December 29, 2015 09:18
An outline of how we might do versioning in MultiMC 5.

MultiMC 5's versioning system will consist of multiple git branches, each with its own buildbot builder and completely separate build numbers. This system should allow us to, given a specific version number, immediately recognize which builds have newer features than others.

For example, build 42-stable is not necessarily any newer than build 41-dev, but build 42-dev is definitely a newer version than build 41-dev.

Furthermore, we should probably change the way we do major.minor.revision versioning. We never really use them. Perhaps we should just keep the major.minor part. We can increment major when we add a major feature and increment minor when we add some smaller feature. We won't increment either one for bugfixes or tweaks.

@Forkk
Forkk / gist:6082555
Created July 25, 2013 18:41
MCRewind Design Doc

Goals

During patch generation, the script will need to do the following:

  • Generate a JSON file containing a list of versions we have patches for along with some info about those versions and said patches.
  • Generate bsdiff patches for patching from the current version minecraft.jar to each jar file in the jars folder.
  • Automatically download new versions of Minecraft into the folder of old jars, so that the script can generate patches for them in the future.
@Forkk
Forkk / gist:1624468
Created January 17, 2012 03:36
And this is why I love C#
public void Save()
{
string[] line = new string[dict.Count];
for (int i = 0; i < dict.Count; i++)
{
line[i] = dict.Keys[i] + "=" + dict.Values[i];
}
File.WriteAllLines("", line);