Skip to content

Instantly share code, notes, and snippets.

View matthewjberger's full-sized avatar
🦀
Programming something in Rust, probably

Matthew J. Berger matthewjberger

🦀
Programming something in Rust, probably
View GitHub Profile
@matthewjberger
matthewjberger / instructions.md
Last active April 29, 2024 07:32
Install a nerd font on ubuntu

1.) Download a Nerd Font

2.) Unzip and copy to ~/.fonts

3.) Run the command fc-cache -fv to manually rebuild the font cache

@matthewjberger
matthewjberger / genvec.rs
Created April 28, 2024 18:15
Sparse vectors with generational indices in rust
use self::error::GenerationError;
use std::{
collections::HashMap,
ops::{Deref, DerefMut},
};
pub type Result<T, E = Box<dyn std::error::Error>> = std::result::Result<T, E>;
pub mod error {
use super::*;
@matthewjberger
matthewjberger / Cargo.toml
Last active April 23, 2024 20:32
Rust window - winit 0.29.11, wgpu 0.19.1, egui 0.27.2
[package]
name = "app"
version = "0.1.0"
edition = "2021"
[dependencies]
egui = "0.27.2"
egui-wgpu = { version = "0.27.2", features = ["winit"] }
egui-winit = "0.27.2"
pollster = "0.3.0"
@matthewjberger
matthewjberger / sm.rs
Created April 7, 2024 06:49
rust state machines
//#![no_std]
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Clone, Copy)]
pub enum State {
State1,
State2,
State3,
}
@matthewjberger
matthewjberger / broker.rs
Created March 31, 2024 03:42
A thread-safe pub/sub message broker in Rust
use std::{
collections::{HashMap, VecDeque},
sync::{Arc, RwLock, Weak},
};
use uuid::Uuid;
#[derive(Default)]
pub struct Broker<T: Clone> {
subscribers: Arc<RwLock<HashMap<String, Vec<Weak<RwLock<Client<T>>>>>>>,
}
@matthewjberger
matthewjberger / SDL_MessageBox.cpp
Created April 4, 2016 00:38
SDL_MessageBox Example
const SDL_MessageBoxButtonData buttons[] = {
{ /* .flags, .buttonid, .text */ 0, 0, "no" },
{ SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT, 1, "ok" },
};
const SDL_MessageBoxColorScheme colorScheme = {
{ /* .colors (.r, .g, .b) */
/* [SDL_MESSAGEBOX_COLOR_BACKGROUND] */
{ 255, 0, 0 },
/* [SDL_MESSAGEBOX_COLOR_TEXT] */
{ 0, 255, 0 },
@matthewjberger
matthewjberger / alternate.rs
Last active March 18, 2024 03:04
Snappy and bincode data streaming to/from file on disk
// [dependencies]
// bincode = "1.3.3"
// serde = { version = "1.0.197", features = ["derive"] }
// snap = "1.1.1"
use bincode::{deserialize, serialize};
use serde::{de::DeserializeOwned, Serialize};
use snap::{read::FrameDecoder, write::FrameEncoder};
use std::{
fs::{File, OpenOptions},
@matthewjberger
matthewjberger / cargo.toml
Created March 14, 2024 04:30
Snappy compression
[package]
name = "snapper"
version = "0.1.0"
edition = "2021"
[dependencies]
fake = "2.5"
snap = "1.0"
From: http://redteams.net/bookshelf/
Techie
Unauthorised Access: Physical Penetration Testing For IT Security Teams by Wil Allsopp.
Social Engineering: The Art of Human Hacking by Christopher Hadnagy
Practical Lock Picking: A Physical Penetration Tester's Training Guide by Deviant Ollam
The Art of Deception: Controlling the Human Element of Security by Kevin Mitnick
Hacking: The Art of Exploitation by Jon Erickson and Hacking Exposed by Stuart McClure and others.
Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning by Fyodor
The Shellcoder's Handbook: Discovering and Exploiting Security Holes by several authors
@matthewjberger
matthewjberger / notes.md
Last active March 11, 2024 10:21
How to make an electron app using Create-React-App and Electron with Electron-Builder.