Skip to content

Instantly share code, notes, and snippets.

View ryukinix's full-sized avatar
☢️
IN RESEARCH

Manoel V. Machado ryukinix

☢️
IN RESEARCH
View GitHub Profile
@ryukinix
ryukinix / github_actions_deploy.md
Last active June 24, 2026 06:50
cl-bbs GitHub Action deployment plan with Cloudflare Tunnels

Implementation Plan: Continuous Deployment (Production & QA)

Objective

Create GitHub Action workflows to automatically deploy to specific environments depending on the trigger context, utilizing Cloudflare Tunnels for SSH access in the runner using and-fm/cloudflared-ssh-action:

  1. Production (deploy.yml): Deploys the master branch to the production server.
  2. QA (deploy-qa.yml): Deploys a Pull Request branch to a dedicated QA instance using a specific QA Docker tag (qa) after CI checks (linting and testing) pass successfully.

1. Prerequisites and Secrets Configuration

The following GitHub Secrets map directly to the requirements in both workflows (Settings -> Secrets and variables -> Actions -> New repository secret).

#!/bin/bash
# dump screenshots to telegram and delete from filesystem
set -e
get-pictures() {
# get screenshots
find /mnt/mmc/Roms /mnt/sdcard/Roms -type f -regex ".*-[0-9]+-[0-9]+.png\$"
}
"""
Download a remote playlist as m3u from server.manoel.dev to watch by streaming.
Example
-------
> python downloadplaylist.py https://server.manoel.dev/extra_animes/Serial%20Experiments%20Lain/
Will write a serial-experiments-lain.m3u
@ryukinix
ryukinix / test.lisp
Created December 2, 2022 20:21
paper scissors rock written in loop
;; Then, a winner for that round is selected: Rock defeats Scissors,
;; Scissors defeats Paper, and Paper defeats Rock. If both players
;; choose the same shape, the round instead ends in a draw.
(defun winner (a b)
(loop with hands = (cons a b)
and rules = '(((paper . scissors) second)
((paper . rock) first)
((rock . paper) second)
((rock . scissors) first)
@ryukinix
ryukinix / info.txt
Created October 30, 2022 15:40
doom info debug
generated Oct 30, 2022 12:40:10
system "Artix Linux" Linux 5.15.74-1-lts x86_64
emacs 28.2 ~/.emacs.d.doomemacs/
doom 3.0.0-pre PROFILE=_@0 HEAD -> master, origin/master,
origin/HEAD 3a3489449 2022-10-29 21:57:51 +0200 ~/.doom.d/
shell /usr/bin/zsh
features ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS
HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND
THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB
@ryukinix
ryukinix / blend.png
Last active September 26, 2021 06:34
Fauux Mystery Decoder for 2021 puzzle
blend.png
;; pseudo-random numbers don't follows Benford's Law.
(ql:quickload :cl-spark)
(defun random-numbers (max count)
(loop repeat count
for n := (random max)
when (plusp n)
collect n))
~/.wine/drive_c/Program Files (x86)/EA GAMES/Need For Speed Underground
❯ wine Speed.exe
01e8:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
INTEL-MESA: warning: Ivy Bridge Vulkan support is incomplete
01e8:fixme:d3d9:Direct3DShaderValidatorCreate9 Returning stub validator 7EB6F364.
01e8:fixme:d3d9:Direct3DShaderValidatorCreate9 Returning stub validator 7EB6F364.
01e8:fixme:d3d9:Direct3DShaderValidatorCreate9 Returning stub validator 7EB6F364.
01e8:fixme:d3d9:Direct3DShaderValidatorCreate9 Returning stub validator 7EB6F364.
01e8:fixme:d3d9:Direct3DShaderValidatorCreate9 Returning stub validator 7EB6F364.
01e8:fixme:d3d9:Direct3DShaderValidatorCreate9 Returning stub validator 7EB6F364.
@ryukinix
ryukinix / log.txt
Last active July 19, 2020 12:39
Log from gamedev@freenode.net about C++/SDL2 guide
<lerax> hey, can someone point to me a good and fresh SDL2 + C++ guide? I only
know from lazy foo. Is there something better?
<pulse> lazyfoo gives you most of what you need tho [07:47]
<pulse> when i was learning SDL i just went through each tutorial, making my
own source as i went [07:50]
<pulse> and now i have all those examples in an executable format with a clear
source along with it [07:51]
<pulse> so i'd recommend just doing that
<pulse> the good thing about those tutorials is that every one of them is
concise and gets straight to the point
@ryukinix
ryukinix / find-executable.lisp
Last active August 19, 2025 05:46
find-executable in Common Lisp
(defun executables ()
(loop with path = (uiop:getenv "PATH")
for p in (uiop:split-string path :separator ":")
for dir = (probe-file p)
when (uiop:directory-exists-p dir)
append (uiop:directory-files dir)))
(defun find-executable (name)
(find name (executables)
:test #'equalp