Skip to content

Instantly share code, notes, and snippets.

View josemarcosrf's full-sized avatar
🏔️
Working from a mountain top

Jose Marcos RF josemarcosrf

🏔️
Working from a mountain top
View GitHub Profile
@felipou
felipou / decrypt_dbeaver.py
Last active October 21, 2025 14:40
DBeaver password decryption script - for newer versions of DBeaver
# https://stackoverflow.com/questions/39928401/recover-db-password-stored-in-my-dbeaver-connection
# requires pycryptodome lib (pip install pycryptodome)
import sys
import base64
import os
import json
from Crypto.Cipher import AES
@josemarcosrf
josemarcosrf / create_user.sh
Created October 8, 2019 11:39
Create a new user in UBuntu 18.04 and enable remote SSH login
#!/usr/bin/env bash
say() {
echo "$@" | sed \
-e "s/\(\(@\(red\|green\|yellow\|blue\|magenta\|cyan\|white\|reset\|b\|u\)\)\+\)[[]\{2\}\(.*\)[]]\{2\}/\1\4@reset/g" \
-e "s/@red/$(tput setaf 1)/g" \
-e "s/@green/$(tput setaf 2)/g" \
-e "s/@yellow/$(tput setaf 3)/g" \
-e "s/@blue/$(tput setaf 4)/g" \
-e "s/@magenta/$(tput setaf 5)/g" \

Place theme files in ~/.k9s/ and create a symlink to the theme you wish to use as the current skin:

ln -s ~/.k9s/theme-to-use.yml ~/.k9s/skin.yml
@nkhitrov
nkhitrov / logger.py
Last active August 29, 2025 00:11
Configure uvicorn logs with loguru for FastAPI
"""
WARNING: dont use loguru, use structlog
https://gist.github.com/nkhitrov/38adbb314f0d35371eba4ffb8f27078f
Configure handlers and formats for application loggers.
"""
import logging
import sys
from pprint import pformat
@josemarcosrf
josemarcosrf / py_context_managers.py
Last active October 13, 2023 16:14
Python helper functions, decorators and context managers
import signal
from contextlib import contextmanager
from time import perf_counter
@contextmanager
def timeout(duration: int):
def timeout_handler(signum, frame):
raise Exception(f"Block timed out after {duration} seconds")
@anand2312
anand2312 / pymongo-to-motor.md
Last active April 11, 2025 18:01
pymongo vs Motor

pymongo vs Motor

Motor is an async Python driver for MongoDB.

When should I use Motor?

You should use Motor when you're trying to interact with a MongoDB database in an asynchronous context. When you're making something that needs to be asynchronous (like a web server, or most commonly from what I've seen here, Discord bots), you also want all the database calls to be done asynchronously. But pymongo is synchronous, i.e it is blocking, and will block the execution of your asynchronous program for the time that it is talking to the database.

Okay, How do I switch now?!

Thankfully for us, switching from pymongo to Motor isn't too hard, and won't need you to change much code. This process can be roughly summarized as:

Step 1: Install Motor, and import it

Installing can be done with pip - pip install motor

@meatcoder
meatcoder / nerdfonts-chromeos.md
Last active October 23, 2025 05:25
Customizing Chrome OS Terminal (Crostini) to enable Nerd Fonts

If you're like me, you want to use Nerd Fonts for your editor and the terminal. If you use a terminal based editor like neovim or emacs, then you need that configued on your terminal emulator. But if you're using Chrome OS, which is more locked down than other desktop OS, then the usually simple task of installing these font and using them isn't as straightforward.

I have used the workaround to achieve this task. There is no guarantee it will continue to work in futuere versions. It depends on whether the old terminal settings page isn't removed from the app bundle and if the app doesn't stop loading the old config. As of Chrome OS 113, it is still working.

  1. Open the old terminal settings page, as it allows more customizations:

    chrome-untrusted://terminal/html/nassh_preferences_editor.html

  2. Once there, add the following custom CSS on the field labeled "Custom CSS (inline text)":