James Munns (Twitter Archive)'s Avatar

James Munns (Twitter Archive)

@bitshiftmask.bsky.social

A twitter archive of @bitshiftmask Owned by @jamesmunns.com on bluesky

100 Followers  |  2 Following  |  4,071 Posts  |  Joined: 22.10.2024  |  1.9521

Latest posts by bitshiftmask.bsky.social on Bluesky

Post image

In case folks are still moving over, reminder I'm over there too, still doing all the electronics, embedded, rust, and protocol stuff I've always been doing :)

19.10.2024 11:23 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Self-Directed Research Technology Podcast Β· 14 Episodes Β· Updated Weekly

Podcast on Apple Podcasts:

https://podcasts.apple.com/us/podcast/self-directed-research-podcast/id1761221065

14.08.2024 10:56 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Self-Directed Research Podcast Β· OneVariable UG Β· This is the Self Directed Research Podcast, where our hosts James and Amos share a little bit about the topics they’ve been obsessing about lately. Visit sdr-podcast.com/ for more information about the podcast, check out all episodes and learn about who we are and how to support us! Questions, comments, interested in sponsoring? Send an email to contact@sdr-podcast.com

Podcast on spotify:

https://open.spotify.com/show/2TQVMKwOJ87nkEX09vFHYH?si=d4f5507060924a2b

14.08.2024 10:55 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

πŸ“£ Second episode of the "Self-Directed Research Podcast" with me and @fasterthanlime is now up! This episode is "BBQueue - Going Just Far Enough with Generics"!

Links to Apple Podcasts and Spotify below :D

https://sdr-podcast.com/episodes/bbqueue/

14.08.2024 10:54 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Thanks to @tweedegolfbv for sponsoring the first episode!

07.08.2024 04:28 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Self-Directed Research Technology Podcast Β· 14 Episodes Β· Updated Weekly

Or on Apple Podcasts: https://podcasts.apple.com/us/podcast/self-directed-research-podcast/id1761221065

07.08.2024 04:28 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Self-Directed Research Podcast Β· OneVariable UG Β· This is the Self Directed Research Podcast, where our hosts James and Amos share a little bit about the topics they’ve been obsessing about lately. Visit sdr-podcast.com/ for more information about the podcast, check out all episodes and learn about who we are and how to support us! Questions, comments, interested in sponsoring? Send an email to contact@sdr-podcast.com

You can also check it out and subscribe on Spotify:

https://open.spotify.com/show/2TQVMKwOJ87nkEX09vFHYH

07.08.2024 04:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
I Was Wrong About Rust Build Times Maybe more crates is too many An update to previous research about speeding build times, informed by unexpected increased cost of maintenance View the presentation

times!

https://sdr-podcast.com/episodes/wrong-build-times/

07.08.2024 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

The first episode of the "Self-Directed Research Podcast" with me and @fasterthanlime is now up! The podcast is a weekly deep dive, and this first episode is Amos exploring what they got right, and what they got wrong, when it comes to Rust build...

07.08.2024 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Hey, just a rememinder: I'm pretty active over on the other site, and as of today, you no longer need an invite to sign up!

It would be cool to see more Rust and Embedded folks over there.

06.02.2024 15:12 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I have 4 more bsky invites for mutuals, reply or shoot me a DM if you need one.

10.08.2023 17:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
About + Contact

Reminder, you can find me in a bunch of other places here: https://jamesmunns.com/contact/

Cohost and Bluesky are my favs right now, and Matrix is always a good choice.

If you find anywhere that has a bunch of embedded and/or rust folks there, lemme know :D

01.07.2023 20:17 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Update, added bluesky to my list of websites. Find me there if you'd like. (I don't have invites)

Still most active on Cohost and Matrix. Full list of places to find me in the linked tweet.

24.04.2023 20:21 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
About + Contact

I updated my website with all of the other services you can find me on. Do me a favor: if we aren't mutuals somewhere else, follow me on one of these, or shoot me an email and just say hi!

Never hesitate to reach out.

https://jamesmunns.com/contact/

20.11.2022 13:39 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 1

Nope, that’s it. That’s the line. I’m off twitter now. Follow me over at http://cohost.org/jamesmunns, or shoot me an email. I’m not hard to find.

20.11.2022 01:45 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Extremely avionics brain What if I started using a part numbering scheme for all the silly things I make, so that I can track them using tags and stuff. A company I worked for used the scheme: xxx-yyyyy-zz Where xxx was the "kind" of thing, e.g. an assembly, or a certain kind of document, or a full product; yyyyy is the "project id"; and zz is a major revision/iteration document id of that thing. Overengineering? Probably, you really only need this if you have/want/are required to maintain a document control system. But maybe I do?

okay but what if I set up a doc control system for my insane personal projects

https://cohost.org/jamesmunns/post/329860-extremely-avionics-b

17.11.2022 09:05 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

We are living in a golden age of case studies, if nothing else.

14.11.2022 17:54 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Attention Required! | Cloudflare

For no reason at all, if you haven't heard of "Chesterton's Fence" before, this might be an interesting, topical read.

In particular, it's important to understand systems (and how and why they came to be, for better or worse), before changing them.

https://fs.blog/chestertons-fence/

14.11.2022 17:54 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
A simpler way to calculate Euclidean Rhythms Euclidean Rhythms [https://dbkaplun.github.io/euclidean-rhythm/] are a cool way to generate beat patterns, originally shown to me by @jjbbllkk. There's a paper (pdf) [http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf] that describes a way to calculate it, by shuffling the beats and rests to make sure they are well spaced. There IS a rust crate that does this, but it follows the paper's methods fairly directly, which requires a bunch of SmallVecs, and I don't love it: https://github.com/padenot/euclidian-rythms/blob/3c72f37ff8a6c1b7897fdc783e52fabe8eb45dc8/src/lib.rs#L5-L72 [https://github.com/padenot/euclidian-rythms/blob/3c72f37ff8a6c1b7897fdc783e52fabe8eb45dc8/src/lib.rs#L5-L72] Instead, I have hit the problem with loops and bit math, which allows me to handle the problem much more comfortably on embedded systems: pub struct Euc32 { interval: u32, data: u32, } impl Euc32 { pub fn new(hits: u32, interval: u32) -> Option<Euc32> { if hits == 0 { return Some(Euc32 { interval, data: 0 }); } if (hits > 32) || (interval > 32) || (hits > interval) { return None; } let mut ctr = 0u32; // TODO: There's probaby a *math* way to do this without // a loop, but whatever while ctr < interval { ctr += hits; } let mut data = 0; for i in 0..interval { if ctr >= interval { data |= 1 << i; ctr -= interval; } ctr += hits; } Some(Euc32 { interval, data }) } } This gives me the results I expect: test euc::test::sevens ... 0: [.......] 1: [x......] 2: [x..x...] 3: [x.x.x..] 4: [x.x.xx.] 5: [xx.xxx.] 6: [xxxxxx.] 7: [xxxxxxx] ok test euc::test::thirteens ... 00: [.............] 01: [x............] 02: [x.....x......] 03: [x...x...x....] 04: [x..x..x..x...] 05: [x..x.x..x.x..] 06: [x.x.x.x.x.x..] 07: [x.x.x.x.x.xx.] 08: [x.xx.x.xx.xx.] 09: [xx.xx.xx.xxx.] 10: [xxx.xxx.xxxx.] 11: [xxxxx.xxxxxx.] 12: [xxxxxxxxxxxx.] 13: [xxxxxxxxxxxxx] ok

Continuing my sleep deprived audio hacking, figuring out how to calculate Euclidean Rhythms, but very efficiently:

https://cohost.org/jamesmunns/post/276695-a-simpler-way-to-cal

12.11.2022 12:39 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
James Munns on cohost Moving up in the world, now I can encode "Mary had a little lamb". Code for this is below the fold. ---------------------------------------- use mididemo::bar_to_midi; use minijam::scale::Pitch; use thursday::{Length, bars::BarBuf}; fn main() { // Input notation let mary = [ (Length::Quarter, Some((Pitch::E, 4))), // Ma (Length::Quarter, Some((Pitch::D, 4))), // ry (Length::Quarter, Some((Pitch::C, 4))), // had (Length::Quarter, Some((Pitch::D, 4))), // a (Length::Quarter, Some((Pitch::E, 4))), // lit (Length::Quarter, Some((Pitch::E, 4))), // tle (Length::Quarter, Some((Pitch::E, 4))), // lamb (Length::Quarter, None), // (Length::Quarter, Some((Pitch::D, 4))), // lit (Length::Quarter, Some((Pitch::D, 4))), // tle (Length::Quarter, Some((Pitch::D, 4))), // lamb (Length::Quarter, None), // (Length::Quarter, Some((Pitch::E, 4))), // lit (Length::Quarter, Some((Pitch::E, 4))), // tle (Length::Quarter, Some((Pitch::E, 4))), // lamb (Length::Quarter, None), // (Length::Quarter, Some((Pitch::E, 4))), // Ma (Length::Quarter, Some((Pitch::D, 4))), // ry (Length::Quarter, Some((Pitch::C, 4))), // had (Length::Quarter, Some((Pitch::D, 4))), // a (Length::Quarter, Some((Pitch::E, 4))), // lit (Length::Quarter, Some((Pitch::E, 4))), // tle (Length::Quarter, Some((Pitch::E, 4))), // lamb (Length::Quarter, Some((Pitch::E, 4))), // its (Length::Quarter, Some((Pitch::D, 4))), // fleece (Length::Quarter, Some((Pitch::D, 4))), // was (Length::Quarter, Some((Pitch::E, 4))), // white (Length::Quarter, Some((Pitch::D, 4))), // as (Length::Half, Some((Pitch::C, 4))), // snow ]; // Load into a Bar Buffer let mut bbuf = BarBuf::new(); for (len, note) in mary { match note { Some((pitch, oct)) => bbuf.push_note_simple(len, pitch, oct).unwrap(), None => bbuf.push_rest_simple(len).unwrap(), } } // Write to midi file bar_to_midi(&bbuf, "mary.mid", 150, Some(1)).unwrap(); }

More info: https://cohost.org/jamesmunns/post/274535-moving-up-in-the-wor

12.11.2022 04:53 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

Been hacking on some stuff for my generative synth, primarily how to build/store musical notes.

I also wired it up so it can:

A: generate midi of the stored contents
B: you can use a tool (MuseScore) to dump the midi to music notation

This is mary had a little lamb

12.11.2022 04:53 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

wait why are the bluechecks actually blue and not white now?

it's still the same for both paid and "classic" verified accounts.

(this is rhetorical, I know none of it actually makes sense)

11.11.2022 14:42 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Credit to @1lexxi for sharing this on cohost :D

11.11.2022 12:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
GitHub - cyrozap/rv51: A RISC-V emulator for the 8051 (MCS-51) microcontroller. A RISC-V emulator for the 8051 (MCS-51) microcontroller. - cyrozap/rv51

Someone made an RV32I VM for the 8051, which means you can write Rust binaries that target RV32I, and run them on an 8051.

That's just, whew. Is it a good idea? I have no idea! Is it badass? Yes, very much so.

https://github.com/cyrozap/rv51

11.11.2022 12:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

alt text (I guess I do have to explain it): someone has used a fourier series of rotating divs to simulate the HTML marquee element. In practice, this causes an eggbug to scroll from right to left (a little twitchy/bouncy), then the series swings it down and back right to reset)

11.11.2022 09:03 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

I cannot begin to explain to you the things you are missing over on @cohost_org. This is all done in CSS.

11.11.2022 08:34 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Snapshotting their current profile will also probably grab useful contact info.

11.11.2022 06:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Is there a tool that lets me store a snapshot of my followers/following list, that gets:

* Their current profile contents
* Their twitter accountID?

I have my export, but that ONLY has accountIDs, and no way to map that to account/names

11.11.2022 06:43 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Just came up with an awesome URL pun name, and while the domain is available, it's 325 EUR.

It's a funny joke, I just don't know if it's a 325 EUR funny joke.

09.11.2022 04:38 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I take a weird pleasure in writing things like β€œy’all’s” in semi-formal communication.

In context: β€œregarding y’all’s project,”

08.11.2022 23:48 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@bitshiftmask is following 2 prominent accounts