Skip to content

Instantly share code, notes, and snippets.

@why-not
why-not / stop-idle-azure-aws.py
Last active March 4, 2024 19:49
Automatically Shutting Down and Deallocating an AZURE or AWS VM (when idle AND no one is logged in via SSH)
#!/usr/bin/env python
# shell commands being automated.
# w
# aws ec2 stop-instances --instance-id INSTANCE_ID
# az vm deallocate --name NAME --resource-group RESOURCE_GROUP
"""
The script is the easy part, installing it into the unfriendly(imo) cron system and
@why-not
why-not / shutdown-idle-aws.py
Last active March 4, 2024 19:29
Automatically stopping an AWS machine when users are not actively using a machine via ssh, and the CPU load avg over the past 5 mins is less than THRESHOLD. This will avoid getting billed for the machine when not in use (except ofcourse your storage will still be billed unless you delete everything and decommission those as well, which this scri…
#!/usr/bin/env python
# shell commands being automated.
# w
# aws ec2 stop-instances --instance-id INSTANCE_ID
"""
The script is the easy part, installing it into the unfriendly(imo) cron system and
making all the permissions and paths are set correctly is another issue altogether.
@why-not
why-not / gist:4582705
Last active February 1, 2024 00:44
Pandas recipe. I find pandas indexing counter intuitive, perhaps my intuitions were shaped by many years in the imperative world. I am collecting some recipes to do things quickly in pandas & to jog my memory.
"""making a dataframe"""
df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
"""quick way to create an interesting data frame to try things out"""
df = pd.DataFrame(np.random.randn(5, 4), columns=['a', 'b', 'c', 'd'])
"""convert a dictionary into a DataFrame"""
"""make the keys into columns"""
df = pd.DataFrame(dic, index=[0])
@why-not
why-not / shakespeare.txt
Created July 17, 2023 01:47
shakespeare
This file has been truncated, but you can view the full file.
First Citizen:
Before we proceed any further, hear me speak.
All:
Speak, speak.
First Citizen:
You are all resolved rather to die than to famish?
All:
@why-not
why-not / get_stats_youtube.py
Created March 10, 2023 02:35
Code to get basic stats from videos in a given list of playlists (youtube)
import time
import pandas as pd
from googleapiclient.discovery import build
# Enter your API key here
api_key = "API KEY HERE"
# Create a service object for the YouTube API
youtube = build('youtube', 'v3', developerKey=api_key)
@why-not
why-not / useful_bash_functions.sh
Created November 2, 2022 21:45
useful bash functions backup.
function addpythonpath {
PYTHONPATH=$PYTHONPATH:`pwd`
sed -i '' '/^PYTHONPATH/d' ~/.bashrc
sleep .5
echo PYTHONPATH=$PYTHONPATH >> ~/.bashrc
}
# install yt-dlp first for this to work.
# streams youtube videos via VLC.
function ytvlc {
@why-not
why-not / multiplication_tables.py
Last active April 15, 2022 22:54
print multiplication tables for children, with color formatting if needed. (python, pandas)
import pandas as pd
import numpy as np
def style_dataframe(df, maxvals=None):
result = df.style
result.set_properties(**{'text-align': 'center'})
result.set_properties(**{'font-family': 'monospace'})
result.set_properties(**{'font-weight': 'bold'})
result.set_table_styles([
@why-not
why-not / sign_verify.sh
Last active February 3, 2022 05:49
Sign and Verify Using Public/Private Keys
# generate private key
openssl genrsa -out private_key.pem 4096
# extract public key
openssl rsa -in private_key.pem -pubout > public_key.pub
# sign using private key
openssl dgst -sign private_key.pem -keyform PEM -sha256 -out VGG_ILSVRC_16_layers.caffemodel.sign -binary VGG_ILSVRC_16_layers.caffemodel
# extract using public key
@why-not
why-not / pandas_data_reader_example.py
Created September 13, 2019 03:59
pandas data reader for stock data.
# command to install this library.
# conda install pandas-datareader
# example 1
import pandas_datareader as pdr
tsla = pdr.DataReader('tsla', data_source='google', start='2017-1-1')
# example 2
# calculates the trailing stop order price, can be used for weight loss like time series as well.
@why-not
why-not / aws-get_ip-update_sublime.py
Last active August 6, 2018 03:46
When you have a Sublime Text SFTP remote folder mapping to an Amazon AWS machine, everytime you reboot you have to update your Sublime SFTP config file so it knows where the folder/files are now. This ofcourse is massively tragic and should not be permitted in a civilized society. Hence this script. It even prints a connection string, so you can…
import json
import subprocess
"""EDIT FNAME TO UPDATE WITH YOUR LOCAL FILE PATH"""
FNAME = "/PATH/To/SUBLIME/SFTP/FILE/sftp-config.json"
def update_json_file(given_ip, filename):
jsonfile = open(filename, "r") # open the json file for reading
data = json.load(jsonfile) # read the json into the buffer