cd ~
wget http://nodejs.org/dist/v6.2.1/node-v6.2.1-linux-armv6l.tar.gz
tar -xzf node-v6.2.1-linux-armv6l.tar.gz
node-v6.2.1-linux-armv6l/bin/node -v
The last command should print v6.2.1.
Now you can copy it to /usr/local
#!/bin/bash | |
db_loc="/volume1/Plex/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db" | |
names=$(sqlite3 "$db_loc" "SELECT name from accounts;") | |
counter=0 | |
while read -r name; do | |
let counter++ | |
echo "$counter : $name" | |
nameArray[counter]=$name | |
done <<< "$names" | |
read index |
# put this file in /etc/systemd/system/ as root | |
# below paths assume solr installed in /opt/solr, SOLR_PID_DIR is /data | |
# and that all configuration exists in /etc/default/solr.in.sh which is the case if previously installed as an init.d service | |
# change port in pid file if differs | |
# note that it is configured to auto restart solr if it fails (Restart=on-faliure) and that's the motivation indeed :) | |
# to switch from systemv (init.d) to systemd, do the following after creating this file: | |
# sudo systemctl daemon-reload | |
# sudo service solr stop # if already running | |
# sudo systemctl enable solr | |
# systemctl start solr |
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; | |
// Manually authenticate user in controller | |
$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); | |
$this->get('security.token_storage')->setToken($token); | |
$this->get('session')->set('_security_main', serialize($token)); |
#!/bin/bash | |
# All credit goes to Marek Bosman. | |
# Source: https://marekbosman.com/site/automatic-update-of-cloudflare-ip-addresses-in-nginx/ | |
# Location of the nginx config file that contains the CloudFlare IP addresses. | |
CF_NGINX_CONFIG="/etc/nginx/cloudflare" | |
# The URLs with the actual IP addresses used by CloudFlare. | |
CF_URL_IP4="https://www.cloudflare.com/ips-v4" |
<div class="levels"> | |
{{ $groups := .LevelGroups }} | |
{{ $groupedLevels := .Levels }} | |
{{ $completeLevels := .CompleteLevels }} | |
{{ if $groupedLevels }} | |
{{ range $group := $groups }} | |
<div class="intro"><h2>{{$group}}</h2></div> | |
{{ range index $groupedLevels $group }} | |
<a href="/level/{{.Number}}" class="{{if index $completeLevels .Number}}complete{{end}}"> | |
<span class="level">{{.Number}} </span> |
Past August 2024, Authy stopped supported the desktop version of their apps:
See Authy is shutting down its desktop app | The 2FA app Authy will only be available on Android and iOS starting in August for details.
And indeed, after a while, Authy changed something in their backend which now prevents the old desktop app from logging in. If you are already logged in, then you are in luck, and you can follow the instructions below to export your tokens.
If you are not logged in anymore, but can find a backup of the necessary files, then restore those files, and re-install Authy 2.2.3 following the instructions below, and it should work as expected.
A simple Packer + Vagrant install of Ubuntu 20.04 (Focal Fossa) LTS server for arm64, to run from my M1 Mac on Parallels Pro (17.1). Currently on MacOS Monterey.
Packer will run the ansible playbook.yml
before the machine is shutdown and exported.
The installation is automated by cloud-init (which reads user-data
). The file meta-data
just needs to be an empty text file (you need to create this - no blank files or folders allowed in gists).
ubuntu2004/
// open your javascript console and paste this | |
copy([...$('[role="grid"]')[Object.keys($('[role="grid"]')).filter(x => x.startsWith('__reactProps'))[0]].children[0].props.values[0][1].collection].filter(x => x.value.audio_url).map(x => x.value.audio_url).join(' ')) | |
// now you have a list of mp3 urls directly in your clipboard that you can pass to wget or a url downloader |