Skip to content
View alwinb's full-sized avatar
⏳
πŸ‘·β€β™‚οΈπŸ 
⏳
πŸ‘·β€β™‚οΈπŸ 
Block or Report

Block or report alwinb

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
alwinb/README.md

Hi! πŸ‘‹ I am Alwin,

Welcome to my GitHub page! This is a place where I have collected some of my work and some research projects.

I often try to develop theory and application simultaneously.

A selection of projects, listed below.

URL Specification

I am working on a number of projects around the specification of URLs. This works aims to resolve the differences between the WHATWG standard and the IETF specifications. It adds support for relative URLs in a way that agrees with the WHATWG standard.

  • URL Specification β€” An URL specification that generalises the WHATWG standard.
  • URLReference β€” An URL class that adds support for relative URLs.
  • spec-url β€” A low level, core library that implements the URL specification above.
  • reurl β€” An alternative URL library with immutable URL objects.

HTML Language

I am working on some projects around the HTML language as well. The end goal is to create an accurate and concise characterisation of the HTML5 language as parsed, together with an implementation!

  • html-parser β€” An ongoing effort to define an ever simpler and more concise HTML parsing algorithm that agrees with the HTML5 standard.
  • html-lexer β€” An html lexer that produces annotated chunks of raw input.
  • tiny-html-lexer β€” A minute html tokeniser based on the previous, but using regular expressions.

DOM Expressions

  • Domex β€” Domex (short for DOM expressions) is an algebraic language for specifying web user interfaces. Domex works by pattern-matching on input (model or viewmodel) data, and allows for recursive patterns. One way to think of it is as "recursive format strings" that produce HTML.

Logic things

  • Regex β€” A regular expression compiler that computes deterministic state machines (DFAs) by implementing (and slightly extending) the theory of derivatives of regular expressions.
  • Ess β€” Ess is a research type-language for describing properties of sem-structured data (such as JSON) and a theorem prover for that language.

Category Theory

I wrote my Master's Thesis about the generalisation of Universal Algebra and Universal Coalgebra at the Institute for Logic, Language and Computation in Amsterdam; I've separated out the introductory notes on Category Theory and patched up some typos as well.

Graphics File Formats

Some fun projects.

  • Haikon-js β€” A parser for HVIF vector icon files, in JS (and Zig).
  • XoDB β€” Some support for the reMarkable tablet database and –notebooks in JS.

Other projects

  • immutable-aatree β€” A persistent ordered dictionary datastructure.
  • tiny-css-parser β€” A CSS parser with a small code-base.
  • tm-plist β€” A parser for the ASCII property list file format (as used by TextMate).

Pinned

  1. url-specification url-specification Public

    A rephrasing and generalisation of the WHATWG URL Standard

    HTML 7

  2. spec-url spec-url Public

    URL library that implements a reference resolution algorithm for WHATWG URLs

    JavaScript 5

  3. html-parser html-parser Public

    A new HTML5 parser that I am working on

    JavaScript 4 1

  4. haikon-js haikon-js Public

    A library for parsing HVIF vector icon files.

    JavaScript 2

  5. html-lexer html-lexer Public

    HTML5 compliant lexer

    JavaScript 23 4

  6. url-reference url-reference Public

    The URLReference class is designed to overcome shortcomings of the URL class.

    1