Skip to content

Instantly share code, notes, and snippets.

View YuriyGuts's full-sized avatar

Yuriy Guts YuriyGuts

View GitHub Profile
@YuriyGuts
YuriyGuts / blackout-daily-stats.py
Last active February 2, 2023 10:38
Given a dataset of blackout events, generate daily downtime stats and calendar visualizations
#!/usr/bin/env python3
"""
Given a dataset of blackout events, generate daily downtime stats and calendar visualizations.
-------------------
Prerequisites
-------------------
python3 -m venv ~/.virtualenvs/blackout-stats
source ~/.virtualenvs/blackout-stats/bin/activate
pip install pandas==1.5.2 matplotlib==3.6.2 july==0.1.3
@YuriyGuts
YuriyGuts / dashcam-encode.py
Last active April 14, 2023 12:13
Merge and encode dashcam videos stored on an SD card
#!/usr/bin/env python3
"""
Concatenate and encode dashcam videos stored on an SD card.
Assumes the videos are stored as *xxxx.avi / *xxxx.mp4 / *xxxx.mov, where xxxx is a
sequential index. This should be compatible with most dashcam SoC manufacturers.
System requirements and dependencies:
-------------------------------------
@YuriyGuts
YuriyGuts / russian_casualty_parser.py
Last active September 22, 2023 14:04
Parse the numbers of Russian casualties in Ukraine from a news website, save them to CSV files, and plot them
# -*- coding: utf-8 -*-
# Parse the numbers of Russian casualties in Ukraine from a news website, save them to CSV files, and plot them.
#
# Prerequisites:
# $ pip install beautifulsoup4==4.10.0 matplotlib==3.4.3 requests==2.26.0 pandas==1.3.4
#
# Usage:
# $ python3 russian_casualty_parser.py
#
# Output:
@YuriyGuts
YuriyGuts / install-persistent-touch-id-sudo.sh
Last active February 2, 2022 13:04
Installs a PAM configuration script as a macOS launch daemon so that Touch ID for sudo is always available and persists across OS updates
#!/usr/bin/env bash
# This script installs a PAM configuration script as a macOS launch daemon
# so that Touch ID for sudo is always available and persists across OS updates.
# NOTE: You might need to allow /usr/bin/env in Security & Privacy > Full Disk Access.
set -euo pipefail
PACKAGE_NAME="com.yuriyguts.persistent-touch-id-sudo"
CONFIG_SCRIPT_INSTALL_PATH="/usr/local/bin/${PACKAGE_NAME}.sh"
@YuriyGuts
YuriyGuts / convert-subtitles.py
Created January 1, 2020 16:48
Converts subtitles in a video from any format to plain text using ffmpeg
"""
Converts subtitles in a video from any format to plain text using ffmpeg.
Reads all files that match a glob pattern.
Writes output to current directory unless specified otherwise.
Usage: convert-subtitles.py <input_pattern> [output_folder]
Example: convert-subtitles.py ~/Videos/*.mkv
"""
import glob
@YuriyGuts
YuriyGuts / dou_salaries_translate_eng.py
Created August 19, 2018 18:43
Translate the DOU salary survey dataset (https://github.com/devua/csv/tree/master/salaries) into English
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pandas as pd
input_filename = 'https://raw.githubusercontent.com/devua/csv/master/salaries/2018_june_final.csv'
output_filename = '2018_june_final_eng.csv'
df = pd.read_csv(input_filename)
@YuriyGuts
YuriyGuts / chocolatey-install-apps.cmd
Last active September 27, 2023 21:22
A script to install all necessary software on a fresh Windows installation using Chocolatey
@echo off
rem ===== Run this first: =====
rem @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
rem choco feature enable -n=allowGlobalConfirmation
rem mkdir C:\Tools
rem choco install -y toolsroot
rem ===========================
rem ----- Essentials -----
@YuriyGuts
YuriyGuts / DataRobotV2ApiAutopilotDemo.cs
Created June 22, 2018 23:37
C# sample application for interacting with the DataRobot REST API (V2).
// This is an example of a C# application that uploads a CSV dataset to DataRobot,
// runs a classification project in autopilot mode and prints the leaderboard
// using the V2 REST API. Here you can also see an example of interacting with the
// asynchronous API routes (upload project, set target).
// Since the WebClient class has limited HTTP functionality, we use the newer
// Microsoft.Net.Http.HttpClient class. Its methods are async; as a result,
// the C# code uses asynchronous operations too.
// You may need to install the following packages for this code to work:
@YuriyGuts
YuriyGuts / window_arrange.py
Created October 11, 2017 19:20
Save or restore X11 desktop window arrangement using the wmctrl package
#!/usr/bin/env python3
"""
Save or restore X11 desktop window arrangement.
Requires the `wmctrl` package to work.
Examples:
window_arrange.py save
window_arrange.py restore
window_arrange.py --profile ~/.winlayout-home save
@YuriyGuts
YuriyGuts / cartpole-qlearning.md
Last active October 15, 2016 23:42
An implementation of a cart pole balancing agent using Q-Learning (https://gym.openai.com/evaluations/eval_K41KvF0Re6BJW593cq2Tg).

CartPole Q-Learning Agent

Solves the OpenAI CartPole-v0 environment using a tabular version of Q-Learning with discretized feature space and epsilon-decreasing exploration.

View Repository