Skip to content

Instantly share code, notes, and snippets.

View meshula's full-sized avatar
💭
Exploring liminal spaces

Nick Porcino meshula

💭
Exploring liminal spaces
View GitHub Profile
@meshula
meshula / strings.hpp
Created November 24, 2021 19:39
strings.hpp
#include <atomic>
#include <cstdlib>
#include <vector>
#include <stdlib.h>
//#define PRINT(...) printf(__VA_ARGS__)
#define PRINT(...)
/*
@meshula
meshula / classic-film-editing.md
Created October 24, 2021 19:33
Classic film editing

The basis for the mathematical roots of non-linear editing begins with its roots in film.

At the end of day of shooting, rolls of film for images, and reels of magnetic tape for sound, were gathered for developing and processing. Once the film was developed, the audio was registered with the image frames, by transfer to a so called “mag track”. If the source film was 35mm, with four perforations per frame, the audio was transferred to a a 35mm mag track, recorded at the appropriate speed such that each four perforations on the mag track corresponded to 1/24 of a second of sound.

A clapper was recorded for each take recorded to film and tape; and a frame was manually marked on the film where the boards of the clapper first visually meet. The audio was then matched to the film so that the peak in the audio recording of the clapper matches the frame where the clapper's “sticks” met. The perforations in the film and the audio track provide the increments forward and back that the mag-track can be synchronized

Definitions

Ansible server - where ansible is installed Module - a set of commands meant to run on the client Task - a section in a playbook with a single procedure to complete Role

  • independent yaml files that can be invoked from

There's two kinds of documentation you can reasonably achieve, forensic, and narrative.

Placing a camera in the room and pointing it at the screen is forensic. You can go much farther than a camera in the room, and record an in-experience motion trace of objects in the virtual world, as well as HMD and controller pose.

Narrative documentation is crafted recordings, meant to communicate specific points, and the creation of the narrative documentation is no different than making a movie.

The fundamental problem with forensic documentation is the same as in court room. Maybe the camera was pointed in the wrong direction when the murder occurred, or you neglected to record a crucial signal such as in-experience audio cues.

The fundamental problem with narrative documentation is that you can't omnisciently provide the answers to future questions.

@meshula
meshula / usd-tbb-boost.md
Last active October 14, 2021 12:18
usd-tbb-boost.md

boost removal is an ongoing, low noise effort.

At this point, if you build without python, you can build the usd libraries treating boost as header only, without actually building boost. one or two of the command line tools use boost for command line options.

Porting those to (my suggestion) CLI11 would remove the last non-python boost dependency.

to be redundant and clear: you can manually cherrypick the boost headers

class Marker {
}
class Element {
var layers = [CGImage?]() // this will become an ImageIndex that refers to a jpg, tile, etc
var markers = [Int]()
var start_frame = Int(0)
var end_frame_ex = Int(0)
var in_frame = Int(0)
@meshula
meshula / zig-pypi.py
Created July 13, 2021 17:25
publish zig to pypi
# This is not original code, it's from https://github.com/ziglang/zig-pypi
# this copy's purpose is to add comments in order to understand how it works
import os
import hashlib
import urllib.request
from email.message import EmailMessage
from wheel.wheelfile import WheelFile, get_zipinfo_datetime
from zipfile import ZipInfo, ZIP_DEFLATED
import libarchive # from libarchive-c
@meshula
meshula / rusty-cli.md
Last active May 11, 2023 13:31
Rust rewrites of command line tools
@meshula
meshula / usd-adoption.md
Created May 19, 2021 22:18
notes on usd adoption
  • on Windows, pip largely works for PySide2, but PySide2 is poorly supported and mostly broken under conda. Mixing and matching pip and conda is a bad practice.
  • in a non-studio environment, Qt is problematic outside of the GPL3 environment.
  • usdview is great, but if Python, or Qt, or PySide2 provide challenges, the onboarding process to USD involves a large effort
  • no low-dependency usdview is available
  • boost is a barrier to adoption due to well documented versioning issues (e.g., it is in vfxplatform as a configuration difficulty) and an onboarding-unfriendly build system
  • tbb is a barrier outside of the DCC environment, as it is Yet Another threading system that may be at odds with either a developer's own tasking system, or a system native one such as Apple's Grand Central Dispatch. It is very easy to induces oversubscription problems with TBB in practice.
  • lack of standard cookbooks. there are multiple community efforts, but no acknowledged best practice sources
  • Python is highly adopted in Fil
@meshula
meshula / dinput8_joystick.cpp
Created May 16, 2021 19:28 — forked from t-mat/dinput8_joystick.cpp
DirectInput Joystick class
#include <windows.h>
#include <stdio.h>
#define DIRECTINPUT_VERSION 0x0800
#include <dinput.h>
#pragma comment(lib, "dinput8.lib")
#pragma comment(lib, "dxguid.lib")
class DiJoyStick {
public: