Skip to content

Instantly share code, notes, and snippets.

@popstas
popstas / codex-helper.userscript.js
Last active October 10, 2025 14:22
Voice talk about task complete
// ==UserScript==
// @name codex-helper
// @namespace https://chatgpt.com/codex
// @version 1.6.1
// @description Следит за появлением/исчезновением .loading-shimmer-pure-text ИЛИ svg>circle в .task-row-container. Пишет статусы на холсте и (опционально) озвучивает. Игнорирует задачи без имени ("Unnamed task"). Не объявляет "Task complete", если ранее было "Completing the task". Считает "Completing" также по прогрессу в .text-token-text-tertiary вида N/N (2/2, 3/3 и т.п.).
// @match https://chatgpt.com/codex*
// @run-at document-idle
// @grant none
// @noframes
// @updateURL https://gist.githubusercontent.com/popstas/0c504feeeac65194024bc9ae0f46abed/raw/98cefa74285987018c619e34821993c89ee6436b/codex-helper.userscript.js
@popstas
popstas / codex-prompts.md
Created August 26, 2025 18:35
Codex prompts

Codex prompts

Общие улучшения

  • Объясни новичку кодовую базу. Какова общая структура, что важно знать и какие подсказки следует изучить дальше? Создай AGENTS.md
  • Изучи историю коммитов за последний месяц, AGENTS.md, CHANGELOG.md, README.md. Дополни README.md недостающими описаниями последних изменений.
  • Refactor index.ts, make it more testable
  • Add tests with coverage. Add github workflow "test".
  • Improve test coverage (если есть подробные инструкции в AGENTS.md)
  • Просмотри кодовую базу, найди проблемы и предложи одну задачу по исправлению опечатки, одну задачу по исправлению ошибки, одну задачу по исправлению комментария к коду или несоответствия в документации и одну задачу по улучшению теста.
  • Выбери важную часть кодовой базы, найди и исправь ошибку.
#!/bin/bash
set -e
n="$n"
cd /media/media/video
if [ -z "$n" ]; then
n="$(ls -1 *.mkv | fzf | sed 's/\.mkv$//')"
fi
subslist="$(ffprobe "$n.mkv" 2>&1 | grep -A 2 Subtitle)"
echo "$subslist"; sleep 3
pip install ansible
ansible-galaxy install viasite-ansible.zsh --force
curl https://raw.githubusercontent.com/viasite-ansible/ansible-role-zsh/master/playbook.yml > /tmp/zsh.yml
ansible-playbook -i "localhost," -c local -b /tmp/zsh.yml --extra-vars="zsh_user=$(whoami)"
@popstas
popstas / sysbench-cpu-test.sh
Last active June 11, 2024 09:12
sysbench cpu test
apt install sysbench -y
yum install sysbench -y
# bash, zsh
for threads in 1 2 4 8 16 32 64 128; do echo -e "\n\nthreads: $threads"; sysbench cpu --validate=on --threads=$threads --verbosity=3 run | tail -n17 | head -n1; done
# zsh only
sysbench-cpu() { echo -e "\n\nthreads: $threads"; sysbench cpu --validate=on --threads=$threads --verbosity=3 run | tail -n17 | head -n1 }
@popstas
popstas / gptb.sh
Last active September 8, 2023 12:20
gptb
#!/bin/bash
# install:
# 1. save it to /usr/local/bin/gptb
# 2. make it executable: chmod +x /usr/local/bin/gptb
# 3. add environment OPENAI_API_KEY=sk-...
#
# usage: POSTFIX="on ubuntu" gptb what you need for from bash
set -eu
PREFIX="${PREFIX:-how to}"

Кеширование страницы на nginx на минуту

В nginx.conf:

proxy_cache_path /var/cache/nginx keys_zone=cache_pages:16m max_size=10g;

Создать /etc/nginx/snippets/proxy_cache_force.conf:

Пояснения для редакций

Все рубрикаторы стали тегами

Все поля, которые определяют тематику материала, теперь стали тегами. Теги при этом разделились на несколько типов.

Общий принцип разметки тегами: ставим в отдельные поля всё, для чего есть поля: рубрики, сюжеты, персоны, колумнисты, регионы, форматы.

Все поля тегов стали необязательными и с мультивыбором.

// ==UserScript==
// @name Planfix task list
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Send task list from planner to remote server
// @author popstas
// @match https://popstas.planfix.ru/?action=planner
// @match https://popstas.planfix.ru/planner/6138
// @match https://popstas.planfix.ru/planner
// @match https://popstas.planfix.ru/*
@popstas
popstas / gist:850a49f1ccab0fd609cea413e35b9ad3
Created April 19, 2021 08:03
userscript-yandex-metrika-screenshot.js
// ==UserScript==
// @name Yandex Metrika Screenshot
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Screenshot mode
// @author popstas
// @match https://metrika.yandex.ru/*
// @grant GM_addStyle
// ==/UserScript==