Avram Levitter

54 Followers
130 Following
350 Posts
It strikes me, this time through the Yosef story, that during the years of plenty he collected all the grain for safekeeping, and in the first couple years of the famine he rationed it (sounded like this was the plan), but then he started selling it. You'd expect outsiders to have to pay, but he was selling Egyptians their own grain, and the text doesn't address the change in policy. If this was Yosef's plan and not Paro's, it doesn't exactly seem consistent with Jewish values like fair business practices. Why was this ok? Are there commentaries on this, and do any of them criticize Yosef's grain policies? It doesn't sound like the farmers who grew the grain had the option to store their own for the future, but instead had to hand it over. What am I missing? #vayigash
Philosophical question: if I write a new test that discovers a bug in older code that I also wrote, am I great for having found the bug, or bad for having introduced it in the first place?
He also has a channel about Israeli public transit (https://www.youtube.com/@aronowtransit) and now I'm shocked I somehow haven't met him.
Before you continue to YouTube

I really don't know how I haven't seen more of Sam Aronow's content. I mean, I'd see a video or two of his before, but now I've been going through his Jewish History playlist (113 videos! And there are still more being made regularly!) for several hours now, and they're all spectacular.
https://www.youtube.com/@SamAronow
Before you continue to YouTube

Sometimes, a YouTube video gives you amazing meme material but I don't think I currently have any specific meme I want to make with it. So I shall share it with the fine folks of babka.social to see if anyone has something they could use it for.

The image in question is a screenshot of the phenomenal series of YouTube videos on the history of the Jewish people by Sam Aronow.

I think I've gotten this down to a two-phase algorithm:
1. Figure out the solved positions of the letters (easier said than done, though)
2. The resulting board can then be seen as a permutation. Since permutations can be split into independent chains of what needs to go to where. You can then invert that permutation via the chains, and then use known algorithms for turning those into swaps. HOWEVER, the multiplicity of the characters means there may be more than one such permutation, so all of them must be checked to find the optimal solution

#waffle1025 5/5

🟩🟩🟩🟩🟩
🟩⭐🟩⭐🟩
🟩🟩⭐🟩🟩
🟩⭐🟩⭐🟩
🟩🟩🟩🟩🟩

🔥 streak: 1
wafflegame.net

You ever have a "wait, I still remember that" moment? I just found out I still remember a fair bit of Hiragana even though I haven't studied any Japanese in over ten years.
And in classic C fashion, at least 100 of the lines were things that could have been defaults. So I'd expect this to be even shorter in a C++ wrapper.
What I do like is how much it matches the Vulkan API's structure, so the concepts are very transferable. Most of a Vulkan Hello Triangle is the boilerplate (enabling validation layers, choosing the physical device, creating the logical device, etc.) and not the actual project-specific code (transferring data, creating the pipeline, the actual render pass). I felt like this abstraction made it much easier to focus on the project-specific code.
The API is SDL3 which has a wrapper for Vulkan. Around 270 lines of code for Hello Triangle, though I could have gotten that down to 250 by de-duplicating a function or two.