Skip to content

Instantly share code, notes, and snippets.

View devdave's full-sized avatar
🌴
On vacation

devdave

🌴
On vacation
View GitHub Profile
@devdave
devdave / counter.py
Created December 1, 2022 18:42
simple script to summarize the contents of a directory of docx files
from pathlib import Path
from collections import Counter
from docx import Document # pip install python-docx
from nltk.tokenize import sent_tokenize, word_tokenize # pip install nltk==3.5
ROOT = Path(r"C:\\REDACTED\\book\\")
@devdave
devdave / python-people.md
Created November 15, 2022 16:14 — forked from samuelcolvin/python-people.md
An incomplete list of people in the Python community to follow on Twitter and Mastodon.

Python People

An incomplete list of people in the Python community to follow on Twitter and Mastodon.

With the risk that Twitter dies, I'd be sad to lose links to interesting people in the community, hence this list.

I would love you to comment below with links to people I've missed.

More context and comments at the end of the list.

@devdave
devdave / Speech Recognition.ahk
Created June 30, 2022 16:34 — forked from Uberi/Speech Recognition.ahk
Speech recognition with Microsoft's SAPI. A simple SpeechRecognizer class provides a quick and easy way to use speech recognition in your scripts. Inspired by some [prototype code](http://www.autohotkey.com/board/topic/24490-voice-recognition-com/) made a long time ago.
#NoEnv
#Warn All
#Warn LocalSameAsGlobal, Off
#Persistent
/*
Speech Recognition
==================
A class providing access to Microsoft's SAPI. Requires the SAPI SDK.
@devdave
devdave / Concepts.md
Created May 29, 2022 19:30 — forked from DarinM223/Concepts.md
Rust concept explanations

My explanation of the main concepts in Rust

There are three main concepts with Rust:

  1. Ownership (only one variable "owns" the data at one time, and the owner is in charge of deallocating)
  2. Borrowing (you can borrow a reference to an owned variable)
  3. Lifetimes (all data keeps track of when it will be destroyed)

These are fairly simple concepts, but they are often counter-intuitive to concepts in other languages, so I wanted to give a shot at

@devdave
devdave / nde_winamp_format.txt
Created April 22, 2022 19:07
Winamp media library NDE (Nullsoft Database Engine) format
Nullsoft Database Engine Format Specifications v1.0
---------------------------------------------------
1. Tables
@devdave
devdave / gist:86caf21b18e2a9c35ad451bf4e3ff762
Created September 4, 2021 03:44 — forked from hest/gist:8798884
Fast SQLAlchemy counting (avoid query.count() subquery)
def get_count(q):
count_q = q.statement.with_only_columns([func.count()]).order_by(None)
count = q.session.execute(count_q).scalar()
return count
q = session.query(TestModel).filter(...).order_by(...)
# Slow: SELECT COUNT(*) FROM (SELECT ... FROM TestModel WHERE ...) ...
print q.count()
@devdave
devdave / rust-python-cffi.md
Created August 16, 2021 23:53 — forked from seanjensengrey/rust-python-cffi.md
Calling Rust from Python/PyPy using CFFI (C Foreign Function Interface)

This is a small demo of how to create a library in Rust and call it from Python (both CPython and PyPy) using the CFFI instead of ctypes.

Based on http://harkablog.com/calling-rust-from-c-and-python.html (dead) which used ctypes

CFFI is nice because:

  • Reads C declarations (parses headers)
  • Works in both CPython and PyPy (included with PyPy)
  • Lower call overhead than ctypes
@devdave
devdave / book.py
Last active February 1, 2020 07:09
Example code for having routed classes in Flask. These are different than View Classes or Blueprints as it allows exposing individual methods to the routing system
"""
Example code
============
"""
import typing as T
from flask import request, redirect
if T.TYPE_CHECKING:
from ..lib.cls_endpoint import CLSEndpointFlask
@devdave
devdave / data_migration.py
Last active April 8, 2020 02:25
sqlalchemy alembic data migration example
"""Convert lat/long from float to int
Revision ID: b020841d98e4
Revises: 6e741a21efc8
Create Date: 2019-07-10 20:03:38.282042
Given a source table like
class GPS(Base):
# $--RMC, hhmmss.sss, x, llll.lll, a, yyyyy.yyy, a, x.x, u.u, xxxxxx,, , v * hh < CR > < LF >
@devdave
devdave / runner.py
Last active October 11, 2025 01:51
non-blocking python subprocess
import subprocess
import threading
import queue
import os
import time
class Runner(object):
def __init__(self, cmd: []):
self.cmd = cmd