Skip to content

Instantly share code, notes, and snippets.

@hfreire
hfreire / test_download_speed_in_stockholm.sh
Last active Jul 7, 2020
Test download speed in Stockholm
View test_download_speed_in_stockholm.sh
wget -O /dev/null http://hgd-speedtest-1.tele2.net/10GB.zip
# courtesy of Tele2 http://speedtest.tele2.net
@hfreire
hfreire / use_zsh_from_macports_in_macos.sh
Last active Dec 10, 2019
Use zsh from MacPorts in MacOS
View use_zsh_from_macports_in_macos.sh
# Install latest zsh version using macports
sudo port install zsh
# Add macports zsh as an available shell interpreter
echo /opt/local/bin/zsh >> /etc/shells
# Set macports zsh as the default shell interpreter
chsh -s /opt/local/bin/zsh
# Open a new terminal window
View zsh_startup_load_order.txt
+----------------+-----------+-----------+------+
| |Interactive|Interactive|Script|
| |login |non-login | |
+----------------+-----------+-----------+------+
|/etc/zshenv | A | A | A |
+----------------+-----------+-----------+------+
|~/.zshenv | B | B | B |
+----------------+-----------+-----------+------+
|/etc/zprofile | C | | |
+----------------+-----------+-----------+------+
@hfreire
hfreire / bash_startup_load_order.txt
Last active Dec 10, 2019
bash startup load order
View bash_startup_load_order.txt
If you have ever put something in a file like .bashrc and had it not work, or are
confused by why there are so many different files — .bashrc, .bash_profile, .bash_login,
.profile etc. — and what they do, this is for you.
The issue is that Bash sources from a different file based on what kind of shell it thinks
it is in. For an “interactive non-login shell”, it reads .bashrc, but for an “interactive
login shell” it reads from the first of .bash_profile, .bash_login and .profile (only).
There is no sane reason why this should be so; it’s just historical. Follows in more detail.
For Bash, they work as follows. Read down the appropriate column. Executes A, then B, then C,
etc. The B1, B2, B3 means it executes only the first of those files found.
@hfreire
hfreire / brute_forcing_imap_passwords.md
Created May 10, 2019
Brute forcing IMAP passwords
View brute_forcing_imap_passwords.md
nmap -p143,993 --script imap-brute localhost
@hfreire
hfreire / ban_unban_ip_fail2ban.md
Last active May 10, 2019
Ban/unban an IP address from Fail2ban
View ban_unban_ip_fail2ban.md

Ban IP address 1.1.1.1 jailed within ssh

fail2ban-client set dovecot banip 1.1.1.1

Unban IP address 1.1.1.1 jailed within ssh

fail2ban-client set dovecot unbanip 1.1.1.1
@hfreire
hfreire / base64uuid.java
Created May 8, 2019
A Base64 UUID encoder/decoder optimised for encoding and decoding UUID hashes in only 22 characters (instead of 36)
View base64uuid.java
import java.nio.ByteBuffer;
import java.util.Base64;
import java.util.UUID;
public class base64uuid {
private static final Base64.Encoder BASE64_URL_ENCODER = Base64.getUrlEncoder().withoutPadding();
public static void main(String[] args) {
try {
if (args.length < 2) {
@hfreire
hfreire / shrink_ext3_partition.md
Last active Jan 19, 2019
Shrink an ext3 partition on a SD card in OSX
View shrink_ext3_partition.md
Unmount disk
sudo diskutil unmount /dev/disk2
Check partition status
sudo e2fsck -f /dev/disk2s3
@hfreire
hfreire / generate_secure_password.sh
Last active Jul 11, 2019
Generate a secure 32 char password with user random seed
View generate_secure_password.sh
apg -n 1 -MCLN -m 32 -s
@hfreire
hfreire / git_commit_12_hours_ago.sh
Created Jan 19, 2019
Do a git commit 12 hours ago
View git_commit_12_hours_ago.sh
GIT_AUTHOR_DATE=$(date -v '-12H' '+%a %h %d %H:%M:%S %Y %z') \
GIT_COMMITTER_DATE=$(date -v '-12H' '+%a %h %d %H:%M:%S %Y %z') \
git commit -am "feat: better late than ever"
You can’t perform that action at this time.