Skip to content

Instantly share code, notes, and snippets.

View gabrielbarros's full-sized avatar

Gabriel Barros gabrielbarros

  • Rio de Janeiro, Brasil
  • 00:21 (UTC -03:00)
View GitHub Profile
@gabrielbarros
gabrielbarros / unicode-box-drawing.txt
Last active April 2, 2024 15:04
Box drawing - Draw a table with unicode characters
UNICODE BOX DRAWING CHARACTERS
┌ ─ ─ ─ ┬ ─ ─ ─ ┐ ╭ ─ ─ ─ ┬ ─ ─ ─ ╮
│ a │ b │ │ a │ b │
├ ─ ─ ─ ┼ ─ ─ ─ ┤ ├ ─ ─ ─ ┼ ─ ─ ─ ┤
│ c │ d │ │ c │ d │
@gabrielbarros
gabrielbarros / install-composer
Created March 6, 2024 20:06
Install and update Composer
#!/usr/bin/env bash
set -euo pipefail
echo 'Installing Composer...'
if [ -f /usr/bin/php ]; then
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
else
@gabrielbarros
gabrielbarros / install-symfony
Created March 6, 2024 20:08
Install and update Symfony CLI
#!/usr/bin/env bash
set -euo pipefail
echo 'Installing symfony-cli...'
wget https://github.com/symfony-cli/symfony-cli/releases/latest/download/symfony-cli_linux_amd64.tar.gz
tar -xvzf symfony-cli_linux_amd64.tar.gz symfony
sudo mv symfony /usr/local/bin
@gabrielbarros
gabrielbarros / install-diff-so-fancy
Created March 6, 2024 20:09
Install and update diff-so-fancy
#!/usr/bin/env bash
set -euo pipefail
echo 'Installing diff-so-fancy...'
curl -s https://api.github.com/repos/so-fancy/diff-so-fancy/releases/latest | \
jq -r '.assets[].browser_download_url' | wget -i -
sudo mv diff-so-fancy /usr/local/bin
@gabrielbarros
gabrielbarros / install-mkcert
Created March 6, 2024 20:09
Install and update mkcert
#!/usr/bin/env bash
set -euo pipefail
echo 'Installing mkcert...'
curl -s https://api.github.com/repos/FiloSottile/mkcert/releases/latest | \
jq -r '.assets[].browser_download_url' | grep -F linux-amd64 | wget -i -
sudo mv mkcert-* /usr/local/bin/mkcert
@gabrielbarros
gabrielbarros / install-rclone
Created March 6, 2024 20:09
Install and update rclone
#!/usr/bin/env bash
set -euo pipefail
echo 'Installing rclone...'
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
sudo mv rclone-*-linux-amd64/rclone /usr/local/bin
@gabrielbarros
gabrielbarros / mail-servers.txt
Last active March 7, 2024 20:57
Mail servers (SMTP, IMAP and POP) for Gmail and Microsoft (Hotmail, Outlook)
Gmail
IMAP: imap.gmail.com:993 (SSL/TLS)
POP: pop.gmail.com:995 (SSL/TLS)
SMTP: smtp.gmail.com:587 (STARTTLS)
Microsoft (Hotmail, Outlook)
IMAP: outlook.office365.com:993 (SSL/TLS)
POP: outlook.office365.com:995 (SSL/TLS)
SMTP: smtp-mail.outlook.com:587 (STARTTLS)
@gabrielbarros
gabrielbarros / reverse-string.php
Last active March 11, 2024 17:08
Reverse a string correctly in PHP considering bytes, code points and graphemes
<?php
// For ASCII only
$hello = 'Hello';
$revStrBytes1 = '';
for ($i = strlen($hello) - 1; $i >= 0; $i--) {
$revStrBytes1 .= $hello[$i];
}
// Alternative to the code above
@gabrielbarros
gabrielbarros / counting-utf8-bytes-code-points-and-grapheme-clusters.md
Last active August 5, 2025 22:39
Counting UTF-8 bytes, code points and grapheme clusters in various programming languages

Counting UTF-8 bytes, code points and grapheme clusters

Strings to test:

• Star emoji
⭐

- UTF-8 bytes: 3
- code points: 1
@gabrielbarros
gabrielbarros / unicode-and-byte-notation.md
Last active August 5, 2025 22:35
Unicode and byte notation in various places and programming languages

Unicode and byte notation

Letter: A
Code points: U+0041
UTF-8 bytes: 41
UTF-16BE bytes: 00 41

Pound sign: £
Code points: U+00A3