A minimal table to compare the Espressif's MCU families.
| ESP8266 | ESP32 | ESP32-S2 | ESP32-S3 | ESP32-C3 | ESP32-C6 | |
|---|---|---|---|---|---|---|
| Announcement Date | 2014, August | 2016, September | 2019, September | 2020, December |
| RED=`tput setaf 1` | |
| GREEN=`tput setaf 2` | |
| NC=`tput sgr0` | |
| for hostnameFile in $(find ~/umbrel/tor/data/app* -name 'hostname' | sort) ; do | |
| APPNAME=$(echo ${hostnameFile} | cut -d/ -f 7-7) | |
| HOSTNAME=$(cat ${hostnameFile}) | |
| printf "%-40s" ${RED}${APPNAME} | |
| printf "%s" ${GREEN}${HOSTNAME} | |
| printf "${NC}\n" |
| // Creates a "negative border-radius" | |
| // | |
| // Author: PMK | |
| // License: MIT | |
| @mixin negative-border-radius($color: #000, $contrast: transparent, $position: all, $size: 1rem) { | |
| background-repeat: no-repeat; | |
| @if $position == all { | |
| background: | |
| radial-gradient(circle at 0 100%, $contrast $size, $color $size), |
| #!/bin/bash | |
| function convertMp4ToMp3 { faad -q -w -f 2 "$1" | lame --quiet -r -h -b 320 - "${1%.mp4}.mp3"; } |
| <!DOCTYPE html> | |
| <html><head> | |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8"> | |
| <title>SVG Helper Tool</title> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| </head> | |
| <body> | |
| <p>click and drag on the canvas ... you're making a polygon ... <button id="reset">reset</button><button id="undo">undo</button></p> | |
| <canvas id="x" width="500" height="500" style="border: 1px solid black;"></canvas> |
| #!/bin/bash | |
| ##### | |
| # Created by PMK | |
| # https://github.com/PMK | |
| # | |
| # License: Public Domain | |
| # | |
| # Creates a tar archive of the current active profile of Mozilla Firefox. | |
| # The profile contains sessions, addons, bookmarks and history. |
| #!/bin/bash | |
| web_service='nginx' | |
| FILES=/usr/local/etc/letsencrypt/*.ini | |
| for f in $FILES | |
| do | |
| echo "Renewing for $f file..." | |
| config_file="$f" |
| javascript:(function(){window.API.on(window.API.HISTORY_UPDATE,function(){setTimeout(function(){window.jQuery("#woot").click();},1000);});window.onbeforeunload=function(){window.API.off(window.API.HISTORY_UPDATE);};}()); |