Skip to content

Instantly share code, notes, and snippets.

View DanielOaks's full-sized avatar

Daniel Oaks DanielOaks

View GitHub Profile
// thanks to https://www.glennklockwood.com/electronics/max7219.html and http://www.gammon.com.au/forum/?id=11516 for help
// and to the data sheet
#include <SPI.h>
#define selectPin D2
#define REG_NOOP 0x00
#define REG_DIGIT_0 0x01
#define REG_DIGIT_1 0x02
#define REG_DIGIT_2 0x03

How to stay motivated and constantly learn new things

words words words

How do I stay motivated when life sucks?

Everyone's life sucks sometimes. It's a long, hard slog of good times and bad.

When those bad times come, it's really easy to tell yourself that everyone else is going well. You see everything flowing by on Twitter, Facebook or maybe even just day-to-day in life. Nothing is crumbling, nothing's falling down, but your life is.

@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:

IRC Client Registration

 ->  means lines that the client sends to the server.
<-   means lines that the server sends to the client.

Normal Registration


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 / 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!)

Parsing And Sending STATUSMSG Messages

STATUSMSG is a type of IRC private message / notice where the target of the private message is the members of a channel with at least a certain level of channel responsibility.

In other words, instead of the target of the message just being #ircv3, it may be @#ircv3 and only be send to the ops of the channel, rather than all members of the channel.

The STATUSMSG ISUPPORT Token

The STATUSMSG RPL_ISUPPORT token is used to note that the server supports sending private messages and notices with these special 'statusmsg targets' (the channel name prefixed by a given privilege level character such as +, %, @ or similar).

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