Skip to content

Instantly share code, notes, and snippets.

View DanielOaks's full-sized avatar

Daniel Oaks DanielOaks

View GitHub Profile
@DanielOaks
DanielOaks / tel-00543964-english.md
Last active February 5, 2018 01:28
The co-construction of a socio-technical communication device: the case of Internet Relay Chat

The co-construction of a socio-technical communication device: the case of Internet Relay Chat

Guillaume Latzko-Toth

University of Quebec in Montreal, 2010. English translation of:

Guillaume Latzko-Toth. La co-construction d’un dispositif sociotechnique de communication: le cas de l’Internet Relay Chat. Sociologie. Université du Québec à Montréal, 2010. Français.

TL Note: If a sentence looks like this, it means the automatic translations are so shoddy that I can't understand what it's supposed to mean. This is a best-effort translation by someone who doesn't know French, and any help would be appreciated! (Thanks to Thomas for help so far!)

@DanielOaks
DanielOaks / gensite.py
Created November 26, 2017 14:44
Making archives of Usenet backups
#!/usr/bin/env python3
"""gensite.py
Usage:
gensite.py <group> <source-dir>
gensite.py -h | --help
gensite.py --version
Options:
<source-dir> Where the directory we'll be grabbing files from exists.

Keybase proof

I hereby claim:

  • I am danieloaks on github.
  • I am danieloaks (https://keybase.io/danieloaks) on keybase.
  • I have a public key ASD_kP1GDCQMi3b6n4gcuNLp2HSjp8Nenzvmq4tf5v6_Owo

To claim this, I am signing this object:

@DanielOaks
DanielOaks / add_barcodes.py
Last active September 11, 2017 02:15
Adds barcodes to Reckon item IIF lists
#!/usr/bin/env python2
# Reckon IIF item list barcode adder
# written by Daniel Oaks <daniel@danieloaks.net>
# licensed under the BSD 2-clause license
# Caution: DO NOT USE IIF. IT CAN BORK YOUR SYSTEM EASILY.
# This basically reads through each item in your item IIF, to see if it has a barcode
# if it doesn't have a barcode and the item name contains a digit, it makes the barcode the same

title: IRCv3.3 Client Capability Negotiation layout: spec work-in-progress: true updates:

  • cap-3.1
  • cap-3.2
  • cap-notify copyrights:
title layout work-in-progress copyrights
IRCv3 `isupport` Extension
spec
true
name email period
Daniel Oakley
daniel@danieloaks.net
2017
@DanielOaks
DanielOaks / Python-formatstrings.tmLanguage.diff
Created January 15, 2013 16:44
Sublime Text 2 Python format string syntax highlighting, Python.tmLanguage diff
--- Python.tmLanguage
+++ Python-formatstrings.tmLanguage
@@ -1171,7 +1171,7 @@
<key>constant_placeholder</key>
<dict>
<key>match</key>
- <string>(?i:%(\([a-z_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])</string>
+ <string>(?i:%(\([a-z_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])|(?&lt;=[({{)+]|[^{])({[0-9a-zA-Z]*(\.[0-9a-zA-Z]*)?(\[([^\])]*)\])?(![rsa])?(:)?})(?=(}})+|[^}])</string>
<key>name</key>
<string>constant.other.placeholder.python</string>
@DanielOaks
DanielOaks / tinybot.go
Last active June 18, 2017 14:24
Tiny IRC bot in Go, just to get started with the language
// written by Daniel Oaks <daniel@danieloaks.net>
// released under the CC0 Public Domain license
package main
import (
"fmt"
"os"
"strings"
title layout work-in-progress copyrights
Bikeshedding
spec
true
name email period
Daniel Oaks
daniel@danieloaks.net
April 1, 2017
personal note: so right now when someone reconnects everyone sees them join with a new nickname, then after ~30-180 seconds the old nickname dies and they change their nick to match the one that just disconnected. maybe on connection you can see a cap called 'resume-connection' or similar, send a command like RESUME before authing with SASL and instead of connecting with that other nickname you essentially 'take over' that old connection, are automatically sent channel JOINs to the channels you're in on registration. basically it NS GHOST's the old connection, in channels everyone sees like a 'RESUME' verb and chghost if they've requested the resume-connection cap, and else just see a normal quit+join (with a specified quit message). if we want to be able to display how long someone's been disconnected for we could do something like sending a timestamp with the RESUME command, then the RECONNECT will have that same timestamp and clients will be able to say "disconnected for X seconds" or similar