Skip to content

Instantly share code, notes, and snippets.

View fgimian's full-sized avatar

Fotis Gimian fgimian

View GitHub Profile
@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,
@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
import math
import sys
import time
# Colours
BOLD = '\033[1m'
RED = '\033[91m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
@fgimian
fgimian / test-ping.sh
Last active November 21, 2016 08:16
A simple little script to run on macOS to test stability of your internet connection
#!/bin/bash
# Set the destination IP or hostname to ping
DESTINATION=8.8.8.9
# Ping the endpoint and write an error to a log file if the ping fails 5 times consecutively
FAILURE_COUNT=0
while true
do
ping -c 1 -t 1 $DESTINATION > /dev/null 2>&1
@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]
#!/usr/bin/env python
from __future__ import print_function
from glob import glob
import multiprocessing
import os
import signal
import subprocess
import sys