- Configure Kirby for Dokku
- Install deployment-keys and host keys Dokku plugins
- Set up staging and production environments
- Clone project repository into apps persistent storage folders
- Mount desired folders including
.git
folder to apps - Add
GIT_DIR
andGIT_WORK_TREE
environment variables to containers - Deploy to Dokku
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Simulates try/catch statements wrapping async functions in (nested) object | |
// Returns copy of original object with basic promise-rejection handling for async functions using .catch | |
// Saves the time of writing try/catch statements in every single async function | |
const trycatch = obj => Object.keys(obj) | |
.reduce((acc, curr) => ({ ...acc, [curr]: obj[curr] instanceof Function | |
? (...args) => obj[curr](...args).catch(::console.error) | |
: trycatch(obj[curr]) }), {}) | |
- Create certificates
- Edit Docker options
- Restart Docker
- Copy client certificates from host
- (optional) Add remote endpoint in Portainer
Tested on a standard $5/mo DigitalOcean VPS running Ubuntu 16.04.
Using the PostGIS extension on a PostgreSQL database with Dokku
docker pull mdillon/postgis:latest
export POSTGRES_IMAGE="mdillon/postgis"
export POSTGRES_IMAGE_VERSION="latest"
dokku postgres:create my-postgis-db
npm i k-d-tree
const kd = require('k-d-tree')
const data = new Array(1000)
.fill()
.map(() => ({
type: "Point",
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
echo "Compositing files and ramping up video framerate" | |
echo "================================================" | |
rm -rf render && mkdir render | |
for file in *.mov; do | |
# Ramp up video framerate, add audio | |
ffmpeg \ |
Combining TensorFlow for Poets and TensorFlow.js.
Retrain a MobileNet V1 or V2 model on your own dataset using the CPU only.
I'm using a MacBook Pro without Nvidia GPU.
MobileNets can be used for image classification. This guide shows the steps I took to retrain a MobileNet on a custom dataset, and how to convert and use the retrained model in the browser using TensorFlow.js. The total time to set up, retrain the model and use it in the browser can take less than 30 minutes (depending on the size of your dataset).
Example app - HTML/JS and a retrained MobileNet V1/V2 model.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import math | |
from bigfloat import * | |
class LazyCartesianProduct: | |
def __init__(self, sets, context): | |
self.sets = sets | |
self.context = context | |
self.divs = [] | |
self.mods = [] | |
self.maxSize = BigFloat.exact(1) |
OlderNewer