Skip to content

Instantly share code, notes, and snippets.

View amcgregor's full-sized avatar
🏢
Examining Options

Alice Zoë Bevan–McGregor amcgregor

🏢
Examining Options
View GitHub Profile

The Freenode resignation FAQ, or: "what the fuck is going on?"

IMPORTANT NOTE:

It's come to my attention that some people have been spamming issue trackers with a link to this gist. While it's a good idea to inform people of the situation in principle, please do not do this. By all means spread the word in the communities that you are a part of, after verifying that they are not aware yet, but unsolicited spam is not helpful. It will just frustrate people.

Update 3 (May 24, 2021)

A number of things have happened since the last update.

It appears that rasengan (Andrew Lee) of Private Internet Access believes that ownership of the company Freenode Ltd. gives him the right to unilaterally replace the current staff team.

We may have had our disagreements with staff, but freenode being run by a volunteer team, using servers provided by sponsors, is a key reason that we appreciate freenode.

As such, we do not believe that such a unilateral replacement by a corporate interest is appropriate.

If this attemped takeover by Andrew Lee continues, we will be advocating to move our communities elsewhere.

Context: Fuchs' leaked (not by him) draft resignation letter that caused Andrew Lee to come onto #freenode: https://fuchsnet.ch/privat/fn-resign-letter.txt

IRC friends, enemies and others,

Control of freenode has recently been seized by the proprietors of Freenode Limited, a holding company established by a previous head of freenode and a third party as part of a deal with a corporate sponsor. The terms of that deal were not disclosed, and remain unknown to me.

At the time, we, freenode's volunteer staff, were given informal guarantees that staff retained operational control of the network. The same guarantees were repeated after leadership was passed on to a new head of staff. I don't

@amcgregor
amcgregor / ot.py
Last active June 28, 2021 16:12
A declarative description of Operational Transform (OT) operations developed with the context of Quill's Delta format for representation of rich text content changes.
"""An implementation of the Delta text markup format using MongoDB as back-end storage.
For details, please see:
- https://quilljs.com/guides/designing-the-delta-format/
- https://quilljs.com/docs/delta/
"""
from collections import deque
from weakref import proxy
@juanbrujo
juanbrujo / PlayStationBIOSFilesNAEUJP.md
Last active May 6, 2024 21:03
Files for PlayStation BIOS Files NA-EU-JP
@nckroy
nckroy / eran-hammer-oauth2-rant-20120726.md
Created January 21, 2021 00:15
OAuth 2.0 and the Road to Hell

(Scraped from the Internet Wayback Machine. Original content by Eran Hammer / hueniverse.com July 26, 2012)

OAuth 2.0 and the Road to Hell

They say the road to hell is paved with good intentions. Well, that’s OAuth 2.0.

Last month I reached the painful conclusion that I can no longer be associated with the OAuth 2.0 standard. I resigned my role as lead author and editor, withdraw my name from the specification, and left the working group. Removing my name from a document I have painstakingly labored over for three years and over two dozen drafts was not easy. Deciding to move on from an effort I have led for over five years was agonizing.

There wasn’t a single problem or incident I can point to in order to explain such an extreme move. This is a case of death by a thousand cuts, and as the work was winding down, I’ve found myself reflecting more and more on what we actually accomplished. At the end, I reached the conclusion that OAuth 2.0 is a bad

@rendarz
rendarz / zip_longest_last.py
Last active December 5, 2020 02:37
Consume multiple iterators, filling each when exhausted with the last value they produced.
def zip_longest_last(*args):
"""Consume multiple iterators, filling each when exhausted with the last value they produced."""
line = []
# CREATE a list of iterators of iterable objects passed as args.
iters = [iter(it) for it in args]
active = len(iters)
lasts = [None]*active
# CREATE a generator that yields the last item forever.
def take_last(index):
while True:
@amcgregor
amcgregor / address-component.py
Last active February 16, 2021 01:45
An example "trivial" Contentment component. Note in particular that this is all "data model" — HTML is merely one possible serialization of the data. View is not defined here, there are no presentation details, but a method is provided to permit introspection of the view capabilities or requirements.
from marrow.mongo import Document, utcnow
from marrow.mongo.field import Date, Link
from ..asset import Depend
class Address(Document):
"""An embedded document representing a verified e-mail address.
Intended for use in an Array() embedding these sub-documents.
@amcgregor
amcgregor / account.py
Last active February 12, 2023 06:15
A collected sample model for user accounts, sessions, and supporting record types. (JSON sample needs updating to conform to the updated/public models.)
# Note: No __collection__ defined on most of these.
# They're for "embedding" (nesting) within a real collection-level document.
from argon2 import PasswordHasher
from argon2.exceptions import VerifyMismatchError
from marrow.mongo import Document, Field, Index
from marrow.mongo.trait import Queryabe, Identified
from marrow.mongo.field import Reference, Set, String, ObjectId, Date, Embed,
@amcgregor
amcgregor / 1-modern-emoji
Last active December 7, 2023 08:48
My collection of System Preferences → Keyboard → Text automatic replacements. Because using the character picker is a pain in the rump. Yes, the :code: one is multi-line.
-_- 😑
;^P 🤪
;P 😜
:'( 😢
:( 🙁
:) 🙂
:/ 😕
:^P 🤪
:| 😐
:3 😽