Blog

5 min read

Crash course in Swift's 'function builders' with SwiftUI

  • Swift
  • SwiftUI

Function builders are a new proposed feature in Swift that would allow for an expressive and descriptive way to create values. One of the new usages of this feature is in SwiftUI to effectively represent declarative UIs.

2 min read

'Opaque' Types in Swift 5.1

  • Swift
  • SwiftUI

Swift 5.1 introduces a new 'type' in a sense. These are prefixed with the keyword 'some' and are sometimes thought of as generics for returns.

1 min read

Importance of lightweight languages for embedded contexts

  • Compilers

A programming language is the art of designing an abstraction as to abstract away the complexities upon more and more layers of complexity. Over the past decade, upon the most computationally capable…

4 min read

The Push Protocol and the Web

  • Web

Push notifications offer user retention and engagement. Integration is now possible with the web through the Push Protocols. Information is pretty scattered and most is generally regarding libraries so I'll cover in this article how to create a modern Push Notification server in a language-agnostic way using the Push API.

2 min read

How to Type Deduction

  • Compilers

Type deduction seems daunting but the solution is simple enough: constraint negotiation, this has the side effect of performing variable resolution and all for you too.

4 min read

Using LLVM for seamless interop with Clang languages

  • Compilers
  • Objective-C
  • iOS
  • Clang

Recently I’ve been working on a project, VSL which is a bare-metal, high-level, compiled language. The problem is with new languages, particularity obscure ones made in someone’s spare-time is it…

0 min read

Formal Grammar and Automata Theory

  • Grammars

A brief overview of the history and development of formal grammar and automata theory.

3 min read

Your CS teacher is wrong about Regex

  • Regex
  • Grammars

Basically everywhere you turn there's someone who is telling you not too use regex. While that does have a level of validity to it, I think it has come more towards a level of misunderstanding.

1 min read

Parsing Expressions

  • Compilers
  • Grammars

So you’re writing a parser? Expressions are probably one of the more difficult items you’ll come upon to parse but hopefully this article will explain how to handle them.

1 min read

Resolving Git Accidents 101

  • Git

Accidentally commit or do something in Git that you want to undo? Well you’ve come to the right place!

3 min read

Special Symbols Seem Super Sensible

  • JavaScript
  • ES6

Excuse the horrible alliteration in the title. This is yet another article on JavaScript ES6’s “Symbols” which due to their unique property, can provide much more powerful behavior, in what I’d say is close to operator overloading with them.

3 min read

Dealing with surrogates in JavaScript

  • JavaScript
  • ES6

So there are these great, but painful to program with thing, called surrogate pairs. If you’re reading this, you’re probably having trouble with them but hopefully after you read this, those troubles will be gone.

1 min read

The grammar to end all grammars!

  • Compilers
  • Grammars

Have you been stuck, trying to make an expression parser but you just can't? Well just put this in your parser gen, and you’ll be good to go!

2 min read

ES6's Unique Symbols

  • JavaScript
  • ES6

ES6 brings a pretty nifty feature— Symbols. Symbols may seem like a small feature but they have such a wide array of uses which can really help make your JavaScript safer and easier to understand.

1 min read

Synchronously async-ing

  • JavaScript
  • ES6

JavaScript has always had problems with having 8-indent deep nested functions due to its lack of good async support but in ES7, that has finally come to a change! I am surprised at how unpopular this is, but it seriously deserves some more attention so I thought I’d write about it.

1 min read

What is Bloggoat?

    Bloggoat separates into two words— **Blog** and **Goat**, which are essentially what this is… a blog. I’ll cover mostly programming, and other technical things I think are cool...