this post was submitted on 27 Mar 2024
94 points (94.3% liked)
Asklemmy
44152 readers
1283 users here now
A loosely moderated place to ask open-ended questions
Search asklemmy π
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I have a number of interests that I'm not actively, or even lazily, pursuing right now, mostly because I'm already filled up with way too much stuff that I'm into and not really looking into properly.
Many are directly related to programming. x86-64 and RISC-V Assembly, understanding the dark arts of how graphics programming works (this video does an excellent introduction to the kinds of calculations done for 3D scenes), the bare minimum to make USB bootable "operating systems", properly understanding Justine's "actually portable executables" and replicating them with a different language like Nim or V (she's a real programming genius), getting into game and software cracking (all I know is that you need a disassembler first, then most of the work is renaming stuff into human readability and organizing the code)... All of this just related to programming! I know that the 3D stuff is what I think about most often, given my 3D printing shenanigans and fiddling with Blender.
Related to my 3D printing, I keep looking into, then leaving for later, ways to make proper silicone molds, or 3D print reusable molds in order to create large quantities of tiles for square or hex games, plus modular terrain features. Printing them is easy, creating molds not so much. My limited experience with trying to press 3D printed shapes on a dough had less than ideal results, mostly due to the dough sticking to the damn print, even after applying oil and vaseline all over it. Might try applying varnish to the print before applying vaseline and try again sometime in the future.
I also think frequently think about stuff like making bricks out of molten plastic mixed with sand. This thing is easy in theory: no need to separate the many different types of plastic, just shred it all, dump in a big cauldron, heat it up to 200ΒΊ Celsius, mix in some sand, press the resulting paste into the desired form or mold, wait for it to cool. The problem is that I can't quite figure a way to make it work without spending 10k USD in heavy equipment. Then I think whether I should directly contact the local recycling center and ask whether they know someone who does these bricks, or if I should start a business with that, the latter option being super risky given my lack of funds for such a venture.
I was having similar thoughts about Nim and portability when I saw this Github project (it uses APE but it's more like a runtime for software? though I'm not sure if actual usage is easy like other frameworks/libraries etc). Though honestly I will probably sooner do something with Godot or Raylib via bindings instead, which is unfortunate because the 2D polygonal style is not well supported* unless you keep it really simple.
I'm thinking about tinkering with low-poly 3D+mostly untextured models (vertex colors, see vertex color skyboxes as an inspiration for the style/concept) to sidestep the 2D issue (as it's well-established in 3D). My mousewheel is currently broken, though. And I'm not totally happy about the idea of using Blender, though any 3D editor opens up more options (in-engine stuff is cool, but probably locked-in).
It's also difficult finding discussion about Nim on the fediverse, particularly when people don't explicitly say nim-lang. That and often Kbin doesn't properly federate Mastodon replies so potential conversations are just broken. And I haven't seen other languages that come close to the same feel, some scripting languages might be OK if their performance wasn't a problem (and often there are options to help, but it also makes me question if it also wrecks their compatibility with bindings when it's a different thing).
* = 1. Godot 4 has a still-in-PR-stage feature that can be used for art but may not perform well enough to be used for an entire project with MSAA, also still no Nim bindings. Also even then, the editors could be better (vertex colors and internal vertices).
2. I am not aware of polygonal tools for Raylib at all, started making a text format and loader but got bogged down on details. And it would be even more basic than Godot's polygons, no animation aside from just making multiple frames and swapping (or maybe some basic transform effects, but this would all need to be done manually while Godot has in-engine animation).
Regarding the assembly and cracking stuff, I've actually taught myself that (not RISC-V, but x86, arm, and a little mips and PPC). The way I did it, was largely practice by doing. Specifically, I tried to almost every weekend put some time into competing in CTFs. Focus on the reversing challenges, look for writeups on similar challenges, fail, and once the CTF has ended, read the writeups and try solving again. Rinse and repeat, each weekend you'll slowly get better and better.
Additionally, start messing around with an assembly debugger. For me, being able to step through instruction by instruction and watch as the values of the registers change, made everything sort of click. Start with making your own program in c, then debug the assembly, and pay attention to how your c code got converted to assembly.
There's also some decent books out there, I like NoStarch (there's a malware book and also hacking: the art of exploitation, the malware book is more reverse engineering, but both should be decent starting points for assembly).
Btw, picoctf is a good starter one that is hosted year round.
This is exactly how assembly and reversing started to make sense for me as well. I just had to dive in for the words I was reading to start really making any sense.
I also agree on CTFs being a great entry point to getting those reps in. If you're up for a challenge the Mandiant Flare-On CTF is a doozy. All the old CTF binaries are still up on the Flare-On site for anyone to grab and work through. The CTF is usually in the fall, September-ish I think? Definitely before Thanksgiving in the US, and the SANS Holiday Hack stuff.
Here is an alternative Piped link(s):
this video does an excellent introduction to the kinds of calculations done for 3D scenes
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source; check me out at GitHub.