Web

Stop Using React

BSD + PATENTS.md != F/OSS. Stop using React.

vados

6 minute read

tl;dr The BSD + PATENTS.md pattern is not F/OSS. Facebook is trying to goad you into entering a mutually assured destruction patent stalemate, but you don’t have nukes. They do. Stop using React, there are other better alternatives. Before you get into my thoughts, maybe you’ll want to look at some other debate from other strangers on the internet: Discussion of Facebook’s explanation on HN Discussion on Apache Foundation banning use of React on Reddit

Adding A Merge Patch Content Type To Servant

How to add a content type for HTTP spec compliant merge-patching in Servant

vados

6 minute read

*tl;dr See the code at the end Very often when developing a web application I run into the age-old problem of how to do partial updates. Doing the “U” (Update) in CRUD is actually a little more complicated than just accepting PUTs at some endpoint if you dont’ want to replace the object as a whole. I’ve often worked around this while maintaining somewhere-near spec complicance by just using the catch-all that is POST, and taking whatever object represented the update and doing whatever needed to be done.

Research Idea: Maintaining A Write Ahead Log For Application Runtime State

Exploring the stepladder of features that lead to well-engineered backends

vados

13 minute read

tl;dr:What if there was a write-ahead-logging layer above/outside the database? Then you could get CQRS+ES capabilities and assurnaces from your database without rewriting, and even abstract out the database as a whole, going as far as to create your own DSL for application-level changes, ADD_USER instead of INSERT … INTO USERS …* I spend a bunch of time thinking about how I can waste less time writing applications. Over time I’ve worked on various protoypes, with varying levels of completeness, but as I move across languages, frameworks, databases, and stacks, I always find myself solving the same problems, and having the same worries.

Case Study: Building A URL Bouncer

Building a URL bouncer for a servant-powered web application

vados

19 minute read

tl;dr - Building a simple URL bouncer with Servant isn’t that hard, and the usual warm fuzzies you get from well-typed functions, interfaces, and code still apply If you’re not familiar with Haskell or Servant, the former is a programming language that focuses on pure functional concepts and the latter is one of the most interesting/popular frameworks for it that specializes in exposing your API as a type itself. A brief taste of both of these things is below:

vados

5 minute read

Getting started with servant, part 2 tldr; Use enter to inject database information, monads and monad transformers rear their ugly heads but not for long. Multi-part blog post alert This is a multi-part blog-post! Part 1 - Getting Started with servant Part 2 - Getting Started with servant, Part 2 What are the ways to pass database information into an application using servant? From what I can tell, there are 3 main approaches to getting the database management object (whatever that is) into the app:

Getting started with servant (Part 1)

Adventures in functional programming and simple web API servers

vados

12 minute read

Getting started with Servant tldr; Haskell cool, Servant is awesome, and is a really interesting way to represent APIs in a way blessed by Haskell’s enormously powerful type system. Starting with it can be kind of difficult, but it’s a good kind of mind-bending. Multi-part blog post alert This is a multi-part blog-post! Part 1 - Getting Started with servant Part 2 - Getting Started with servant, Part 2 Background Recently I’ve been working on a project called The Start, which is meant to be a job board targeting some niches job markets in Tokyo/Japan.

Spotify's 2017 web app redesign

My opinions on the 2017 Spotify Redesign

vados

2 minute read

Spotify’s 2017 Redesign tldr; I love Spotify’s web app redesign, and while some features I did like are missing, they were not fully fleshed out so maybe Spotify is working on improvements before they return. I logged in to Spotify’s web app recently and noticed an all-new redesign of the site. Of course, as soon as I logged in I was prety taken aback, because the new design is very different from what existed before it, and took a second for my eyes to get adjusted to.

Switching from Mocha to Tape and testing E2E

Switching from Mocha to Tape, Seeing if the E2E methodology holds up

vados

5 minute read

Switching from Mocha to Tape & testing E2E Before reading this post, it might make sense to check out my previous posts on the topic: Part 1 - Unit testing with JSPM, Mocha, and Vue.js Part 2 - More testing with JSPM, Mocha, and Vue.js Part 3 - Testing the DOM Part 4 - Switching from mocha to tape BONUS Want to see it all working? Check out the gitlab repo with a fully-built example

Testing DOM with Mocha, part 3

Getting DOM-level testing working with VueJS components & Mocha

9 minute read

Doing DOM-level tests with Mocha & VueJS (part 3…ish) Before reading this post, it might be helpful to check out my previous (or other) posts on the topic: Part 1 - Unit testing with JSPM, Mocha, and Vue.js Part 2 - More testing with JSPM, Mocha, and Vue.js Part 3 - Testing the DOM Part 4 - Switching from mocha to tape BONUS Want to see it all working?

vados

3 minute read

Testing with Mocha and JSPM (and SystemJS), continued So after messing with my testing set up for a while, I found that there was a little more setup required to get my components to test properly with mocha. tldr; some more setup is required to get the code in the previous blog post to work properly, check it out below: Multi-part blog post alert This is a multi-part blog-post!