Skip to content

Instantly share code, notes, and snippets.

View costa's full-sized avatar

Costa Shapiro costa

View GitHub Profile
@costa
costa / integ_spec.rb
Created June 29, 2024 12:39
icloud-vlogger's formal specification (with RSpec, excerpt)
# ...definitions...
describe "Automated vlogging" do
# ...setup...
it "should happen whenever iCloud has a new *relevant* video" do
Dir.chdir LOG_PROJ_DIR do
before_dir = Dir.children(TODAY_DATE_DIR) rescue []
expect(expected_pub_url = ask("Enter the (\"channel\") URL for publishing")).not_to be_empty
puts RQRCode::QRCode.new(expected_pub_url).as_ansi
expect(ask "Now, shoot your best (very short, please) video with your (stock) iSome device:\n" +
"at the end of the video, point and focus its camera on the QR above (publishing URL).\n" +
@costa
costa / Dockerfile
Created June 22, 2024 13:16
Shim component for NATS Streaming (XpoLog input)
FROM python:3.9
WORKDIR /stan-xpolog
ADD requirements.txt .
RUN pip install -r requirements.txt
ADD . .
ENV PORT=80
@costa
costa / docker-compose.yml
Created June 15, 2024 18:42
primitively deploying containerized XpoLog: https://www.xplg.com/log-management
version: '2.1'
services:
xpolog:
build: .
@costa
costa / Dockerfile
Created June 15, 2024 18:32
primitively containerizing XpoLog: https://www.xplg.com/log-management
FROM debian:bookworm
RUN apt update && apt install -y curl
WORKDIR /tmp
RUN curl -O "https://xdn.xplg.com/downloads/xpolog/GA/linux/XpoLogCenterSetup-64.bin.gz" && gunzip XpoLogCenterSetup-64.bin.gz && chmod a+x XpoLogCenterSetup-64.bin
RUN yes '' | ./XpoLogCenterSetup-64.bin
WORKDIR /root
EXPOSE 30303
@costa
costa / integ_specs.rb
Last active March 11, 2024 13:05
The principal excerpts of the "Lively Video Reporting" system core comps' integ specs
describe "Automated publishing" do # NOTE incl. drv/youtube integration
# ...setup...
it "should happen whenever .pub.video is comitted to 'log' git repo" do
Dir.chdir log_repo_work_dir do
sample_pub_video_path = File.join(today_date_path, 'just-testing.pub.video')
sample_pub_video_text = # NOTE straight outta ../README.md
<<EOF
Chang Wash Fun, winter 2022, Chiang Mai, Thailand
src:
# NOTE re: deployment
# - with self server (running on any VM from any provider):
# $ @@ dev docker-compose up --remove-orphans
# and then:
# $ @@ ^dev # will securely tunnel WUI (:3000) to http://localhost:16623
# - with docker-compose configured otherwise:
# # well, you must know how to run this in your environment then, see below
version: '2.1'
services:
chat:
@costa
costa / html2haml.sh
Created September 11, 2023 11:55
HTML -> HAML one-liner
docker run --rm -v "`pwd`:`pwd`" -w "`pwd`" ruby bash -c 'gem install html2haml; find . -name "*.erb" | while read path; do html2haml "$path" "${path%erb}haml"; rm "$path"; done'
|o|
video_output_options = {resolution: Ffmprb::HD_4K, fps: 60, encoder: 'huffyuv'}
class InputSlideCropper
def initialize(inp, cols = 1, rows = 1)
fail "not much of a slideshow" unless
rows > 0 && cols > 0 && rows + cols > 2
@inp = inp
@h1 = 1.0/(@rows = rows)
@w1 = 1.0/(@cols = cols)
|o|
# NOTE Run me like this: | <ffmprb> <OUT-PATH>
# NOTE A bit of a boilerplate for more independence:
# NOTE for previewing
# video_output_options = {resolution: Ffmprb::HD_720p, fps: 30, encoder: 'libx264'}
# NOTE for further processing:
video_output_options = {resolution: Ffmprb::HD_4K, fps: 60, encoder: 'huffyuv'}
# NOTE for viewing
|o|
# NOTE Run me like this: | <ffmprb> <OUT-PATH>
# NOTE for previewing
# video_output_options = {resolution: Ffmprb::HD_720p, fps: 30, encoder: 'libx264'}
# NOTE for further processing:
video_output_options = {resolution: Ffmprb::HD_4K, fps: 60, encoder: 'huffyuv'}
# NOTE for viewing
# video_output_options = {resolution: Ffmprb::HD_1080p, fps: 60, encoder: 'libx265'}
# NOTE for dev