Live data from Hacker News

Ask HN: What rabbit hole(s) did you dive into recently?

news.ycombinator.com

321–330 of 443 posts

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#321

I did not realize that learning Fusion 360 was going to be such a huge chapter in my current journey. Looking back, I'm kind of stumped at how I avoided it as long as I did. I would now put learning CAD in the same category of mandatory life skill as learning to code. The ability to translate what you see in your mind to something that can be repeatably fabricated is an incredible power move, akin to learning how to…

Do NOT use this proprietary nonsense, learn FreeCAD

To quote myself from a previous blog post of mine:

> I tried and tried and tried to get into [FreeCAD]. It promises so much, but there are two fatal flaws in my opinion. First, the UI is a nightmare. I have no idea which "workbench" I am supposed to be using, and there are so many similar choices available, each with subtly different tools and ... I gave up trying to make sense of it. Secondly, even when following tutorials to get some basic modelling done, I found lack of sensible keyboard control and having to click almost everything a real distraction. Not a good experience.

It's an absolute nightmare to use. Really the worst UX I've ever seen.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#322

I did not realize that learning Fusion 360 was going to be such a huge chapter in my current journey. Looking back, I'm kind of stumped at how I avoided it as long as I did. I would now put learning CAD in the same category of mandatory life skill as learning to code. The ability to translate what you see in your mind to something that can be repeatably fabricated is an incredible power move, akin to learning how to…

Do NOT use this proprietary nonsense, learn FreeCAD

Friends don't tell friends to learn FreeCAD.

I'm a decently able self-taught CAD user now, of the level where I can reasonably quickly pick up a new piece of software. And yet... I've lost count of the number of times I've reinstalled FreeCAD thinking "this time it will be different"... and then quickly removed it again. Compared to anything reasonable it's just an awful hot mess to try and figure out, with huge quirks, a weird interface, and unhelpful error messages.

Given the reasonable pricing, I'm interested to try Plasticity, although it's not strictly CAD in the sense of Fusion360/Solidworks/etc - it's currently more of a modelling program. It's also doesn't have the parametric + history features that are really valuable in other products.

The truth is, we're crying out for a decent open-source CAD program. Everything currently available (FreeCAD, OpenSCAD, SolveSpace, CadQuery, etc.) has huge usability and/or feature deficits compared to the commercial offerings.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#323
post #308

Earlier quoted context omitted.

All I want is a small stereo speaker to replace my awful monitor speakers. Like a small soundbar that doesn't suck. I might dive into this rabbit hole

"Small" and "decent audio response in bass" don't really go together. But you can go surprisingly far with a pair of "bookshelf" speakers.

With passive speakers, I agree, but with active/DSP speakers you can do ludicrous things. There's this build on diyaudio called something like "compact active 3 way", that'll give you an idea of how decently powerful a small speaker can go (and that's despite some design flaws in the build like the choice of a passive radiator).

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#324

For me, it's DIY audio. The thing about diy'ing audio (primarily speakers but also amps, DACs etc) is that you can get top of the line performance for a fraction of the market price. A $50,000 speaker setup that would bring tears to your eyes could be made for perhaps $5000. A DIY $500 kit can perform similar to a $2-3000 set of speakers. Open source amps with gerber files on github are amazing. The biggest reason it…

All that build up and not a link to be seen?!?! Where do I go to spend $ on a new hobby I didn't need?

The easiest "take my money" approach would be to look at some Troels Gravesen speakers on his website and/or find kits being sold on sites like parts express (if in the US). Jeff Bagby and Paul Carmody are two other well known designers, the latter having more budget-friendly builds.

Additionally, sites like diyaudio.com are better when you want a specific thing built and are looking to learn more about techniques, new parts etc.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#325

Earlier quoted context omitted.

Hard disagree. The real world only has pain and suffering. Endless trials and never a payout. Games on the other hand and very detailed and have a well defined path to success.

This oddly enough has been quite a big issue in my life as of lately. I need to get off my ass and start working towards better things in real life in order to (potentially) better my situation e.g. new job, better hobbies, etc.. However, I have always had issues with gaming on and off throughout my life (perhaps a lot more on than off). I seriously think that a lot of my issues with gaming is that games are preferen…

Try recording yourself playing video games. You will quickly snap out of the illusion and realize that you're passing through life staring at a screen.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#326
I'll try to build my own corne keyboard so I recently dived into custom mechanical keyboard rabbit hole, which seems to be more of a black hole from which nothing comes out, not even light. (Plot twist: I have no experience in soldering, so that's gonna be fun...)

Otherwise, ThePrimagen pisses me off always talking about Neovim and Vim motions, so I am right now in the painstaking process of learning Vim motions and I want my life to end because of the learning curve.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#327

Building a CRUD app. It's been a while since I've worked on a CRUD app so I'm finding the whole thing quite interesting. The purpose of the app is to solve a scheduling problem. I've written my own CDCL SAT solver (now just using google or tools), and on the app side I've jumped from Phoenix (elixir) -> Dream (ocaml) -> axum (rust) -> Django. I feel like Phoenix probably perfectly suits what I'd like to do with this…

Interesting, what’s the scheduling problem?

Writers Festival program: basically you have a 100+ authors, a handful of venues, and 3 or 4 days to run the festival. The nature of writers festivals is interesting because there are a lot of panel sessions (multiple authors on the one session). The formulated problem is to produce a valid schedule such that the number of required accommodation nights is minimised - ultimately to reduce operating costs.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#328
post #316
post #196

I fell into the rabbit hole of delinking programs back into object files. Long story short, I was inspired by the Super Mario 64 and REDRIVER2 decompilation projects and wanted to do one. I picked a PlayStation video game from my childhood, started Ghidra and then I quickly realized that the game code's a complete mess. It's bad enough that I don't see myself ever finishing this project unless I can somehow divide-an…

I am not sure if I follow correctly. Please clarify the following for me. Have you succeeded in making a tool which undoes the work of the linker?

I did, you can find the Ghidra extension there: https://github.com/boricj/ghidra-delinker-extension

The problem is properly identifying the relocations spots and their targets inside a Ghidra database, which is based on references. On x86 it's fairly easy because there's usually a 4-byte absolute or relative immediate operand within the instruction that carries the reference. On MIPS it's very hard because of split MIPS_HI16/MIPS_LO16 relocations and the actual reference can be hundreds of instructions away.

So you need both instruction flow analysis strong enough to handle large functions and code built with optimizations, as well as pattern matching for the various possible instruction sequences, some of them overlapping and others looking like regular expressions in the case of accessing multi-dimensional arrays. All of that while trying to avoid algorithms with bad worst cases because it'll take too long to run on large functions (each ADDU instruction generates two paths to analyze because of the two source registers).

Besides that, you're working on top of a Ghidra database mostly filled by Ghidra's analyzers, which aren't perfect. Incorrect data within that database, like constants mistaken for addresses, off-by-n references or missing references will lead to very exotic undefined behaviors by the delinked code unless cleaned up by hand. I have some diagnostics to help identify some of these cases, but it's very tricky.

On top of that, the delinked object file doesn't have debugging symbols, so it's a challenge to figure out what's going wrong with a debugger when there's a failure in a program that uses it. It could be an immediate segmentation fault, or the program can work without crashing but with its execution flow incorrect or generating incorrect data as output. I've thought about generating DWARF or STABS debugging data from Ghidra's database, but it sounds like yet another rabbit hole.

I'm on my fifth or sixth iteration of the MIPS analyzer, each one better than the previous one, but it's still choking on kilobytes-long functions.

Also, I've only covered 32-bit x86 and MIPS on ELF for C code. The matrix of ISAs and object file formats (ELF, Mach-O, COFF, a.out, OMF...) is rather large. C++ or Fortran would require special considerations for COMMON sections (vtables, typeinfos, inline functions, default constructors/destructors, implicit template instantiations...). Also, you need to mend potentially incompatible ABIs together when you mix-and-match different platforms. This is why I think there's a thesis or two to be done here, the rabbit hole is really that deep once you start digging.

Sorry for the walls of text, but without literature on this I'm forced to build up my explanations from basic principles just so that people have a chance of following along.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#329
post #168

I did not realize that learning Fusion 360 was going to be such a huge chapter in my current journey. Looking back, I'm kind of stumped at how I avoided it as long as I did. I would now put learning CAD in the same category of mandatory life skill as learning to code. The ability to translate what you see in your mind to something that can be repeatably fabricated is an incredible power move, akin to learning how to…

If you don't know about Plasticity 3D, you should know about Plasticity 3D. It is different, but still parametric, and CADish.

I use it these days for my basic indie game models, it's great.

Re: Ask HN: What rabbit hole(s) did you dive into recently?

#330

I recently fell into the Linux from Scratch rabbithole. The extra unexpected fun came while attempting to build LFS from within NixOS (my daily driver, which I only had a basic proficiency in). I quickly realized the challenges of following the LFS project's guidance, due in large part to how the Nix store is implemented. So I fell down another rabbithole of learning derivations and the Nix language - which took me a…

That sounds super interesting, could you share the code for that?
Post reply on HN