Skip to content

Instantly share code, notes, and snippets.

@rayvoelker
rayvoelker / monitor-circmsg.sh
Created March 30, 2024 02:22
monitor circmsg circulation override file for changes -- email just the changes
#!/bin/bash
# Define file paths
CURRENT_FILE="/iiidb/errlog/circmsg"
PREVIOUS_FILE="/tmp/errlog-circmsg-prev"
# Check if the previous file snapshot exists
if [ ! -f "$PREVIOUS_FILE" ]; then
# If not, create it and exit, as we can't compare yet
cp "$CURRENT_FILE" "$PREVIOUS_FILE"
@rayvoelker
rayvoelker / SemanticSearchSwiftly-Load.ipynb
Created March 26, 2024 17:55
SemanticSearchSwiftly-Load.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@rayvoelker
rayvoelker / SemanticSearchSwiftly-Transform.ipynb
Created March 26, 2024 17:53
SemanticSearchSwiftly-Transform.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@rayvoelker
rayvoelker / SemanticSearchSwiftly-Extract.ipynb
Created March 26, 2024 17:52
SemanticSearchSwiftly-Extract.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@rayvoelker
rayvoelker / SemanticSearchSwiftly.ipynb
Created March 26, 2024 17:43
SemanticSearchSwiftly
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@rayvoelker
rayvoelker / iug2024_sierra_ils_utils.ipynb
Created March 26, 2024 17:32
sierra-ils-utils -- IUG 2024 Presentation
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@rayvoelker
rayvoelker / epic_rap_battles_of_library_history.md
Created October 25, 2023 21:31
EPIC RAP BATTLES OF LIBRARY HISTORY! MELVIL DEWEY VERSUS CHARLES AMMI CUTTER!

EPIC RAP BATTLES OF LIBRARY HISTORY!

MELVIL DEWEY VERSUS CHARLES AMMI CUTTER!


Dewey:

I'm the king of the stacks, the master of facts,

@rayvoelker
rayvoelker / README.md
Last active October 2, 2023 16:09
StochasticPseudonymizer.ipynb

StochasticPseudonymizer: Cryptographic Token Generation for Replacing Patron Identifiers

StochasticPseudonymizer is a Python class designed to pseudonymize the personally identifiable information (PII) of patrons using the cryptographic hash function PBKDF2HMAC, preserving patron privacy while creating a deliberate uncertainty, introduced by hash collision--keeping it from being possible to prove that any one patron had some specific behavior in the past.

Stochastic refers to the property of being well-described by a random probability distribution https://en.wikipedia.org/wiki/Stochastic

Pseudonymization refers to the technique where personally identifiable information fields within a data record are replaced by one or more artificial identifiers, or pseudonyms. https://en.wikipedia.org/wiki/Pseudonymization

Background

@rayvoelker
rayvoelker / README.md
Last active September 16, 2023 15:52
Hybrid Patron Pseudonymizer

HybridPatronPseudonymizer

The HybridPatronPseudonymizer is a Python class that implements a hybrid encryption system that results with a deterministic ciphertext (the encrypted content) output for a given plaintext input. Hybrid encryption combines the benefits of both symmetric and asymmetric encryption.

Introduction

Protecting the privacy of patrons is of utmost importance for institutions that handle sensitive data. In some cases, the responsibility of safeguarding this privacy is intesified by by law, regulations or even internal institutional policy. In this context, the provided Python module serves as a powerful tool that aims to strike a balance between ensuring patron data confidentiality and preserving its analytical utility.

Pseudonymization is a data protection technique where personally identifiable information (PII) fields within a data record are replaced with artificial identifiers or pseudonyms. This method prioritizes data subject privacy while also facilitating data anal