Skip to content

Instantly share code, notes, and snippets.

#!/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 / 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
@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 / 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 / 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 / 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