Skip to content

Instantly share code, notes, and snippets.

View SoniEx2's full-sized avatar

Soni L. SoniEx2

View GitHub Profile
@SoniEx2
SoniEx2 / reply-block.md
Last active January 1, 2025 00:01
IRC extension for blockable replies

IRC extension for blockable replies

IRCv3 replies are currently not blockable. You can freely reply to users who have /ignore'd you. We can do better than this.

This idea was primarily inspired by our experiences using the official Python support forums and not being able to prevent certain users from replying to our posts. While forums and IRC are different kinds of spaces, we feel like being able to block replies applies to both.

Feel free to leave comments/feedback under this gist!

The reply-key client-tag

Unicode Instruction Set Architecture (UISA)

Unicode (UTF-8) is the leading character encoding being used in computers today. However, a few factors hinder its adoption:

  • It's big. It's actually huge! You need to include (increasingly bigger) character tables in your programs if you want to deal with Unicode.
  • You can't really do anything without those character tables. Unicode is a complete mess without them!

So we shall define an ISA that replaces Unicode. Meet UISA!

Pockets

by Spice Girls


I'll get what I want,
what I really really want
Don't tell me what I want,

The Unix Time Manifesto

WIP

I am an user of Unix Time IRL. My hexchat outputs timestamps using the %s time format string. This means every message looks like [1526856826] * End of /MOTD command. or similar.

I just like it that way.

ROT13-UTF-8 is a semi-backwards-compatible encoding for text data.

ROT13-UTF-8 replaces the characters represented by bytes 0x41-0x4D, 0x4E-0x5A and 0x61-0x6D, 0x6E-0x7A in UTF-8 with characters U+004E-U+005A, U+0041-U+004D and U+006E- U+007A, U+0061-U+006D, respectively.

UTF-16LLE

There are 4 forms of UTF-16:

  1. UTF-16BE
  2. UTF-16LE
  3. UTF-16LBE
  4. UTF-16LLE
-- This Lua stack may be faster than the vararg stack, since it does less copies. Haven't benchmarked it yet.
-- However, it can't hold as many elements (13 000 ish elements on my machine, vs uh, 100 000 or more with varargs?).
local function callstack()
local function f(v)
local op, nv = coroutine.yield()
while true do
if op == "push" then
op, nv = coroutine.yield(f(nv))
elseif op == "pop" then
@SoniEx2
SoniEx2 / apng_sucks.md
Last active August 19, 2016 17:38
APNG Sucks!

APNG Sucks!

Hi! Let's talk about APNG! Note that I'm biased because I made my own animated PNG extension and it also sucks.

Problems with APNG

So, APNG has the following issues:

@SoniEx2
SoniEx2 / epeng.md
Last active August 27, 2016 14:54
EPNG spec
@SoniEx2
SoniEx2 / steamchat.md
Created April 26, 2016 23:14
Steam Chat

Did you know?

Steam chat, the thing you use while playing games, mangles your messages for you... It's especially interesting when sending shell commands.

  • ~/.ssh/config becomes http://ssh/config
  • $HOME/.ssh/config becomes http://HOME/.ssh/config
  • ${HOME}/.ssh/config becomes http://HOME}/.ssh/config