tl;dr - I do a web speed test on this site, get spam from a firm that does website speed consulting, I rant a little bit about it, then share a little bit about a startup idea I had at the end. I’ll be back to regular “exploring Kubernetes” related posts tomorrow! So this just happened (<5 minutes ago), but within seconds of heading over to Pingdom’s Speed test (I was really trying to test Piwik tracking on this blog), I got an email from some firm called SpeedUpgency that I’ve never heard of:
tl;dr - letsencrypt is awesome, ployst/docker-letsencrypt makes it easy to use with Kubernetes (feel free to check out the blog post that describes it). There are even easier ways to do it these days that I haven’t tried: kube-lego which looks pretty amazing. After going through figuring out how to run HTTP applications on Kubernetes, as well as how to run databases on Kubernetes, the next natural step is to figure out how to gear up to running HTTPS applications on Kubernetes.
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
*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.
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.
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:
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 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 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 & 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