Skip to content

Instantly share code, notes, and snippets.

View egnor's full-sized avatar
🍳
slightly broken

Daniel Egnor egnor

🍳
slightly broken
View GitHub Profile
@egnor
egnor / TERPECA_algorithm.md
Last active September 20, 2024 19:02
TERPECA escape room awards ranking algorithm

TERPECA ranking algorithm detail

This document discusses the details of combining voter rankings into a final ranked list. (The reader is assumed to be familiar with the TERPECA nomination and voting process.)

These notes are current for the 2023 awards year.

Goals

There's no single perfect way to combine diverse preferences into a single ranking (ask any political science professor!). The algorithmic goal is to do a reasonable job of capturing the overall consensus, where there is one, with a bias to lower ranking in case of uncertainty or disagreement. If most people rank X above Y, then X should generally come above Y in the overall ranking.

"Keener's method": Eigenvector of the preference matrix

There are lots of systems for creating an overall ranking from lots of individual comparisons. Notable examples include the Elo rating system used for chess, [Instant Runoff Voting](https://en.wikipedia.org/wiki/Ins

egnor's rough notes on RFID and NFC

... because this isn't explained super well elsewhere for some reason.

Popular NFC/RFID standards (focusing on air protocols)

  • ISO 18000-{1,2,3,4,5,6,7} - RFID umbrella standards for various frequency bands
  • ISO 14443 A/B (aka NFC-A/B, NXP MIFARE, NTAG) - 13.56MHz ("HF") - the most classic "RFID"
  • ISO 15693 (aka NFC-V, NXP ICODE, ISO 18000-3 Mode 1) - HF - prox cards, longer range than ISO 14443
  • ISO 18000-3 Mode 1 - HF - based on ISO 15693 plus app level protocols
  • ISO 18000-3 Mode 2 - HF - separate air protocol

DW3000 "missing manual" notes

Overall

The DW3000 is an exciting part, available as a convenient Arduino-shield eval board with good distribution. HOWEVER, this is NOT a "maker friendly" part with SparkFun or Adafruit type tutorials and examples! It is a sophisticated radio that can be the heart of a positioning system, but you have to do quite a lot of heavy lifting to get there.

For basic use, the older-but-still-good DW1000 may be a better choice; interface libraries are available for Arduino and Raspberry Pi. Or look into packaged location-system vendors, like Estimote, Pozyx, Ubitrack and many others