Associate a new Authenticator device to a Microsoft account
Go to https://mysignins.microsoft.com/security-info and Add sign-in method
Fixing Process finished with exit code 138 (interrupted by signal 10: SIGBUS)
when debugging in PyCharm
Apparently this has something to do with the Cython optimizations. Disable them by adding PYDEVD_USE_CYTHON=NO;PYDEVD_USE_FRAME_EVAL=NO
to your run configuration.
– via YouTrack
Linux directory ACL write permissions
Give an admin user write permissions to a directory, without making them owner of the directory and without giving all other users write permissions. So no chown
stuff.
I’ve used the ACL
tools, setfacl
and getfacl
# install the ACL tools if they're not installed
sudo apt-get update
sudo apt-get install acl
# check existing entries
getfacl /mydir/mysubdir
# set it as default for new items
sudo setfacl -d -m u:myusername:rwx /mydir/mysubdir
# and apply it recursively
sudo setfacl -R -m u:myusername:rwx /mydir/mysubdir
Restart mlflow ui
A significant number of times, when closing MLFlow UI with Ctrl+C, the port will remain occupied and you won’t be able to start a new instance of the UI. Or, to be exact, you will be able to start it but nothing will happen when opening up localhost:5000.
Ways to fix this:
lsof -iTCP -sTCP:LISTEN -n -P
and check which processes listen to port 5000, thenpkill -15 <PID>
- Or
pkill -f gunicorn
- Or,
ps -A | grep gunicorn
thenkill <PID>
Decode the ContentMD5 hash set by Azure Storage Explorer when uploading files
echo "<ContentMD5>" | base64 --decode | xxd -p
# compare it with
md5 <your_file>
Setting up mitmproxy and monitoring i.e. OpenAI API Calls
A simplified version of Hamel’s opinionated setup.
- Download and install mitmproxy using something like
brew install mitmproxy
- Run
mitmweb
, to start the proxy on port8080
and the ui on8081
- Download the
.pem
certificate fromhttp://mitm.it
so you can makehttps://*
api calls
import os, requests
os.environ['HTTP_PROXY']='http://127.0.0.1:8080'
os.environ['HTTPS_PROXY']='https://127.0.0.1:8080'
requests.get('http://mit.it') # just to try it out, you can also make sure that it actually links to `cert/pem`
pem_content = requests.get('http://mitm.it/cert/pem').text
# write the certificate to your home directory
with open(os.path.expanduser('~/mitm.pem'), 'w') as f:
f.write(pem_content)
- Use the cert and make all the
https://
api calls you like
os.environ['REQUESTS_CA_BUNDLE'] = os.path.expanduser('~/mitm.pem')
os.environ['SSL_CERT_FILE'] = os.path.expanduser('~/mitm.pem')
requests.get('https://google.com')
Copy-pasteable snippet for impromptu monitoring
Don’t forget to fire up mitmweb
first.
import os
os.environ['HTTP_PROXY'] = 'http://127.0.0.1:8080'
os.environ['HTTPS_PROXY'] = 'https://127.0.0.1:8080'
os.environ['REQUESTS_CA_BUNDLE'] = os.path.expanduser('~/mitm.pem')
os.environ['SSL_CERT_FILE'] = os.path.expanduser('~/mitm.pem')
Run simple Python webserver
One that listen only to local requests.
# default port
python3 -m http.server --bind 127.0.0.1
# custom port
python3 -m http.server 8081 --bind 127.0.0.1