Skip to content

Instantly share code, notes, and snippets.

View nathan-osman's full-sized avatar

Nathan Osman nathan-osman

View GitHub Profile
@nathan-osman
nathan-osman / CMakeLists.txt
Created November 13, 2023 06:41
Hibernate your PC
project(wintray)
add_executable(hiber WIN32
hiber.cpp
)
set_target_properties(hiber PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
@nathan-osman
nathan-osman / CMakeLists.txt
Last active September 8, 2023 08:05
Create a very basic system tray icon
project(wintray)
add_executable(wintray WIN32
main.cpp
resource.rc
wintray.exe.manifest
)
set_target_properties(wintray PROPERTIES
CXX_STANDARD 11
@nathan-osman
nathan-osman / main.go
Created March 9, 2021 04:34
Custom dialector to force sqlite driver in GORM to use "integer" type for booleans instead of "numeric".
package main
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
// CustomDialector allows for customization of the type affinity for booleans.
type CustomDialector struct {
@nathan-osman
nathan-osman / puzzle.py
Last active April 5, 2020 04:06
Calculate the answer to this puzzle: https://i.stack.imgur.com/4MMS7.jpg
# Build a list of all possible combinations
a = []
for i in range(0, 10):
for j in range(0, 10):
for k in range(0, 10):
a.append('{}{}{}'.format(i, j, k))
# For each of the possible answers, check the five constraints
for v in a:
pass_1 = \
@nathan-osman
nathan-osman / smsformat.py
Created April 1, 2020 05:53
Format XML files produced by SMS Backup & Restore
from argparse import ArgumentParser
from datetime import datetime, timezone
from html import escape
import xml.etree.ElementTree as ET
class SmsFormat:
def __init__(self, f_in, f_out):
@nathan-osman
nathan-osman / CMakeLists.txt
Last active March 19, 2022 23:43
Enumerate network interfaces and addresses assigned to them
cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
project(netenum)
find_package(Qt5Network 5.4 REQUIRED)
add_executable(netenum main.cpp)
target_link_libraries(netenum Qt5::Network)
@nathan-osman
nathan-osman / CMakeListst.txt
Created November 1, 2017 20:14
Write to STDOUT using QFile
cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
project(stdout)
find_package(Qt5Core 5.4 REQUIRED)
add_executable(stdout main.cpp)
target_link_libraries(stdout Qt5::Core)
@nathan-osman
nathan-osman / ppastats.py
Created July 14, 2017 16:56
Updated script for retrieving PPA download counts - https://askubuntu.com/a/296200/5
#!/usr/bin/env python2
from argparse import ArgumentParser
from sys import exit
try:
from launchpadlib.launchpad import Launchpad
from tabulate import tabulate
except ImportError:
print "python-launchpadlib and python-tabulate are required"
@nathan-osman
nathan-osman / button.png
Last active February 4, 2019 07:35
Android emulator skin for the OnePlus 3
button.png
@nathan-osman
nathan-osman / temperature.ino
Last active April 29, 2017 05:50
Measure temperature and humidity and display the values on an OLED screen.
/**
* Measure temperature & humidity and display on OLED screen
* Copyright 2017 - Nathan Osman
*/
#include <DHT.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSans12pt7b.h>
#define DHTPIN 3