Category: Uncategorized

  • Dependency Injection Patterns in Angel 2

    A first look at Angel 2’s revamped DI functionality. Along with the many new features coming in Angel 2, the dependency injection has been rethought from the ground up, saying goodbye to the mirrors-powered package:container, and instead rolling a new package:angel_container, which is type-safe, and aimed for Dart 2, as well as Flutter. As one…

  • Parsing String Interpolations with ANTLR4

    ANTLR is probably the best-known parser generator out there, and for good reason. It’s a powerful LALR generator that also generates listener and visitor classes, in a multitude of programming languages. Combine this with ANTLR4’s special features, like lexer modes, and lexer/parser actions, and building DSL’s and compilers is a lot faster, because the number…

  • Angel 2.0.0 is Almost Here – What it Means for You

    Version 2.0.0 of the batteries-included Web application framework for Dart is coming very soon. Here’s what you need to know. Since early 2016, I’ve been working on and maintaining Angel, a server-side Dart Web framework designed to increase developer productivity by providing “all batteries included” out-of-the-box, and putting an emphasis on customizability and configurability. Like…

  • GraphQL is coming to Angel (and Dart)

    What could be a "killer feature" for the Angel framework, is coming very soon. As my close friends will surely tell you, I have a habit of taking on multiple projects at a time, getting so excited to be trying something new, that I leave other projects in the dust. Thus, my previous effort to…

  • The Story of my Migration to Dart 2

    The latest version of Dart promises improved type safety and better client-side support. What else will it bring? I am a power user of Google’s Dart programming language. I’ve always been a fan of the tooling and libraries, and since my first exposure to Dart almost three years ago, have published over 140 packages into…

  • Building an Esolang JIT with GNU LibJIT

    Just-in-time, or JIT compilation, is no new development at all; languages like Java, Python, and the countless languages running on the .NET framework have leveraged JIT compilation for many years now. It can be said that JIT compilation provides the best of the compiled and interpreted worlds: fast startup and high-level features, but execution at…

  • 10 Key Differences between C/C++

    It might seem like second nature after a while, but for those new to programming, the abundance of language options can often be overwhelming, especially when many seem similar at first, but have different features and use cases. In this video, I give a brief (~24 minute) presentation explaining 10 of the key differences that…

  • Compiler Writing: Pratt-Parsing Types

    As much as we might like to think that data types are fixed in place, data types are actually just as mutable as the values they categorize. Consider the following: Given: A type exists, by the name of `Int`.Given: Another type exists, by the name of `List`. How, then, could we describe a type named…

  • Compiler Writing: A Basic Static Type System

    Build a basic static type system, and prevent unnecessary runtime bugs! For many, if not all programming languages, a significant part of static analysis is data type analysis. If a compiler can categorize expressions into predictable types, then you can prevent many errors, such as passing a string into a function where an integer was…

  • Developing RESTful APIs with Angel

    It’s faster and easier than ever to build fast, secure API’s with Angel. This post is, more or less, a response to Prosper Otemuyiwa’s recent post about Lumen. View the source code for this example here. Contents Get Started Creating a Service Validation Ensuring Unique Emails Preventing Unauthorized API Access Authentication Authorization Conclusion Angel is…