Skip to content

Instantly share code, notes, and snippets.

View kesor's full-sized avatar
🏠
Working from home

Evgeny Zislis kesor

🏠
Working from home
View GitHub Profile
@kesor
kesor / broken-chatgpt-tampermonkey.js
Created December 13, 2022 03:50
This is a voice Synthesis for ChatGPT that unfortunately doesn't work right now
// ==UserScript==
// @name ChatGPT Speak and Listen
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author https://gist.github.com/kesor
// @downloadURL https://gist.github.com/kesor/fc0d1a9b285011b74670109f22a59670
// @match https://chat.openai.com/chat
// @grant unsafeWindow
// ==/UserScript==
@kesor
kesor / 1-voice-synthesis.js
Last active March 7, 2024 00:19
Making chat OpenAI use TTS
// paste this into your chrome dev console for Speech Synthesis
const originalFetch = window.fetch
const patchedFetch = (...args) => {
if (args[1].method == 'POST' && args[1].body.length > 0 && /moderations$/.test(args[0])) {
const aiResponse = JSON.parse(args[1].body)["input"].split("\n\n\n")
if (aiResponse.length > 1) {
const text = aiResponse.slice(1).join(". ").trim()
console.log(text)
@kesor
kesor / seafile-nginx.conf
Created September 22, 2021 17:58
seafile-nginx.conf
server {
listen 80;
listen [::]:80;
server_name seafile.example.com;
root /usr/local/www/nginx;
error_page 500 502 503 504 /50x.html;
location = 50x.html {
root /usr/local/www/nginx-dist;
}
@kesor
kesor / kops-bootstrap.sh
Created May 11, 2021 15:26
kops AMI provision script
#!/bin/bash
set -euxo pipefail
export CALICO_VERSION="${CALICO_VERSION:-3.13.4}"
export CNI_VERSION="${CNI_VERSION:-0.8.7}"
export CONTAINERD_VERSION="${CONTAINERD_VERSION:-1.4.3}"
export DOCKER_VERSION="${DOCKER_VERSION:-20.10.0}"
export FILEBEAT_VERSION="${FILEBEAT_VERSION:-7.5.1}"
export FLANNEL_VERSION="${KUBERNETES_VERSION:-0.11.0}"
@kesor
kesor / spec.json
Created March 31, 2021 14:28
Vega-Lite Seattle Weather
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Plot showing a 30 day rolling average with raw values in the background.",
"width": 800,
"height": 600,
"data": {"url": "data/seattle-weather.csv"},
"transform": [{
"window": [
{
"field": "temp_max",
function get_cluster_name() {
if ! kubectl config current-context ; then
echo "ERROR: Could not read kubeconfig context" 2>&1
exit 1
fi
}
CLUSTER_NAME=$(get_cluster_name)
filebeat.autodiscover:
providers:
# documented at https://www.elastic.co/guide/en/beats/filebeat/master/configuration-autodiscover.html
- type: kubernetes
host: ${NODE_NAME}
hints.enabled: true
hints.default_config:
type: container
paths:
- /var/log/containers/*${data.kubernetes.container.id}.log
@kesor
kesor / kops-cluster-update-errors.txt
Created September 1, 2020 12:09
kops cluster update duplicate IAM roles
I0901 15:06:00.194412 65709 factory.go:68] state store s3://mybucket.domain.com/mycluster
I0901 15:06:00.194584 65709 s3context.go:337] GOOS="darwin", assuming not running on EC2
I0901 15:06:00.194592 65709 s3context.go:170] defaulting region to "us-east-1"
I0901 15:06:00.987020 65709 s3context.go:210] found bucket in region "us-east-1"
I0901 15:06:00.987048 65709 s3fs.go:284] Reading file "s3://mybucket.domain.com/mycluster/mycluster.domain.com/config"
I0901 15:06:01.770731 65709 s3fs.go:321] Listing objects in S3 bucket "mybucket.domain.com" with prefix "mycluster/mycluster.domain.com/instancegroup/"
I0901 15:06:01.978948 65709 s3fs.go:349] Listed files in s3://mybucket.domain.com/mycluster/mycluster.domain.com/instancegroup: [s3://mybucket.domain.com/mycluster/mycluster.domain.com/instancegroup/master-us-east-1a s3://mybucket.domain.com/mycluster/mycluster.domain.com/instancegroup/nodes s3://mybucket.domain.com/mycluster/mycluster.domain.com/instancegroup/second]
I0901 15:06:01.978996 65709
@kesor
kesor / ffmpeg-grab-cam-display.sh
Created August 20, 2020 15:29
Record display, webcam and pulseaudio using ffmpeg
#!/bin/sh
# 1. create v4l2loopback device /dev/video42 using
# $ sudo modprobe v4l2loopback video_nr=42 max_buffers=2 exclusive_caps=1
ts=$(date +%Y-%m-%dT%H:%M:%SZ-%s)
PREFIX=/mnt/data/Videos
CAMERA_INPUT=/dev/video0
@kesor
kesor / component-app.js
Last active March 11, 2024 04:14
Vue.js 3.x with ES6 modules in the browser using import-map
import { defineAsyncComponent } from 'vue'
const Content = defineAsyncComponent(() => import('./component-content.js'))
export default {
name: 'App',
components: { Content },
template: /*html*/`
<Content />
`