- Latest Standard ISO version x86_64 is recommended (http://alpinelinux.org/downloads/)
- Create new VM ("Linux 2.6 / 3.x / 4.x (64-bit)")
- 1 CPU w/ 512BM RAM and 1 GB default (VDI) disk is more than sufficient
- Default networking (NAT)
- Boot and add Alpine ISO as attached virtual install media
- Default root password is blank (though note - ssh PermitRootLogin defaults to disallow blank passwords and: prohibit-password; switch to yes for Host ssh)
- Run setup-alpine
- Defaults are fine, but you do want "sys" disk setup to sda, y to confirm
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
# This is the nuclear option. Use with extreme care | |
# Works up to and including Mountain Lion (10.8.x) | |
# Show all extended attributes | |
ls -lOe ~/dir-to-fix | |
# Remove no-change attributes | |
sudo chflags nouchg ~/dir-to-fix | |
# Recursively clear all entended attributes |
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
#! /usr/bin/env sh | |
# Create unprivileged Alpine linux user. Run this script as root/sudo | |
# Don't prompt for password and make group same as username, default path & shell | |
adduser -D -g appuser appuser | |
# Set a decent random password (aiming for a 256 bit security level, but better than "monkey") | |
PW=$(head -c 32 /dev/urandom | base64) && echo -e "$PW\n$PW" | passwd appuser && unset PW |
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
# Hello, and welcome to makefile basics. | |
# | |
# You will learn why `make` is so great, and why, despite its "weird" syntax, | |
# it is actually a highly expressive, efficient, and powerful way to build | |
# programs. | |
# | |
# Once you're done here, go to | |
# http://www.gnu.org/software/make/manual/make.html | |
# to learn SOOOO much more. |
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
# Use list view in all Finder windows by default | |
# Four-letter codes for the other view modes: `icnv`, `clmv`, `glyv` | |
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv" | |
# Remove other views, which Finder remembered because of the .DS_Store files: | |
find ~ -name ".DS_Store" -delete 2>/dev/null | |
defaults write com.apple.desktopservices DSDontWriteNetworkStores true |
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
System Settings > | |
Trackpad > | |
Tracking speed: slightly slower (optional) | |
Click: Medium | |
Force Click and haptic feedback: off | |
Look up & data detectors: off | |
Tap to click: off | |
*THEN* | |
Secondary click: Click or Tap with Two Fingers |
If completely wiping & reinstalling a Postgres DB, when running initdb like:
service postgresql-9.2 initdb -E 'UTF8' --pgdata="/foo/bar/"
you can encounter this service error:
Data directory is not empty! [FAILED]
To fix it (and this is the nuclear option -- all db data is wiped!)
(This isn't specific to Wireshark)
sudo vi /etc/pam.d/sudo
Add to the end BEGINNING of the file:
auth sufficient pam_tid.so
Test with a trivial sudo command, and you should get a TouchID prompt:
sudo vi /etc/pam.d/sudo
Add to the end BEGINNING of the file:
auth sufficient pam_tid.so
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
// YOU HAVE LOTS OF...OPTIONS WITH RUST'S BASE64 ECOSYSTEM. base64::decode() was deprecated Jan 2023 | |
// | |
// use base64; // let key = base64::decode(base64_key); // <=== classic method, but will throw Deprecation warnings | |
// use base64::prelude::*; // let key = BASE64_STANDARD.decode(base64_key)?; | |
// use data_encoding::BASE64; // let key = BASE64.decode( b"SGVsbA...gh=" ) // b prefix is required | |
// use base64::{Engine as _, alphabet, engine::{self, general_purpose}}; // let key = general_purpose::STANDARD.decode(...); | |
// use base64::{Engine as _, engine::{general_purpose}}; // let key = general_purpose::STANDARD.decode(...); | |
// use base64::{Engine as _, engine::general_purpose}; // let key = general_purpose::STANDARD.decode(...); | |
// use base64::{Engine as _, engine::{general_purpose::STANDARD as base64}}; // let key = base64.decode(...); // DANGER!! | |
// use base64::{Engine as _, engine::{general_purpose as BASE64}}; // let key = BASE64::STANDARD.decode(...); |