Skip to content

Instantly share code, notes, and snippets.

View guss77's full-sized avatar

Oded Arbel guss77

View GitHub Profile
@guss77
guss77 / keybase.md
Created April 24, 2017 06:39
keybase proof

Keybase proof

I hereby claim:

  • I am guss77 on github.
  • I am guss77 (https://keybase.io/guss77) on keybase.
  • I have a public key whose fingerprint is 3A14 B9B7 07DF DC0E 70B1 BFB5 F04E ECD3 2769 C738

To claim this, I am signing this object:

@guss77
guss77 / update-centos-amis.sh
Created December 6, 2017 12:21
Create a YAML mapping file for CloudFormation to select a CentOS AMI
#!/bin/bash
(
cat <<EOF
Mappings:
CentOSRegionImages:
EOF
curl -s 'https://wiki.centos.org/Cloud/AWS' | xmllint -html --xpath '//table[1]/tbody/tr' - | perl -nle '
m|CentOS Linux (\d+)| and $version=$1;
@guss77
guss77 / update-ubuntu-amis.sh
Last active December 6, 2017 12:22
Create a YAML mapping file for CloudFormation to select an Ubuntu AMI
#!/usr/bin/ruby
require 'yaml'
require 'json'
require 'net/http'
def get_releases
JSON[Net::HTTP.get_response(URI.parse "https://cloud-images.ubuntu.com/locator/ec2/releasesTable").body.gsub(/,\s*\]/,"]")]["aaData"]
end
@guss77
guss77 / update-coreos-amis.sh
Created December 6, 2017 12:33
Create a YAML mapping file for CloudFormation to select a CoreOS AMI
#!/usr/bin/ruby
require 'yaml'
require 'json'
require 'net/http'
def get_releases
JSON[Net::HTTP.get_response(URI.parse "https://coreos.com/dist/aws/aws-stable.json").body.gsub(/,\s*\]/,"]")]
end
@guss77
guss77 / Futures.java
Created March 26, 2018 04:52
CompletableFuture helper class
package tech.greenfield.util.concurrent;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import java.util.function.Function;
public class Futures {
static class Thrower {
static Throwable except;
@guss77
guss77 / VertxBufferOutputStream.java
Created September 20, 2018 12:32
An output stream implementation over a Vert.x `Buffer` instance - like `ByteArrayOutputStream` but a bit Vert.xified.
import java.io.IOException;
import java.io.OutputStream;
import io.vertx.core.buffer.Buffer;
public class VertxBufferOutputStream extends OutputStream {
private Buffer buffer;
public BufferOutputStream() {
this.buffer = Buffer.buffer();
@guss77
guss77 / build-ffmpeg.Dockerfile
Created July 4, 2020 18:51
Build alternative FFMPEG for Jellyfin
FROM debian:10
# install Debian dependencies
RUN apt-get update && \
apt-get install -qy subversion git gcc g++ cmake nasm pkg-config \
libgmp-dev gnutls-dev libass-dev libfreetype6-dev libbluray-dev libfribidi-dev libdrm-dev libmp3lame-dev libopus-dev libtheora-dev libvorbis-dev libwebp-dev libx264-dev libx265-dev libzvbi-dev libva-dev && \
rm -rf /var/lib/apt
# Install NV codec support
WORKDIR /ffmpeg
@guss77
guss77 / Makefile
Created September 22, 2020 20:57
MariaDB update table with UUID
COMPOSE := docker-compose -p demouuid
start:
$(COMPOSE) up -d
sleep 3
while $(COMPOSE) ps | grep -q database; do \
$(COMPOSE) logs 2>/dev/null| grep -q 'MySQL init process done.' && break;\
$(COMPOSE) logs 2>/dev/null| grep -i error && break;\
$(COMPOSE) ps | grep -q Exit && break;\
done
@guss77
guss77 / azure-rest-api-auth.sh
Last active April 19, 2021 22:05
Create a shared key for Azure storage REST API
#!/bin/bash
# Based on https://docs.microsoft.com/en-us/azure/storage/common/storage-rest-api-auth
function GetCanonicalizedResource() {
local address="$1" storageAccountName="$2"
echo -n "/${storageAccountName}$(cut -d? -f1 <<<"$address")"
cut -d? -f2- <<<"$address" | tr '&' '\n' | (while IFS="=" read key val; do printf '\n%s:%s' "$key" "$val"; done)
}
@guss77
guss77 / sevenboom.cpp
Last active August 7, 2021 13:09
Seven boom game by tracking each decimal digit separately instead of looking at the actual number and computing
#include <memory>
#include <ranges>
#include <iostream>
class Digit {
unsigned char val, sevenCount;
std::unique_ptr<Digit> moreSignificant;
public:
Digit(unsigned char startVal) : val(startVal), sevenCount(startVal % 7) {}
void inc() {