We have come to the point where companies possess so much data that they themselves are unable to predict the long-term effects that such a centralization might have. Therefore, it is unreasonable to use informed consent as an excuse, since no individual can reasonably understand what giving up control over small or large pieces of their data will eventually lead to.

Re-decentralizing the Web, for good this time

Well written article on swinging the pendulum of the Internet back towards de-centralization.

Quick tmux Sessions

One of the great things about tmux is its ability to be scripted. You can write a tmux script to setup an entire environment for any project you are working on. Sometimes you would like a simpler tmux session for smaller projects or one-off editing sessions. This shell script can be used to create those simple tmux sessions easily.

Project Wide Search in Vim

One of the things I don't think Vim handles very well out of the box is project wide, recursive searches. Sure, it has the :grep and :vimgrep commands, but neither of them search recursively by default. You can make them search recursively, but you might then end up seeing many results from directories like .git and node_modules which will clutter up the search results.

This article will show you how to overcome those problems and teach you how to create your own key mappings in Vim.

The much anticipated 1.0 release of Julia is the culmination of nearly a decade of work to build a language for greedy programmers. JuliaCon2018 celebrated the event with a reception where the community officially set the version to 1.0.0 together.

Julia 1.0.0 Release

After reading the stated goals for creating Julia I am going to have to spend some time learning it.

Lily is a programming language that's been under development for several years. Lily is statically-typed, with an interpreter as a reference. Lily uses reference counting for memory management with garbage collection as a fallback.

Seems like everyone is building their own language these days.

Bellenson (a molecular biologist) and Smith (an industrial engineer), had previously launched a successful gene sequencing software company. If anyone had the technical chops to digitize scent, it was them.

The failed quest to bring 'Smells' to the Internet

This was one of my first programming jobs and still one of the most fun jobs I ever had. I wish the ride hadn't ended so abruptly.

Recognizing Keywords

Most programming languages have a set of reserved keywords. The compiler or interpreter has to have a way to identify those keywords while the source code is being read. Here is how I do it for Cube.

Gravity is a powerful, dynamically typed, lightweight, embeddable programming language written in C without any external dependencies (except for stdlib). It is a class-based concurrent scripting language with a modern Swift like syntax.


Now that I am paying attention I see interesting new programming languages popping up all over the place.

T2b - A wicked-powerful text macro language for building binary files. Supports comments, looping, Unicode, variables, conditionals, macros and recursion.

T2b Github

Interesting little language for generating binary files. All done in less than 300 lines of C++ code.

Starting the Cube Project

Getting started on a new programming language and floundering around looking for how to structure the code. Fun, fun fun.

We are committed to being stewards of the GitHub community, which will retain its developer-first ethos, operate independently and remain an open platform.

Microsoft acquires Github

Fingers crossed that Microsoft means what they say and doesn't slowly ruin Github.

Interpreter Project: Inheritance

This is the last article in this series. The Lox language is feature complete, though far from actually complete. It is time to move on to something a little more realistic.

Interpreter Project: Classes

Classes were added to the language this time. Almost everything is in place, Class declarations, object initialization, properties, methods, references to 'this', etc. The only thing missing is Inheritance. That is added in the next section.

As normal as tracking all the stuff used to feel to me, after stopping I realized what a mental toll quantification had on me. Some quantification ties right into the variable reward pattern, some quantification (or lack thereof) leads to failed expectations and goal setting that really misses the point of setting goals to be healthy.


Interesting take on also letting go of fitness tracking along with social media.

Interpreter Project: Resolving and Binding

This section was all about adding a Semantic Analysis step to the project. A Resolver is created to walk the Parse Tree and make note of where and how variables are accessed. That data is then provided to the Interpreter code to prevent a potential bug.

Mint is a refreshing, strongly typed, expression-oriented programming language for the front-end web.

Looks like an interesting language. I'm assuming it compiles to Javascript, though I can't seem to find out for sure from their documentation.

Interpreter Project: Functions

Function declarations and function calls. This looks like a real language now. Of course there is no standard library, no networking library, input / output library, etc. It is apparent to me now that the language definition is relatively easy. It is all the supporting libraries that constitute the bulk of the work.

Proxies are a tool used for metaprogramming. They allow you to reach into common object operations, such as getting and setting properties, and make them do whatever you want. All it takes is wrapping an object in a call to `new Proxy` to open up a magical realm.

Abusing Proxies for DSLs

Interesting DSL created in about 100 lines of Javascript. I wonder if it could be duplicated in Ruby.

Interpreter Project: Control Flow

Branching and looping, two very critical pieces of any Turing complete programming language, are now available. With all of the other work that has been done these features were quite easy to implement as well.

Anyone can say they want to "change the world" and that "it's not about the money" — but talk is cheap — so we made our mission legally binding. At a time when the world sometimes seems totally devoid of integrity, we really just wanted to create something with unquestionable integrity.

Building Ghost

Love this. A ray of light after months of disturbing news from tech.