Skip to content

Instantly share code, notes, and snippets.

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

Matthew J. Berger matthewjberger

🦀
Writing something in Rust, probably
  • Hyphen
View GitHub Profile
@matthewjberger
matthewjberger / instructions.md
Last active April 20, 2025 02:17
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

CPU value Memory value (MiB)
256 (.25 vCPU) 512 (0.5GB), 1024 (1GB), 2048 (2GB)
512 (.5 vCPU) 1024 (1GB), 2048 (2GB), 3072 (3GB), 4096 (4GB)
1024 (1 vCPU) 2048 (2GB), 3072 (3GB), 4096 (4GB), 5120 (5GB), 6144 (6GB), 7168 (7GB), 8192 (8GB)
2048 (2 vCPU) Between 4096 (4GB) and 16384 (16GB) in increments of 1024 (1GB)
4096 (4 vCPU) Between 8192 (8GB) and 30720 (30GB) in increments of 1024 (1GB)
@matthewjberger
matthewjberger / gist:006749edc7bec1f7948d44d496e0959a
Last active December 27, 2024 15:49
needed to build rust openssl on windows
vcpkg integrate install
vcpkg.exe install openssl:x64-windows-static-md
@matthewjberger
matthewjberger / downcast.rs
Created December 18, 2024 00:39
Rust downcasting
use std::any::Any;
fn main() {
// Create boxes containing different types, boxed as Any
let integer_box: Box<dyn Any> = Box::new(42);
let string_box: Box<dyn Any> = Box::new(String::from("Hello"));
let float_box: Box<dyn Any> = Box::new(3.14f64);
// Demonstrate successful downcasting
println!("Downcasting examples:");
@matthewjberger
matthewjberger / notes.md
Last active November 30, 2024 10:12
How to make an electron app using Create-React-App and Electron with Electron-Builder.
@matthewjberger
matthewjberger / ecs.rs
Last active November 12, 2024 06:07
an archetypal statically dispatched macro-based ecs - formal library here: https://github.com/matthewjberger/freecs
#[macro_export]
macro_rules! world {
(
$world:ident {
components {
$($name:ident: $type:ty => $mask:ident),* $(,)?
}$(,)?
$resources:ident {
$($resource_name:ident: $resource_type:ty),* $(,)?
}
@matthewjberger
matthewjberger / broker.rs
Last active November 11, 2024 22:02
mini rust message broker
use std::collections::{HashMap, VecDeque};
#[derive(Debug, Clone, PartialEq)]
pub enum Message {
Text(String),
Number(i64),
Binary(Vec<u8>),
Batch(Vec<Message>),
}
@matthewjberger
matthewjberger / fast.rs
Last active November 6, 2024 19:48
Vec<Option<T>> comparison to precomputing entity archetypes
impl_world! {
positions: Position => POSITION = 0,
velocities: Velocity => VELOCITY = 1,
gravities: Gravity => GRAVITY = 2,
healths: Health => HEALTH = 3,
damages: Damage => DAMAGE = 4,
}
pub fn main() {
let mut world = World::default();
@matthewjberger
matthewjberger / ringbuffer.rs
Created October 1, 2024 16:45
A no-std fixed capacity ringbuffer in rust
#![no_std]
pub struct CircularBuffer<T, const N: usize> {
buffer: [T; N],
read_idx: usize,
write_idx: usize,
is_full: bool,
}
impl<T: Copy + Default, const N: usize> CircularBuffer<T, N> {
@matthewjberger
matthewjberger / main.rs
Created September 29, 2024 15:11
more ecs ideas in rust
use std::any::Any;
use std::collections::HashMap;
use std::marker::PhantomData;
// Generic handle type
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Handle<T> {
id: usize,
_phantom: PhantomData<T>,
}