Skip to content

Instantly share code, notes, and snippets.

Daniel Oaks DanielOaks

Block or report user

Report or block DanielOaks

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View kiwibnc-config.ini
# level may be one of: trace, debug, info, notice, warn, error
bind = [
DanielOaks /
Last active Mar 8, 2019
proposed IRCv3 writing-a-spec document draft

How to write an IRCv3 Specification

This rough guide aims to take you through the process of writing an IRCv3 specification and getting it accepted! It doesn't lay out exactly what you must do for a document to get accepted, but should be a useful set of suggestions and considerations to keep in mind as you go through the process.

Why write a spec?

There are a few main reasons why you'd want to write up a spec for inclusion within the IRCv3 Working Group:

  • You'd like to change an aspect of the IRC protocol, and write down in very exact detail how that change works.
  • You have a cool, interesting, and/or useful feature in your software and think that other software should include it.

title: "ACC Multi-Factor Authentication" layout: spec copyrights:

name: "Daniel Oaks"
period: "2019"
email: ""
  • name: "Shivaram Lingamneni"
View slackircbot.go
package main
import (
View chathistory

<limit> is defined by the server/bouncer by default, but the client can optionally ask for a different limit.

CHATHISTORY #ircv3 BEFORE id=ytNBbt565yt4r3err3 [<limit>]
    - get up to <limit> number of messages before the given id/time
CHATHISTORY #ircv3 AFTER id=ytNBbt565yt4r3err3 [<limit>]
    - get up to <limit> number of messages after the given id/time
CHATHISTORY #ircv3 LATEST id=ytNBbt565yt4r3err3 [<limit>]
    - get the most recent (up to `<limit>`) messages that have been sent since the given id/time
    - if * is given instead of a specific ID, just the most recent messages with no limit
CHATHISTORY #ircv3 AROUND id=ytNBbt565yt4r3err3 [<limit>]
View grid.ino
// thanks to and 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 /
Created Nov 26, 2017
Making archives of Usenet backups
#!/usr/bin/env python3
Usage: <group> <source-dir> -h | --help --version
<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 ( 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

You can’t perform that action at this time.