Skip to content

Instantly share code, notes, and snippets.

View softprops's full-sized avatar
®️
Rustling

Doug Tangren softprops

®️
Rustling
View GitHub Profile
use rand; // 0.8.3
use rand::Rng;
use std::iter::successors;
fn non_repeating<T: std::cmp::PartialEq + Clone>(src: &[T]) -> impl Iterator<Item = &T> + '_ {
let mut rng = rand::thread_rng();
successors(Some(&src[rng.gen_range(0..src.len())]), move |n| {
let mut next = &src[rng.gen_range(0..src.len())];
while *next == **n {
next = &src[rng.gen_range(0..src.len())];
function getHumanReadable() {
echo $(echo $1 | awk '{ sum=$1 ; hum[1024**3]="Gb";hum[1024**2]="Mb";hum[1024]="Kb"; for (x=1024**3; x>=1024; x/=1024){ if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x];break } }}')
}
This file has been truncated, but you can view the full file.
docker diff 7a3036a55355
C /root
A /root/.cargo
A /root/.cargo/bin
A /root/.cargo/bin/rustfmt
A /root/.cargo/bin/rustup
A /root/.cargo/bin/cargo-fmt
A /root/.cargo/bin/clippy-driver
A /root/.cargo/bin/rustc
A /root/.cargo/bin/rustdoc
struct Position { line: usize, col: usize }
fn report<P>(path: P, content: &str, pos: &Position, error: &str)
where
P: AsRef<Path>,
{
let Position { line, col } = pos;
println!(
"{}",
format!("--> {}:{}:{}", path.as_ref().display(), line, col).dimmed()
@softprops
softprops / ecs-exec.sh
Last active November 25, 2022 02:30
when you want `docker exec` but your containers live on ecs container instances. assumes an vpn bastion host
#!/usr/bin/env bash
# runs an arbitrary command on a remote ecs target
#
# usage: `ecs-exec bash`
#
# ssh credentials
#
# Add the following to your ~/.ssh/config file
#
# Assumes ec2 bastion key for authenicating
#!/usr/bin/env bash
# discover what values you can use for a given service in the last 3 months
#
# aws ce get-dimension-values \
# --dimension SERVICE \
# --time-period Start=$(date -v-3m +%Y-%m-01),End=$(date +%Y-%m-01) \
# --query 'DimensionValues[*].Value'
# last 3 months of ecr usage/spend
@softprops
softprops / rust-binsize.log
Created January 19, 2019 20:29
impact of rust 1.32.0 removing jemalloc infavor of default system allocator (296K less bytes)
~/c/r/binsize ❯❯❯ rustc --version
rustc 1.31.1 (b6c32da9b 2018-12-18)
~/c/r/binsize ❯❯❯ cat src/main.rs
fn main() {
println!("Hello, world!");
}
~/c/r/binsize ❯❯❯ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.06s
~/c/r/binsize ❯❯❯ du target/debug/binsize
576K target/debug/binsize
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetParametersByPath"
],
"Resource": "arn:aws:ssm:<region>:<account>:parameter/grand-rustacean-central/*"
}
extern crate envy_store;
#[macro_use]
extern crate serde_derive;
extern crate tokio;
use tokio::runtime::Runtime;
// parameter names map to field names
#[derive(Deserialize, Debug)]
struct Config {
# store a secure string
$ aws ssm put-parameter \
--name /demo/foo
--value bar
--type SecureString
# store a string list
$ aws ssm put-parameter \
--name /demo/bar \
--value baz,boom,zoom \
--type StringList