Skip to content

Instantly share code, notes, and snippets.

View dcoles's full-sized avatar

David Coles dcoles

View GitHub Profile
@dcoles
dcoles / inline.py
Created November 14, 2012 09:13
Inline assembly in Python
View inline.py
import ctypes
import sys
import os
import errno
FUNC = ctypes.CFUNCTYPE(None)
PROT_NONE = 0
PROT_READ = 1
PROT_WRITE = 2
@dcoles
dcoles / 452874.py
Last active December 20, 2021 21:53
By only adding + - * into the string 452874 (in that order), how many way can you get to -18?
View 452874.py
"""
By only adding + - * into the string 452874 (in that order),
how many way can you get to -18?
"""
N = "452874"
M = -18
OPERATIONS = [None, '+', '-', '*']
@dcoles
dcoles / draft.rs
Created December 1, 2021 19:51
Advent of Code 2021: Day 1 (Draft vs. Final)
View draft.rs
fn main() {
let input = read_input_from_file("day01/input.txt").unwrap();
// Part 1
let mut count = 0;
let mut last = -1;
for &n in &input {
if n > last {
count += 1;
}
@dcoles
dcoles / alarmtimer.py
Created March 20, 2012 07:30
POSIX Alarm Timers example using Python ctypes
View alarmtimer.py
#!/usr/bin/env python
# POSIX Alarm Timer example using Python ctypes
#
# Author: David Coles <coles.david@gmail.com>
# Date: 2012-03-19
#
# To the extent possible under law, the author(s) have dedicated all copyright
# and related and neighboring rights to this software to the public domain
# worldwide. This software is distributed without any warranty.
View fifo_size.py
# Print the number of bytes unread in a fifo.
# David Coles <coles.david@gmail.com>
import argparse
import ctypes
import fcntl
import os
import sys
import termios
@dcoles
dcoles / fsm.rs
Last active October 12, 2021 04:33
Dynamic Finite-State-Machine in Rust
View fsm.rs
use std::fmt::Debug;
pub trait State: Debug {
fn execute(&self) -> Transition;
}
pub trait TransitionTo<S: State + 'static>: State {
fn transition_to(&self, to: &'static S) -> Transition {
Transition { to }
}
@dcoles
dcoles / tokio-server.rs
Created October 12, 2021 04:29
Tokio-based TCP server
View tokio-server.rs
// Tokio-based server
use std::io;
use std::iter::FromIterator;
use std::time::Duration;
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use tokio::net::{TcpListener, TcpStream};
// Listening server.
@dcoles
dcoles / windows-nfs.rs
Created September 7, 2019 07:07
Example of NFC using Windows Proximity APIs in Rust
View windows-nfs.rs
// Example of NFC using Windows Proximity APIs
// Tested using Sony RC-S380 (make sure you enable NFP in the driver).
use winrt::*; // import various helper types
use winrt::windows::foundation;
use winrt::windows::networking::proximity;
use std::{thread, time};
const URL: &str = "https://dcoles.net";
@dcoles
dcoles / xinput.py
Created December 26, 2012 07:15 — forked from anonymous/xinput.py
View xinput.py
# Simple Wrapper around XInput API
#
# Author: David Coles <coles.david@gmail.com>
import ctypes
from ctypes.wintypes import BYTE, WORD, SHORT, DWORD
class XInputGamepad(ctypes.Structure):
_fields_ = [
@dcoles
dcoles / appimage.sh
Last active February 23, 2020 00:38
Run AppImage container
View appimage.sh
#!/bin/bash
# Run AppImage container
set -e
function _mount {
local target
target="$(mktemp --tmpdir --directory appimage.XXXXXXXXXX)"
/bin/mount --types squashfs -o offset="${2:-0}" --read-only -- "${1}" "${target}"
echo "${target}"
}