Skip to content

Instantly share code, notes, and snippets.

Rodrigo Fernandes rtfpessoa

View GitHub Profile
View CryptoAESGCM.scala
import java.security.SecureRandom
import cats.Monad
import cats.effect.IO
import tsec.cipher.symmetric.jca._
import tsec.cipher.symmetric.{AAD, _}
import tsec.common._
import scala.util.Random
@rtfpessoa
rtfpessoa / tvi-player-downloader.sh
Last active Apr 14, 2020
TVI Player Downloader
View tvi-player-downloader.sh
#!/usr/bin/env bash
for EPISODE_NUMBER in 1 2 3 4 5; do
EPISODE_URL="http://tviplayer.iol.pt/programa/pesadelo-na-cozinha/58bd77b50cf26a3bdcfca690/episodio/t1e${EPISODE_NUMBER}"
PLAYLISTS_BY_QUALITY_URLS=$(curl $EPISODE_URL 2>/dev/null | grep 'vod/_definst_' | sed -E 's/[ ]+videoUrl: '"'"'(.*)'"'"',/\1/')
youtube-dl -f best --audio-quality 0 -o pesadelo-na-cozinha-S01E0${EPISODE_NUMBER}.ts --prefer-ffmpeg $PLAYLISTS_BY_QUALITY_URLS &
done
wait
@rtfpessoa
rtfpessoa / docker-api-v2-example.sh
Last active Mar 10, 2017
Simple Docker Registry API v2 Wrapper
View docker-api-v2-example.sh
#!/usr/bin/env bash
#
# Simple Docker Registry API v2 Wrapper
#
REPOSITORY="doplicated/client"
get_from_dh() {
URL="$1"
@rtfpessoa
rtfpessoa / getopts_long.sh
Created Jan 21, 2017
getopts_long -- POSIX shell getopts with GNU-style long option support
View getopts_long.sh
#!/usr/bin/env bash
#
# getopts_long -- POSIX shell getopts with GNU-style long option support
#
# Copyright 2005-2009 Stephane Chazelas <stephane_chazelas@yahoo.fr>
#
# Permission to use, copy, modify, distribute, and sell this software and
# its documentation for any purpose is hereby granted without fee, provided
# that the above copyright notice appear in all copies and that both that
@rtfpessoa
rtfpessoa / brew-cask-upgrade.sh
Created Sep 24, 2016 — forked from c00kiemon5ter/brew-cask-upgrade.sh
a portable shell script to upgrade cask packages
View brew-cask-upgrade.sh
#!/bin/sh
help=0
latest=0
verbose=0
status=0
usage() {
cat <<-EOF
${0##*/} [options]
@rtfpessoa
rtfpessoa / openvpn-client-key-gen.sh
Last active Oct 25, 2019
OpenVPN Client Key Generator
View openvpn-client-key-gen.sh
#!/bin/bash
#
# OpenVPN Client Key Generation Script
#
# Author: rtfpessoa
# Date: 03-09-2016
#
# Based on the guide:
# * https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04
@rtfpessoa
rtfpessoa / lazy-load-nvm.sh
Created Aug 26, 2016
NVM lazy loading script
View lazy-load-nvm.sh
#!/bin/bash
#
# NVM lazy loading script
#
# NVM takes on average half of a second to load, which is more than whole prezto takes to load.
# This can be noticed when you open a new shell.
# To avoid this, we are creating placeholder function
# for nvm, node, and all the node packages previously installed in the system
# to only load nvm when it is needed.
View play.scala
/**
* Single-file play framework application! Make sure everything
* works, as this is the test case that un-earthed #371
*/
load.ivy("com.typesafe.play" %% "play" % "2.5.0")
load.ivy("com.typesafe.play" %% "play-netty-server" % "2.5.0")
load.ivy("org.scalaj" %% "scalaj-http" % "2.2.1")
@
@rtfpessoa
rtfpessoa / S3Handler.scala
Last active May 25, 2016
S3Handler for Coursier
View S3Handler.scala
package coursier.cache.protocol
import java.io.InputStream
import java.net.{URL, URLConnection, URLStreamHandler}
import awscala.Credentials
import awscala.s3.{Bucket, S3, S3Object}
import com.amazonaws.services.s3.model.GetObjectRequest
/*
@rtfpessoa
rtfpessoa / css_regression_testing.md
Created May 21, 2016 — forked from cvrebert/css_regression_testing.md
Survey of screenshot-based CSS testing tools
View css_regression_testing.md

Currently considering https://github.com/webdriverio/webdrivercss


Core Goals:

  • Can test in up-to-date versions of all major browsers
  • Can test on up-to-date versions of all major OSes
  • Can test in IE9 (because Bootstrap v4 will support IE9+)
  • Don't want to have to setup/maintain our own cluster of VMs running all the necessary OSes (and all the versions of Windows)
  • Workflow for management of reference/baseline/norm screenshots
You can’t perform that action at this time.