Skip to content

Instantly share code, notes, and snippets.

View jakedowns's full-sized avatar
🤓
available for hire

Jake Downs jakedowns

🤓
available for hire
View GitHub Profile
@jakedowns
jakedowns / Readme.md
Last active September 30, 2022 07:33
Citra 3Ds emulator interlacing shader for Looking Glass Portrait
@jakedowns
jakedowns / lkg-quilt.md
Last active October 5, 2022 18:36
looking glass quilt shader - interlace shader for looking glass portrait
{
"W": 704,
"H": 1280,
"seed": 1337,
"sampler": "euler_ancestral",
"steps": 42,
"scale": 20,
"ddim_eta": 0,
"dynamic_threshold": null,
"static_threshold": null,
@jakedowns
jakedowns / gourcevideo.sh
Last active March 25, 2022 00:00 — forked from Gnzlt/gourcevideo.sh
Gource video export command
#!/bin/bash
gource \
-s .03 \
-1280x720 \
--auto-skip-seconds .1 \
--multi-sampling \
--start-position 0.85
--stop-position 1.0
--stop-at-end \
@jakedowns
jakedowns / readme.md
Created August 19, 2021 01:31
How to Build & Run Citra for Android from Source with Android Studio

How to Build and Run via Android Studio

  1. Download & Install Android Studio. I'm using Android Studio Arctic Fox | 2020.3.1 Patch 1

  2. Clone the Citra-Android repo

  3. When you File > Open the citra-android folder in Studio, make sure to open the src/android/app subfolder so that the Gradle Dependencies are properly read. (i'm not sure if this is required, but I couldn't get it to build by opening the repo's root folder)

  4. make sure you have a arm64-v8a virtual device configured for testing (or uncomment , x86 in abiFilter? but i don't know if that works) https://i.imgur.com/m6XKGnW.png

@jakedowns
jakedowns / _README.md
Last active November 22, 2022 04:27
Cypress Popup Window Context Switching
@jakedowns
jakedowns / vuex-mapgetset-example.vue
Last active June 9, 2020 16:22
Vuex MapGetSet Helper - useful for binding Vuex Store property to v-model
<script>
/*
easily map vuex store fields with a generic getter and setter (assumes mutation exists: field name; all caps, with SET_ prefix)
assumes setter is top level property, not deeply nested
so you can easily use the field with v-model="field"
*/
window.mapGetSet = function(module_name,array_of_props){
let out = {};
_.map(array_of_props,(prop)=>{
@jakedowns
jakedowns / easymde-ghostinspector.js
Created May 22, 2020 20:07
Example of How to Programmatically Update EasyMDE/CodeMirror/Simple Editor Input Value for Integration & Acceptance Testing
// Ghost Inspector Hooks
window.ezmde_editors = window.ezmde_editors || [];
window.ezmde_editors[this.name] = new EasyMDE(/* ... */);
// Set Value Programmatically
Object.keys(window.ezmde_editors).forEach((k,i)=>{
window.ezmde_editors[k].value('my test value');
});
@jakedowns
jakedowns / wait-for-emails-with-subjects.js
Created May 13, 2020 18:51
ghost inspector wait for emails to arrive with subject(s)
return new Promise((resolve,reject)=>{
function checkForEmails(){
var assertions = [];
var subject_assertions = {{giemail_assert_emails_arrived_with_subjects}};
var subjects_in_dom = {{subjects_in_dom}};
for(var i=0; i<subject_assertions.length; i++){
// Exact Match
//assertions.push(subjects_in_dom.indexOf(subject_assertions[i]) >-1)
@jakedowns
jakedowns / ghostinspector-backup.py
Created May 13, 2020 02:07
Ghost Inspector Suite Backup Python Script
import requests
import os
from multiprocessing.pool import ThreadPool
API_KEY = "XXX" #Place your API Key here
r = requests.get(f"https://api.ghostinspector.com/v1/suites/?apiKey={API_KEY}")
def backup_suite(s):
resp = requests.get(f"https://api.ghostinspector.com/v1/suites/{s['_id']}/export/json/?apiKey={API_KEY}", stream=True)