Note: This post is a summary of information paraphrased from an excellent blog post by Christian Sepulveda.
Create the app and download the necessary dependencies.
const fastify = require('fastify'); | |
function init(serverFactory) { | |
const app = fastify({ serverFactory }); | |
app.get('/', (request, reply) => reply.send({ hello: 'world' })); | |
return app; | |
} | |
if (require.main === module) { | |
// called directly i.e. "node app" |
Create the app and download the necessary dependencies.
This cheat sheet provides a detailed overview of the exposed lifecycle events and available commands (and entrypoints) of the Serverless framework, that can be hooked by plugins (internal and external ones). The document is structured by the commands invoked by the user.
Lifecycle events are shown as the globally available outer events (all providers) and sub lifecycle events that are provider specific in the called order. Currently only the AWS provider is shown. If you have information about the other provider,
Create file /etc/systemd/system/[email protected]
. SystemD calling binaries using an absolute path. In my case is prefixed by /usr/local/bin
, you should use paths specific for your environment.
[Unit]
Description=%i service with docker compose
PartOf=docker.service
After=docker.service
# Simple function that uses a heuristic to tell if a function | |
# is native code. Luckily this isn't security related code. | |
isNative = (fn) -> | |
return (/\{\s*\[native code\]\s*\}/).test('' + fn) | |
# An easy check to ensure we are on a modern browser | |
isModernBrowser = -> | |
return ( | |
window.addEventListener && | |
window.performance?.now && |
The following are examples of the four types rate limiters discussed in the accompanying blog post. In the examples below I've used pseudocode-like Ruby, so if you're unfamiliar with Ruby you should be able to easily translate this approach to other languages. Complete examples in Ruby are also provided later in this gist.
In most cases you'll want all these examples to be classes, but I've used simple functions here to keep the code samples brief.
This uses a basic token bucket algorithm and relies on the fact that Redis scripts execute atomically. No other operations can run between fetching the count and writing the new count.
A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
Name | Stars | Last Commit | Description |
---|---|---|---|
three.js | ![GitHub |
ffmpeg -i input.mov -vcodec libwebp -lossless 1 -q:60 -preset default -loop 0 -an -vsync 0 output.webp |
#!/bin/bash | |
for c in $(brew cask list); do | |
info=$(brew cask info $c) | |
installed_ver=$(echo "$info" | cut -d$'\n' -f1 | tr -d ' ' | cut -d':' -f 2) | |
current_ver=$(echo "$info" | cut -d$'\n' -f3 | cut -d' ' -f 1 | rev | cut -d'/' -f 1 | rev) | |
if [ "$installed_ver" != "$current_ver" ]; then | |
echo "$c is installed '$installed_ver', current is '$current_ver'" | |
brew cask reinstall $c | |
fi |
Direct copy of pre-encoded file:
$ ffmpeg -i filename.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls filename.m3u8