Skip to content

Instantly share code, notes, and snippets.

const PYTHON_PROGRAM: &str = r#"
import sys
print("something for stdout")
print("something for stderr", file=sys.stderr)
"#;
fn main() {
let logf = std::fs::File::create("logfile.txt").unwrap();
duct::cmd!("python", "-c", PYTHON_PROGRAM)
@oconnor663
oconnor663 / sha256_debugging.txt
Last active October 26, 2021 17:21
SHA-256 round-by-round debugging info for the empty input
message: b''
padded message:
b'\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
message schedule: [
2147483648, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
2147483648, 0, 2117632, 0, 570427392, 0, 84448578, 2147483648,
@oconnor663
oconnor663 / main.rs
Last active October 22, 2021 23:39
Rust in 59 seconds
use rand::prelude::*;
use std::io::prelude::*;
fn main() {
let random = thread_rng().gen_range(1..=100);
println!("Guess a number between 1 and 100");
for line in std::io::stdin().lock().lines() {
let parsed = line.expect("io error").parse::<i64>();
let guess = if let Ok(n) = parsed { n } else { continue };
if guess < random {
@oconnor663
oconnor663 / .Krastorio 2 Blueprints
Created October 18, 2021 05:31
Krastorio 2 blueprints
0eNrdnU1uI8kRRq/S4NIgB5X/mVrM1gtvDXhhDASKqpYKTZFykWxMe6AD+B4+mU/iojgtlqQKfl9G99geb2YgNvWYVRkvKvJHyV9mN+tD+9h3m/31zXb7aXb1y/mV3ezqr6Mfj//Wrbab08u77m6zXB9f2395bGdXs27fPszms83y4fjT5rBat8t+0bfL1X7bz57ms25z2/48uzJPP81n7Wbf7bv2hHr+4cv15vBw0/bDG14g6+1dt9t3q8Xqvt3tFwOp+9wuHvvt5+52eOd89rjdDZjt5tiMIzqkH8J89mV2tfDuh/D0NH8Hty/wbrNr+z3C2AEzn912fbs6vcNPQJ3U4r7922H4//SH5Fdtnc9+ffP1x249/Mbp1ny9Zy8fcOiXm+7wsPh4aNeLVbteD+TV9nDsneHGTrTNUxec31zw0M37fru+vmnvl5+7of+GN666fnXo9tfDv92+/PbHrh+a/C4YPnf9/rBcn+Ph9I7hhtzOTvjdfnlsdHP84eFx2S+PUXI1+9c//jl7Or1jc7rluyPWHP9z/OVRvHTDT2G45uHd289t3w8xcT1QV5+G5vy9Pd6P93cjnBt0uBne/HwZ7+9HNF97hm/KODCOP6c3P9tk373iTs3ftN3d/c328Nzpw/vmw79M9WXUxFl0/5E4S0ycjdry/x1nWZ/Dokc5rFC32tflMNO8UD/1iyGWhn5/7B7bxX67uOuHnr+d+JAmvnyIoT7ETH/IZXQzfRvMOZfft8v9ov15db/c3E3ejeac4Bqime41WWpifnX1UyDPgQoEBQpkGgiKHMhAUOLv/ojG3P3MNdHCJhYO5BDINhXX6muu1RquiR420XKgAEFc7JsIQVzsmwRBgU4aBiYNG3lYgrDEXSLME5YMeZgnbKmI1FITqa6hmmhhBnJcyFuYgVxF/re26lo5ByzMQI5zwMIM5Lj8b2GecFz+tzBPuIr8P6Ixd5+TwcIM5Lj8b2EG8hX531ZVGp6UAWYQz+V/CzOI52LfQc89F/sOeu4
All of the .eml files in this Gist are messages sent from my NYU email account.
"test email number 2, no attachment" made it to the recipients' inboxes, but the other two appear to have been dropped.
The working theory is that this is related to their attachments.
@oconnor663
oconnor663 / solution.py
Created October 15, 2021 23:38
example Python attachment
#! /usr/bin/env python3
from nacl.secret import SecretBox
from nacl.exceptions import CryptoError
import sys
import json
inputs = json.load(sys.stdin)
outputs = {}
@oconnor663
oconnor663 / squawker.cpp
Last active March 21, 2023 04:22
C++ constructor/destructor squawker
#include <iostream>
#include <string>
using namespace std;
class Squawker {
public:
Squawker(string name) : name(name) {
cout << "constructor " << name << "\n";
}
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