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 / README.md
Last active April 26, 2016 00:38
List of Ubuntu archive mirrors

How to Use

The country.txt file contains a list of all country mirrors as of 2016-04-25. The path for all country mirrors is /ubuntu/.

NitroShare for Nautilus

The latest commits to NitroShare have added a local HTTP API that applications can take advantage of. To help demonstrate how this works, I have written a Nautilus extension that adds an item to the right-click menu for sending items with NitroShare

To try out the extension, please follow these instructions:

  • install the gir1.2-nautilus-3.0, gir1.2-gtk-3.0, and python-requests packages
  • download the nitroshare.py file included in this gist and save it to ~/.local/share/nautilus-python/extensions
  • restart nautilus (Alt+F2 and killall nautilus)

Using TLS in NitroShare

Current builds of NitroShare now include support for TLS. This feature is still in active development but enough has been completed that it is ready for testing.

To use this feature, you must first generate a key and root CA certificate:

openssl genrsa -out root.key 2048
openssl req -x509 -new -nodes -key root.key -sha256 -days 3650 -out root.crt

You will be asked a few questions about the CA and it is important you do not leave any fields blank since this causes problems verifying the certificates later. Next, you will need to generate a key, CRL, and signed certificate for each device:

@nathan-osman
nathan-osman / win32.go
Last active May 14, 2024 14:18
Simple Windows GUI application written in Go
package main
import (
"log"
"syscall"
"unsafe"
)
var (
kernel32 = syscall.NewLazyDLL("kernel32.dll")
@nathan-osman
nathan-osman / domains.go
Last active February 2, 2017 09:14
Test a list of domains
package main
import (
"bufio"
"log"
"net/http"
"net/url"
"os"
"sync"
"time"
@nathan-osman
nathan-osman / measurer.ino
Created April 19, 2017 23:14
Measure distance and display on OLED screen
/**
* Measure distance and display on OLED screen
* Copyright 2017 - Nathan Osman
*/
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSans12pt7b.h>
@nathan-osman
nathan-osman / letsencrypt.go
Created April 20, 2017 02:22
Obtain a Let's Encrypt certificate from the ACME staging server using golang.org/x/crypto/acme
package main
import (
"context"
"crypto"
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"crypto/x509/pkix"
"encoding/pem"
@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
@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 / 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"