Skip to content

Instantly share code, notes, and snippets.

View JavaScriptDude's full-sized avatar
💤
Dreaming of Code

Timothy C. Quinn JavaScriptDude

💤
Dreaming of Code
  • Ontario, Canada
View GitHub Profile
@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 / 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 / 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 / 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 / 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 / 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

@JavaScriptDude
JavaScriptDude / asyncio_main_example_3_11.py
Last active September 26, 2023 22:57
Asyncio Example for Python 3.11+
# GIT Home: https://gist.github.com/JavaScriptDude/f673980de8e27a39cbffff55dd0c63b2
import sys
import traceback
import asyncio
_verbose = ("--verbose" in sys.argv)
opts = None
# Main - For all your business logic
# Note: do not call sys.exit() directly from here, instead use raise ExitProgram(msg=<msg>, code=<code>)
@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 / SMTP_Python_3_7_plus.py
Last active October 25, 2023 19:47
SMTP Email in Python 3.7+
import smtplib
import os
import json
from email.message import EmailMessage
from validate_email import validate_email
class Mailer():