Skip to content

Instantly share code, notes, and snippets.

Avatar

Cristina Silva crissilvaeng

View GitHub Profile
View deck.json
[
{
"front": "Juntos, nós temos 1000 reais. Você tem 950 reais a mais que eu. Quanto eu tenho?",
"back": "25"
}
]
@crissilvaeng
crissilvaeng / README.md
Last active April 5, 2023 18:58
PDF to MP3
View README.md

Audiobook Generator

This script converts a PDF file into an audiobook by extracting its text content and organizing it into chapters. It then uses a text-to-speech engine to generate audio files for each chapter and saves them in a specified output folder. The script takes a PDF file as input and allows users to set an optional output folder. It uses the PyMuPDF library for PDF processing, the re library for regular expressions, and the pyttsx3 library for text-to-speech conversion.

Installation

Follow these steps to install the required dependencies:

sudo apt update
@crissilvaeng
crissilvaeng / keybase.md
Created December 23, 2022 16:49
keybase.md
View keybase.md

Keybase proof

I hereby claim:

  • I am crissilvaeng on github.
  • I am crissilvaeng (https://keybase.io/crissilvaeng) on keybase.
  • I have a public key ASCfEFRXivc3yNwHQhyho0GDFhw-nH-FmIUga8pDdhczHwo

To claim this, I am signing this object:

@crissilvaeng
crissilvaeng / main.rs
Created October 24, 2022 18:38
Exercism Poker Card to Cactus Kev's Poker Card
View main.rs
let mut chars = val.chars();
let suit = chars.next_back().unwrap().to_string();
let rank = chars.as_str();
let mut card: u32 = 0;
card |= match rank {
"2" => 1 << 16 ^ (0 << 8) + 2,
"3" => 1 << 17 ^ (1 << 8) + 3,
"4" => 1 << 18 ^ (2 << 8) + 5,
"5" => 1 << 19 ^ (3 << 8) + 7,
@crissilvaeng
crissilvaeng / alias
Last active October 21, 2021 01:54
Git Aliases
View alias
close = !sh -c 'git branch -d $1' -
local = rev-parse --abbrev-ref HEAD
swap = !sh -c 'git switch -c $1 --track origin/\"$(git local)\"' -
sync = pull --rebase --autostash
@crissilvaeng
crissilvaeng / gitr
Created October 20, 2021 01:33
Git Recursive
View gitr
#!/bin/bash
find . -type d -mindepth 1 -maxdepth 1 -print0 | while read -d $'\0' folder; do
    echo -e "\033[0;35m$folder\033[0m"
    git -C $folder $@
done
@crissilvaeng
crissilvaeng / notification.js
Created May 28, 2021 19:28
Nuxt – Notification Plugin
View notification.js
import Notification from '@/components/Notification'
import Vue from 'vue'
const NotificationClass = Vue.extend(Notification)
export default ({ app }, inject) => {
inject('notification', {
show({ ctx, title, message = '', type = 'info' }) {
const notification = new NotificationClass({
propsData: { title, message, type },
@crissilvaeng
crissilvaeng / app.py
Created May 10, 2021 02:57
Flask with Parse Server JWT Middleware
View app.py
import os
import requests
from functools import wraps
from flask import Flask, request
PARSE_SERVER_URL = os.environ['PARSE_SERVER_URL']
PARSE_APPLICATION_ID = os.environ['PARSE_SERVER_URL']
app = Flask(__name__)
@crissilvaeng
crissilvaeng / nginx.conf.sigil
Created May 6, 2021 23:22
Dokku – NGINX Configuration without maximum body size
View nginx.conf.sigil
server {
listen [::]:{{ .NGINX_PORT }};
listen {{ .NGINX_PORT }};
server_name {{ .NOSSL_SERVER_NAME }};
access_log /var/log/nginx/{{ .APP }}-access.log;
error_log /var/log/nginx/{{ .APP }}-error.log;
include {{ .DOKKU_ROOT }}/{{ .APP }}/nginx.conf.d/*.conf;
@crissilvaeng
crissilvaeng / main.py
Created April 12, 2021 03:06
Playground – Schedule Problem – Greedy vs NonGreedy Algorithm
View main.py
from timeit import default_timer as timer
from random import randrange, choice
from itertools import combinations
from dataclasses import dataclass
from operator import attrgetter
from io import StringIO
from typing import List, Optional, Sequence, Tuple
@dataclass