Skip to content

Instantly share code, notes, and snippets.

View eduardofcgo's full-sized avatar
⛷️

Eduardo Gonçalves eduardofcgo

⛷️
View GitHub Profile
@eduardofcgo
eduardofcgo / compose.py
Last active December 11, 2017 23:40
compose functions in python
from functools import reduce
def compose(fns):
def _compose(fn1, fn2):
return lambda x: fn2(fn1(x))
if len(fns) == 0:
return lambda x: x
return reduce(_compose, fns)
from typing import Iterable, Iterator, TypeVar, Generic, List, Optional
T = TypeVar('T')
class _CachedIterator(Generic[T]):
def __init__(self, cached_iterable: CachedIterable[T]) -> None:
self.cached_iterable = cached_iterable
def numbers_for_bounds(*args):
assert args and len(args) % 2, 'Unbalanced or empty bounds'
bounds = list(args)
first_bounds, *range_bounds = sorted(zip(bounds[0::2], bounds[1::2]))
start, first_upper = first_bounds
yield from range(start, first_upper + 1)
for lower, upper in range_bounds:
function delay(fns, interval) {
[fn, ...fnsTail] = fns
if (fn) {
setTimeout(
() => { fn(); delay(fnsTail, interval) },
interval
)
}
}
from inspect import isgeneratorfunction
class Deferer:
def __init__(self):
self.defers = []
@classmethod
def build(cls, func):
(defn armstrong? [n]
(let [n-chars (apply vector (str n))]
(= n
(int
(reduce +
(map
(comp
#(Math/pow % (count n-chars))
#(Character/getNumericValue %))
@eduardofcgo
eduardofcgo / .env
Last active January 20, 2021 00:48
USERNAME=user
PASSWORD=pass
@eduardofcgo
eduardofcgo / fix_dates.sh
Last active February 7, 2021 10:18
fix dates of captured imovie footage
#!/bin/sh
find . -name "*.mp4" -print0 | while read -d $'\0' filepath
do
echo "$filepath"
filedate=$(echo "$filepath" | ggrep -P -o "(?<=clip-)(.*)(?=.mp4)")
formateddate=$(date -j -f "%F %H;%M;%S" "$filedate" "+%Y:%m:%d %H:%M:%S")
if [ -z "$formateddate" ]
then
>&2 echo "Invalid date. Skipping command"
@eduardofcgo
eduardofcgo / comandos.md
Created February 5, 2021 23:13
alguns comandos

Gerir pacotes

  • Actualizar repositório apt-get update
  • Actualizar pacotes apt-get upgrade
  • Instalar pacote apt-get install pacote

Gerir serviços

  • Saber o estado: systemctl status serviço
  • Ver os logs do serviço: journalctl -u serviço
@eduardofcgo
eduardofcgo / http.md
Last active February 10, 2021 18:03
Guia de Aula - Servidor Internet HTTP
  1. Instala o servidor http nginx.
  2. Inicia o serviço nginx.
  3. Acede ao teu ip através do browser.
  4. Consulta o ficheiro de configuração do servidor nginx em /etc/nginx/sites-available/default.
  5. À direta da palavra "root", está o nome da pasta que está a ser servida pelo servidor. Entra nessa pasta e consulta o seu conteúdo.
  6. Modifica o conteúdo do ficheiro, e actualiza a página do teu ip no browser. Podes apagar o conteúdo original. Adiciona uma mensagem a dizer "Olá amigos!". Note que este ficheiro acaba em .html. As páginas do site devem obedecer a isso.
  7. Cria outros ficheiros dentro desta pasta. Tenta aceder a esses ficheiros através do browser, usa o URL do browser.
  8. Cria uma página no teu site com o url /bem-vindos.html. O conteúdo deve ser Bem-vindos ao meu site!
  9. Cria uma página no teu site com url /eu.html. O a dizer o teu nome Eu sou o João.
  10. O teu site deverá ser navigável. Na página principal deve haver dois links, um a dizer Boas-vindas que leva para a página `bem