Skip to content

Instantly share code, notes, and snippets.

View JavaScriptDude's full-sized avatar

Timothy C. Quinn JavaScriptDude

  • Ontario, Canada
View GitHub Profile
@JavaScriptDude
JavaScriptDude / Libreoffice_Python_scripting.md
Last active December 14, 2020 04:14
Editing xls spreadsheet from Python

Installation

Linux package

sudo apt-get install python3-uno

Add python3 dist-packages to PYTHONPATH:

% dpkg-query -L python3-uno | grep dist

Add Dist Packages to PYTHONPATH in ~/.bashrc

Change this path as required % export PYTHONPATH=/usr/lib/python3/dist-packages

@JavaScriptDude
JavaScriptDude / library_template.js
Last active November 10, 2020 21:15
JS Template for making a Library that can be consumed by any system that Underscore.js supports (Browser, Node etc...)
// JS Library Template
// This is tooled to not clobber any namespace with the exception of temp var $$LIBDEF$$
// Major boilerplate was swiped from underscore.js and modified to make it more universal
// Eg: $$LIBDEF$$ = { ns: '$Q', library: 'q_lib', version: '0.1.0'};
// This will load a library refereced by singleton $Q like: $Q.hiMom()
// Change as required
$$LIBDEF$$ = { ns: '$Q', library: 'q_lib', version: '0.1.0'};
// Boilerplate (BP) start
@JavaScriptDude
JavaScriptDude / SingleInstanceChecker.py
Last active August 15, 2023 09:02
Cross Platform Example of Single Instance Checking in Python
import time, sys, os
class SingleInstanceChecker:
def __init__(self, id):
if isWin():
ensure_win32api()
self.mutexname = id
self.lock = win32event.CreateMutex(None, False, self.mutexname)
self.running = (win32api.GetLastError() == winerror.ERROR_ALREADY_EXISTS)
@JavaScriptDude
JavaScriptDude / WkHtmlToX_JS_Debug.md
Last active October 22, 2022 23:12
Debugging JavaScript for WkHtmlToX

WkHtmlToX projects uses WebKit as a backend to virutally render a web page and execute its JavaScript to get the final page for printing.

The issue is that the version of WebKit used is very old and this makes debugging JS regressions difficult. WkHtmlToX does offer a way to output the console, but it gives no way to do active debugging and provides no line numbers!

To debug JavaScript using the same WebKit version, I tracked down the version of Chromium that uses a close enough webkit version that this library leverages (534.34). Chromium 13.0.767.1, which is available here as a standalone exe for windows.

If your page does not already have a handler for window.onerror, add one with the following code in your page boot code.

// Detect old safari version used by QT and Chromium 13.0.767.1
if (naviagtor.userAgent.indexOf("Safari/534.3") > -1) {
@JavaScriptDude
JavaScriptDude / android-backup-apk-and-datas.md
Created January 19, 2022 22:32 — forked from AnatomicJC/android-backup-apk-and-datas.md
Backup android app, data included, no root needed, with adb

Backup android app, data included, no root needed, with adb

adb is the Android CLI tool with which you can interact with your android device, from your PC

You must enable developer mode (tap 7 times on the build version in parameters) and install adb on your PC.

Fetch application APK

To get the list of your installed applications:

@JavaScriptDude
JavaScriptDude / asyncio_main_example.py
Last active September 26, 2023 22:58
Python3 Asyncio Main Template
# GIT Home: https://gist.github.com/JavaScriptDude/f3c837fdabaf0e0a72e39ff319c7a3f0
# NOTE: This version works with Python 3.7.9.
# For Python 3.11, see https://gist.github.com/JavaScriptDude/f673980de8e27a39cbffff55dd0c63b2
import sys
import traceback
import asyncio
_verbose = ("--verbose" in sys.argv)
opts = None
@JavaScriptDude
JavaScriptDude / jquery_dialog_focus_test.html
Last active February 1, 2022 02:24
jQuery UI Dialog - Button Focus Tests
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Dialog - Focus Test</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.2/underscore-min.js" integrity="sha512-anTuWy6G+usqNI0z/BduDtGWMZLGieuJffU89wUU7zwY/JhmDzFrfIZFA3PY7CEX4qxmn3QXRoXysk6NBh5muQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
@JavaScriptDude
JavaScriptDude / multi_test.py
Last active May 2, 2022 04:05
Python3 - Multi-Column Sorting of List of Dicts
import inspect, time
from random import randint
from functools import cmp_to_key
def main():
perf_test()
# test_Comparator()
# test_student_comp()
students = [
@JavaScriptDude
JavaScriptDude / README.md
Last active November 6, 2023 05:22
VMWare Workstation 16 Launcher

VMWare Workstation for Linux v16 has issues related to memory fragmentation. This will cause the CPU to choke with 100% after a time. The scripts provided will allow you to fix this at launch of vmware on Linux.

Instructions:

  1. Put vmware-workstation.sh to a good location on your computer like ~/bin or similar
  2. Make vmware-workstation.sh executable
  3. Edit vmware-workstation.desktop to have correct paths based on your setup
  4. Open shell, cd to directory with .desktop file and run:
desktop-file-install --dir=$HOME/.local/share/applications ./vmware-workstation.desktop
@JavaScriptDude
JavaScriptDude / README.md
Last active March 24, 2023 21:18
Installing KDE Plasma on Linux Min 21x

Installing KDE Plasma on Linux Min 21x

First update system

sudo apt update
sudo apt -y full-upgrade

Reboot