Skip to content

Instantly share code, notes, and snippets.

View fgimian's full-sized avatar

Fotis Gimian fgimian

View GitHub Profile
@fgimian
fgimian / CMakeLists.txt
Last active July 2, 2023 02:33
My first attempt at a CMake script for building an application
include(FetchContent)
cmake_minimum_required(VERSION 3.26)
project(
totalmix-control
VERSION 0.1.0
DESCRIPTION "Provides control over RME TotalMix via OSC."
HOMEPAGE_URL "https://github.com/fgimian/totalmix-control"
)
@fgimian
fgimian / satellite.py
Created August 21, 2016 23:35
Red Hat Satellite Dynamic Inventory for Ansible
#!/usr/bin/env python
#
# Red Hat Satellite Dynamic Inventory for Ansible
# Copyright 2016 by Fotis Gimian (MIT License)
#
# Set your inventory to point to this script and ensure the script is
# executable. You'll need an INI file with Satellite details of the following
# style (whereby you may specify one or more Satellite servers):
#
# [satellite]
@fgimian
fgimian / main.rs
Last active November 20, 2022 09:38
Example Window for Volume Widget using winit
use anyhow::Result;
use thiserror::Error;
use windows::Win32::UI::{
Input::KeyboardAndMouse::{
RegisterHotKey, MOD_SHIFT, VK_VOLUME_DOWN, VK_VOLUME_MUTE, VK_VOLUME_UP,
},
WindowsAndMessaging::{MSG, WM_HOTKEY},
};
use winit::{
dpi::{PhysicalPosition, PhysicalSize},
@fgimian
fgimian / main.rs
Last active November 19, 2022 21:54
Animations with egui
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
use eframe::egui;
use egui::{color, pos2, Color32, Id, Rect, Rounding};
fn main() {
let options = eframe::NativeOptions::default();
eframe::run_native(
"My egui App",
options,
# Generate a file containing all URLs for Logic Pro X content
curl -s http://audiocontentdownload.apple.com/lp10_ms3_content_2016/logicpro1023.plist | \
grep -B 1 DownloadSize | grep "<string>" | sed -e "s:.*<string>::" -e "s:</string>.*::" | \
sed "s;^;http://audiocontentdownload.apple.com/lp10_ms3_content_2016/;" > logic-pro-x-download-urls-2016.txt
# After generating the output file logic-pro-x-download-urls-2016.txt, I recommend opening it with Firefox
# and using DownloadThemAll to download all the URLs.
# When the downloads are complete, you may automatically install packages as follows
sudo -v
@fgimian
fgimian / parameter-issue.ps1
Created June 5, 2019 01:55
How can I allow parameter sets to be optional? :)
function Install-File {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true, Position=0)][string]$Path,
[Parameter(ParameterSetName='SourcePath')][string]$SourcePath,
[Parameter(ParameterSetName='Content')][string]$Content,
[Parameter(ParameterSetName='DownloadUrl')][string]$DownloadUrl
)
# ...
#!/usr/bin/env python3
"""
Trash Locations shows you all deleted files and their original location (sorted by original
location).
To run this script, you'll first need to install Python 3.6 or later and run:
pip3 install ds_store
Developed by Fotis Gimian (MIT license).
@fgimian
fgimian / slack_delete.rb
Created May 30, 2018 00:39 — forked from jamescmartinez/slack_delete.rb
This Ruby script will bulk remove all Slack files older than 30 days. Just add your API token from https://api.slack.com/web#authentication into the token quotes at the top of the file.
require 'net/http'
require 'json'
require 'uri'
@token = ''
def list_files(days)
params = {
token: @token,
ts_to: (Time.now - days * 24 * 60 * 60).to_i,
@fgimian
fgimian / custom_tag_handler.cr
Created May 28, 2018 10:22
The following Crystal code attempts to implement custom YAML tag processing
require "yaml"
# The default representation of null values in Crystal is an empty value which while valid
# (see http://yaml.org/type/null.html) but is less familiar and clear to me, use the string
# "null" instead
struct Nil
def to_yaml(yaml : YAML::Nodes::Builder)
yaml.scalar "null"
end
end
---
# Ensure very detailed checking with no exclusions
strictness: veryhigh
doc-warnings: true
member-warnings: true
test-warnings: true
# Set maximum line length across linters to the agreed length
max-line-length: 100