I hereby claim:
- I am onjin on github.
- I am onjin (https://keybase.io/onjin) on keybase.
- I have a public key ASCwD1OeHWmiu_hIv3OxMq8D2bUMqYLzdO_e5x-8mCINTgo
To claim this, I am signing this object:
#!/bin/bash | |
url=https://zoom.us/client/latest/zoom_amd64.deb | |
debdir=/usr/local/zoomdebs | |
aptconf=/etc/apt/apt.conf.d/100update_zoom | |
sourcelist=/etc/apt/sources.list.d/zoomdebs.list | |
sudo mkdir -p $debdir | |
( echo 'APT::Update::Pre-Invoke {"cd '$debdir' && wget -qN '$url' && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release";};' | sudo tee $aptconf | |
echo 'deb [trusted=yes lang=none] file:'$debdir' ./' | sudo tee $sourcelist |
I hereby claim:
To claim this, I am signing this object:
import os | |
from importlib.util import find_spec | |
from configurations.wsgi import get_wsgi_application | |
from fastapi import FastAPI | |
from fastapi.middleware.wsgi import WSGIMiddleware | |
from fastapi.staticfiles import StaticFiles | |
from api import router |
from typing import Any, Callable, TypeVar, cast | |
F = TypeVar('F', bound=Callable[..., Any]) | |
# A decorator that preserves the signature. | |
def my_decorator(func: F) -> F: | |
def wrapper(*args, **kwargs): | |
print("Calling", func) | |
return func(*args, **kwargs) |
version: '3' | |
services: | |
sentry: | |
image: 'sentry:latest' | |
command: start | |
networks: | |
- sentry | |
- traefik-public | |
depends_on: | |
- redis |
if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then | |
tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux | |
fi |
#!/usr/bin/env bash | |
set -eu | |
pane_fmt="#{pane_id} #{pane_in_mode} #{pane_input_off} #{pane_dead} #{pane_current_command}" | |
tmux list-panes -s -F "$pane_fmt" | awk ' | |
$2 == 0 && $3 == 0 && $4 == 0 && $5 ~ /(bash|zsh|ksh|fish)/ { print $1 } | |
' | while read -r pane_id; do | |
# renew environment variables according to update-environment tmux option | |
# also clear screen |
Short memo from:
For not finished / not tested features
https://www.youtube.com/watch?v=zXCiv4sc5eY
Failure = Repeating the bad decisions
Success = Consistency on good decisions
Rule of success = Delay gratification!
Install https://github.com/jrfonseca/gprof2dot
$ python -m cProfile -o profiler.pstats ./some/python/code.py
$ gprof2dot -f pstats profiler.pstats | dot -Tpng -o profiler.png # generate PNG calltree image
$ pyprof2calltree -i profiler.pstats -k # debug with kcachegrind