Skip to content

Instantly share code, notes, and snippets.

View jrconlin's full-sized avatar
💭
Still carbon based

JR Conlin jrconlin

💭
Still carbon based
View GitHub Profile
@jrconlin
jrconlin / gist:2edb3ff62cd330130e275daf48aa0f60
Created January 28, 2022 21:40
ublock NFT fix for twitter
!! Original courtesy of @taviso
!! Add this filter to your uBlock settings. This will handle both stream and focused avatars.
!!
||secure.livechatinc.com$subdocument
!fNFT
twitter.com##div[style*="hex-hw-shapeclip-clipconfig"]:style(clip-path: path('M44.584 28.174c-.491-1.02-1.297-2.074-2.614-2.749-.889-.555-1.714-.84-2.254-.986.574-2.1-.24-3.773-1.384-5.021-1.699-1.83-3.476-2.096-3.476-2.096l-.004 0c.585-1.136.806-2.453.51-3.746-.375-1.598-1.234-2.603-2.366-3.274-1.159-.686-2.591-1.024-4.061-1.286-.705-.127-3.679-.544-4.912-2.25-.994-1.384-1.024-3.874-1.294-4.62-.289-.769-1.267-.431-2.336.285-1.249.833-3.836 3.506-4.834 6.184-.761 2.051-.78 3.829-.48 5.209-1.234.206-2.16.622-2.336.705-.06.019-.12.037-.184.064-1.129.465-3.536 2.632-3.754 5.944-.075 1.177.079 2.366.45 3.473-1.477.412-2.332.953-2.347.964-.75.281-1.942 1.106-2.306 1.549-.739.892-1.252 1.954-1.556 3.067C2.381 32.01 2.625 34.766 3.803 37.001c.652 1.241 1.545 2.561 2.528 3.57 3.206 3.296 8.741 4.541 13.11 5.261 5.321.878 10.894.57 15.874-1.489 7.47
@jrconlin
jrconlin / enable_wifi.bash
Created March 6, 2021 22:03
Re-enable wifi on Raspberry Pi Buster after rfkill nukes it
#! /bin/bash
# RaspberryOS Buster introduced rfkill which will shut off your wifi. It reports
# that you need to set the country for it, which is fair, but apparently it has
# issues noticing that your country is, indeed, set, so the wifi stays off.
#
# The following script checks to see if the `wlan` is blocked (well, if it's
# not unblocked), and unblocks it. Since the rfkill check happens after reboot,
# we need to delay a bit before we start checking.
# (e.g. in crontab:
# ```
use jsonwebtoken::{
decode, encode, Algorithm, DecodingKey, EncodingKey, Header, TokenData, Validation,
};
use serde::{Deserialize, Serialize};
use std::convert::From;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum TokenError {
#[error("Token is Invalid")]
@jrconlin
jrconlin / as_csv.py
Created May 12, 2020 21:54
Google Music Playlist JSON reader
# Convert the output of a Google Music Playlist JSON dump to a CSV.
#
# To get the playlist JSON output:
# * Open your browser's dev tools
# * Go to the Google Music Playlist you want to dump.
# * Search your "Network" calls for `https://play.google.com/music/services/loaduserplaylist`
# * Save the JSON returned from that call as `your_playlist.json`
# (Note, you can sometimes just re-open that URL in a new tab and dump the page).
#
# Run this script: `python as_csv.py your_playlist.json > your_playlist.csv`
@jrconlin
jrconlin / spanner_storage_schema.sql
Created April 22, 2020 00:31
Spanner Storage Schema
CREATE TABLE collections (
collection_id INT64 NOT NULL,
name STRING(32) NOT NULL,
) PRIMARY KEY(collection_id);
CREATE UNIQUE INDEX CollectionName ON collections(name);
CREATE TABLE user_collections (
fxa_uid STRING(MAX) NOT NULL,
fxa_kid STRING(MAX) NOT NULL,
@jrconlin
jrconlin / sync_storage_schema.sql
Created March 25, 2020 14:50
Sync Storage Schema for MySQL
CREATE TABLE `batch_uploads` (
`batch` bigint(20) NOT NULL,
`userid` int(11) NOT NULL,
`collection` int(11) NOT NULL,
PRIMARY KEY (`batch`,`userid`)
);
CREATE TABLE `batch_upload_items` (
`batch` bigint(20) NOT NULL,
`userid` int(11) NOT NULL,

Keybase proof

I hereby claim:

  • I am jrconlin on github.
  • I am jrconlin (https://keybase.io/jrconlin) on keybase.
  • I have a public key whose fingerprint is F913 7EF6 9BAB 15AE 34B9 9999 91B7 F708 D9FC 4D84

To claim this, I am signing this object:

@jrconlin
jrconlin / gist:240767b63cf5a9f92b340e69db2ca48d
Created November 10, 2016 21:50
ECE version differences
# Major Differences Between the Various HTTP ECE Versions
## aes128gcm
* Most current version as of 2016/11
* `salt`, `rs`, and `key_id` now all contained as preamble for the encrypted content.
* Sender's public DH key value is sent as the `dh` parameter of the `Crypto-Key` header
* The `Encryption` header is no longer required.
* The context string `WebPush: info\x00` + Receiver's raw public key + Sender's raw public key
* `keyinfo` string set to `Content-Encoding: aes128gcm\x00`
* `nonceinfo` string set to `Content-Encoding: nonce\x00`
@jrconlin
jrconlin / noiseDork.py
Last active August 29, 2015 14:15
Random, you're not so...
#!/bin/python
#Math is weird.
# I was having a discussion with a coworker who wanted to do site visit metrics, but not expose user information. His idea
# was to have a very large user sample, but apply a large amount of noise to the individual signals. When averaged out, the
# noise cancels leaving a reasonably approximate metric.
# I figured that the if the visit count is low, it would be literally lost in the noise.
# Being suspiciously minded, I decided to test this theory.
#
# Math is weird.