This was a response to a Hacker News comment asking me what I've been up to since 2010. I'm posting it here since HN rejects it with "that comment is too long." I suppose that's fair, since this ended up being something of an autobiography.
--
What happened after 2010?
When using findOrFail()
or findOneOrFail()
from typeORM, a 500 error is returned if there is no entity (EntityNotFoundError).
To make it returns a 404, use an exception filter as described in https://docs.nestjs.com/exception-filters .
file /src/filters/entity-not-found-exception.filter.ts
By Steve Yegge
Last week I accidentally posted an internal rant about service platforms to my public Google+ account (i.e. this one). It somehow went viral, which is nothing short of stupefying given that it was a massive Wall of Text. The whole thing still feels surreal.
Amazingly, nothing bad happened to me at Google. Everyone just laughed at me a lot, all the way up to the top, for having committed what must be the great-granddaddy of all Reply-All screwups in tech history.
But they also listened, which is super cool. I probably shouldn’t talk much about it, but they’re already figuring out how to deal with some of the issues I raised. I guess I shouldn’t be surprised, though. When I claimed in my internal post that “Google does everything right”, I meant it. When they’re faced with any problem at all, whether it’s technical or organizational or cultural, they set out to solve it in a first-class way.
Anyway, whenever something goes viral, skeptics start wondering if it was faked or staged. My accident
ngrok allows you to expose a web server running on your local machine to the internet.
I recently happened upon a very interesting implementation of popen()
(different API, same idea) called popen-noshell using clone(2)
, and so I opened an issue requesting use of vfork(2)
or posix_spawn()
for portability. It turns out that on Linux there's an important advantage to using clone(2)
. I think I should capture the things I wrote there in a better place. A gist, a blog, whatever.
This is not a paper. I assume reader familiarity with
fork()
in particular and Unix in general, though, of course, I link to relevant wiki pages, so if the unfamiliar reader is willing to go down the rabbit hole, they should be able to come ou
Since Twitter doesn't have an edit button, it's a suitable host for JavaScript modules.
Source tweet: https://twitter.com/rauchg/status/712799807073419264
const leftPad = await requireFromTwitter('712799807073419264');
var gulp = require("gulp"), | |
concat = require("gulp-concat"), | |
minify = require("gulp-minify-css"), | |
sass = require("gulp-sass"), | |
sourcemaps = require("gulp-sourcemaps"), | |
rename = require("gulp-rename"), | |
php = require("gulp-connect-php"), | |
gulpif = require("gulp-if"), | |
env = process.env.NODE_ENV || "dev"; |
Never break backcompat, keep the API nimble
An extension of SemVer with a stricter (yet more realistic) backcompat guarantee, that provides more flexibility to change the API, for libraries that are packaged and downloaded (not services accessed remotely over the Internet (see Note 4)).
#!/bin/bash | |
set -e | |
# file: hooks/post-receive inside git repository. | |
$WORK_DIR=path/to/work/directory | |
$GIT_DIR=path/to/git/directory | |
git --work-tree=$WORK_DIR --git-dir=$GIT_DIR checkout -f |