Skip to content

Instantly share code, notes, and snippets.

@fstanis
fstanis / ViewModelScope.kt
Created August 6, 2023 12:43
Hilt inject a CoroutineScope into anything @ViewModelScoped
// Copyright 2023 Google LLC.
// SPDX-License-Identifier: Apache-2.0
import dagger.hilt.android.ViewModelLifecycle
import dagger.hilt.android.scopes.ViewModelScoped
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.cancel
import javax.inject.Inject
@fstanis
fstanis / simple.go
Created September 22, 2022 11:04
libmpv/simple/simple.c rewritten in Go
package main
/*
#include <stdlib.h>
#include <mpv/client.h>
#cgo pkg-config: mpv
const char* INPUT_DEFAULT_BINDING = "input-default-bindings";
const char* INPUT_VO_KEYBOARD = "input-vo-keyboard";
const char* YES = "yes";
@fstanis
fstanis / pacmdx
Last active April 30, 2021 14:06
pacmd with extensions
#!/bin/bash
# Copyright 2021 Google LLC.
# SPDX-License-Identifier: Apache-2.0
# This script provides a few extensions to pacmd, the tool used to reconfigure
# a running PulseAudio sound server during runtime.
# Added commands:
# exists-card Checks if card exists (args: name)
@fstanis
fstanis / notes.html
Created March 19, 2020 17:32
AMP for Email - dynamic notes
<!--
Copyright 2020 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
@fstanis
fstanis / server.js
Created March 19, 2020 15:48
Simple AMP for Email compatible server for notes
/*
Copyright 2020 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
#!/usr/bin/python3
# Copyright 2019 Google LLC.
# SPDX-License-Identifier: Apache-2.0
# Sends an AMP email from a Gmail account.
import smtplib
from email import encoders
from email.mime.text import MIMEText
@fstanis
fstanis / amp-validator-query.js
Created July 4, 2019 15:08
Query AMP HTML ⚡ Validator JSON rules
// Copyright 2019 Google LLC.
// SPDX-License-Identifier: Apache-2.0
/**
* This example demonstrates how to query the AMP validator rules hosted on the
* AMP CDN.
*
* It lists all tags allowed in the AMP4EMAIL spec.
*/
@fstanis
fstanis / audio2waveform.html
Last active March 7, 2023 01:42
Demo on creating SVG waveforms from an audio file.
<!--
Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
@fstanis
fstanis / multipart_email.py
Created November 5, 2018 19:19
Sends a multipart/alternative email containing 3 parts: text/plain, text/html and text/x-other.
#!/usr/bin/python3
# Copyright 2018 Google LLC.
# SPDX-License-Identifier: Apache-2.0
# Sends a multipart/alternative email containing 3 parts: text/plain, text/html and text/x-other.
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
@fstanis
fstanis / ffgif.sh
Last active July 5, 2021 12:05
Simple shell script for creating HQ gifs from videos using ffmpeg
#!/bin/bash
# Based on: https://medium.com/@colten_jackson/doing-the-gif-thing-on-debian-82b9760a8483
# Command line arguments:
# -i <input file> (required)
# -o <output file> (required)
# -s <start time>
# -t <duration in seconds>
# -f <output FPS>