This tutorial for setting up Ubuntu Server (RPi 3B) as Wifi access point
The main steps can be listed as following:
- Install required packages
- Setup hostapd
- Setup DNSmasq
- Configure AP IP Address
| export const CACHE_STALE_AT_HEADER = 'x-edge-cache-stale-at'; | |
| export const CACHE_STATUS_HEADER = 'x-edge-cache-status'; | |
| export const CACHE_CONTROL_HEADER = 'Cache-Control'; | |
| export const CLIENT_CACHE_CONTROL_HEADER = 'x-client-cache-control'; | |
| export const ORIGIN_CACHE_CONTROL_HEADER = 'x-edge-origin-cache-control'; | |
| enum CacheStatus { | |
| HIT = 'HIT', | |
| MISS = 'MISS', | |
| REVALIDATING = 'REVALIDATING', |
| #!/usr/bin/env bash | |
| # | |
| # Open new iTerm window from the command line using v3 syntax for applescript as needed in iTerm2 Version 3+ | |
| # This script blocks until the cmd is executed in the new iTerm2 window. It then leaves the window open. | |
| # TODO Add option to close iTerm2 after cmd execs | |
| # See also https://www.iterm2.com/documentation-scripting.html | |
| # | |
| # Usage: |
| #!/bin/bash | |
| ### | |
| ### my-script — does one thing well | |
| ### | |
| ### Usage: | |
| ### my-script <input> <output> | |
| ### | |
| ### Options: | |
| ### <input> Input file to read. | |
| ### <output> Output file to write. Use '-' for stdout. |
| # For recent versions of Ubuntu: | |
| - https://www.pugetsystems.com/labs/hpc/ubuntu-22-04-server-autoinstall-iso/ | |
| # Docs: | |
| - https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls | |
| - https://wiki.ubuntu.com/FoundationsTeam/AutomatedServerInstalls/ConfigReference | |
| - https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html | |
| - https://discourse.ubuntu.com/t/please-test-autoinstalls-for-20-04/15250/53 | |
| # Download ISO Installer: |
| /* | |
| Copy this into the console of any web page that is interactive and doesn't | |
| do hard reloads. You will hear your DOM changes as different pitches of | |
| audio. | |
| I have found this interesting for debugging, but also fun to hear web pages | |
| render like UIs do in movies. | |
| */ | |
| const audioCtx = new (window.AudioContext || window.webkitAudioContext)() |
| /* | |
| Hide the annoying search pane. | |
| $ sudo node KakaoTalk+.js | |
| $ nohup /Applications/KakaoTalk.app/Contents/MacOS/KakaoTalk+ </dev/null >/dev/null 2>&1 | |
| */ | |
| const { readFileSync, writeFileSync } = require('fs'), | |
| { execSync } = require('child_process'), | |
| { ok } = require('assert'); |
With the addition of ES modules, there's now no fewer than 24 ways to load your JS code: (inline|not inline) x (defer|no defer) x (async|no async) x (type=text/javascript | type=module | nomodule) -- and each of them is subtly different.
This document is a comparison of various ways the <script> tags in HTML are processed depending on the attributes set.
If you ever wondered when to use inline <script async type="module"> and when <script nomodule defer src="...">, you're in the good place!
Note that this article is about <script>s inserted in the HTML; the behavior of <script>s inserted at runtime is slightly different - see Deep dive into the murky waters of script loading by Jake Archibald (2013)
| FROM python:3.7 | |
| # Set the timezone to KST | |
| RUN cat /usr/share/zoneinfo/Asia/Seoul > /etc/localtime | |
| RUN set -ex \ | |
| && apt-get clean && apt-get update \ | |
| && apt-get install --no-install-recommends -y groff \ | |
| && rm -rf /var/lib/apt/lists/* |