justinweiss
Joined 18 years ago
Joined 18 years ago
Yes! This is one of the major challenges I still have. It's easy to say "fix model errors in AGENTS.md / the system prompt." But finding a way to prove the effect of that change is the hard part.
It's so frustrating when a model says "no, your guidance was fine, I just didn't follow it, I'll do better next time..." It just makes me want to yell "No! You won't do better next time! This is the problem!"
> In that respect, working with an LLM is much more like working with another person than working with traditional software.
Yes, but if you work with another person, at least they'll have a chance of remembering suggestions you make.
The simple answer is "Have the AI do a refinement -> eval -> refinement loop." That pushes the problem somewhere else, into the "what goes in the eval" question ("and make sure you don't overfit" -- something AI-driven prompt refinements are not good at).
- All the hardware works out-of-the-box in Linux, at least as far as I can tell.
- Swappable ports seems like a gimmick, but it's nice. A few months ago I realized I'd rather have a built-in Micro SD port than an extra USB-C, and that change was trivial.
- If I had bought a traditional laptop, I would have been very annoyed to have an upgrade with a much nicer screen and webcam released 6 months or so after buying the laptop. Instead, I just bought the new screen and webcam module and swapped them in in less than 15 minutes.
- Speaking of the screen, I've missed matte screens ever since Apple went glossy. It's really nice to go back. The 3:2 aspect ratio is a huge bonus, the extra vertical space is useful.
- On Linux, I get around 5-6 hours of battery life under my normal use, 8 or so under light load. That's more than enough for me. Finding a way to charge has never really been a problem since laptops switched to USB-C charging.
- The speakers are not great, and they're downward firing which makes them worse. The easyeffects presets here help quite a bit: https://github.com/ceiphr/ee-framework-presets
- The trackpad is fine. It's better than most non-Apple laptops I've used, but it's still nowhere close to a MacBook's.
- Most of the early issues with the processor have been solved with newer kernel versions. There's still a crashing issue that prevents running large accelerated LLM / image models: https://gitlab.freedesktop.org/drm/amd/-/issues/3482. This isn't a problem with the Framework specifically, but I wish they provided a BIOS option to reserve more VRAM.
- I'm very much looking forward to upgrading the RAM later without buying a new machine. I'll probably do this when the above bug is fixed.
- I wish there was just a little more focus on the details. For example, the swappable port modules don't sit exactly flush with the case on the right side (they're just barely recessed too deep) and it annoys me a bit every time I see it.
Overall though, it's my favorite laptop I've owned since the 12" MacBook. It makes me happy every time I use it.
For the basic stuff you can use the usual C libraries. I picked up a lot by reading and tweaking the examples, which are installed along with the toolchain: https://github.com/devkitPro/3ds-examples
libctru, installed with devkitpro (https://libctru.devkitpro.org/) is where a lot of the platform-specific APIs live. There are also some higher-level libraries built on top of it
A good understanding of ARM will take you a long way. A lot of what documentation there is (especially on 3dbrew.org) assumes you understand the terms and general architecture of an older ARM platform. This book https://www.brucesmith.info/arm-a32-assembly-language/ was great for building enough understanding that I could understand most of the official reference manuals. From those, I found the ARMv7 reference manual and the ARM11 MPCore Technical Reference Manual to be the most useful, and I refer back to the ARM instruction set reference card a lot.
Besides that, it's reading and modifying the source of other projects, and trying things out. If you look at homebrew apps like ctrQuake (https://github.com/masterfeizz/ctrQuake), you'll notice there's usually not a lot of platform-specific code -- most is just standard C / C++.
Hope that helps. Just like anything, it's knowing enough to get started (a toolchain, some C, and some examples) and using your questions and ideas to draw you into the next thing to learn.
Over the last year or so I've been squeezing individual fps's of performance out of the PSX emulator and it's been some of the most fun hobby programming I've done in a long time.
Plus you can write for a platform with a 3D screen! How cool is that?
It's been fun to work around the constraints on an underpowered device. It's also an excuse to learn ARM assembly, and a nice break from all the JavaScript I've been spending my time in lately!
It's bulkier. the screen is non-retina and a worse aspect ratio. The fan is noisier. Turns out none of these things bother me anywhere close to what I expected. Hardware-wise, the only annoying thing has been the terrible speakers. Then again, I'm usually on headphones. I miss USB-C ports and USB-C charging, but not too badly.
On the other hand, I had almost forgotten what a good laptop keyboard felt like, and after getting used to the trackpoint, I like it a lot.
I still use a Mac for work, but as a lot of my favorite Mac software has gone subscription-only or subscription-preferred, I've gradually moved more toward open-source options: password-store from 1Password, org-agenda from OmniFocus, etc. So the change wasn't as big or as hard as I was expecting. Decoupling from iCloud will definitely be a thing (photos, iTunes Match, etc.), but I'll figure it out.
edit: Forgot to mention matte screen! Don't know why all the manufacturers thought glossy was the way to go, but it's nice not having to stare at a reflection of the room around me all the time.
Mastodon: https://mastodon.justinweiss.com/@justin GitHub: https://github.com/justinweiss Email: [email protected] Web: https://www.justinweiss.com