Hacker Newsnew | past | comments | ask | show | jobs | submit | a_t48's commentslogin

Nice - that will fit on a Gameboy cartridge, though bank switching might make it super terrible to run. Each bank is only 16k. You can have a bunch of them, but you can only access one bank at a time (well, technically two - bank 0 is IIRC always accessible).

Each layer of the LM is also at most 16 KiB, so if you want to minimize bank switching, I think making sure each layer is in one bank would be enough? Bank switching shouldn't give much overhead anyway unless it complicates an inner loop, which would be avoided if no layers are split across banks.

You have 32KB of ROM, plus 8 Kb of ram on original game boy. Game boy color has more. Bank switching is super fast, as well. Given that models are likely streamed, I doubt the bank switching is a problem.

Biggest pain point is likely the text input.


I've seen terrible, terrible binary sizes with Eigen + debug symbols, due to how Eigen lazy evaluation works (I think). Every math expression ends up as a new template instantiation.

Eigen is one of the worst libraries when it comes to both exe size and compile times. <shudder>

In terms of compile times, boost geometry is somehow worse. You're encouraged to import boost/geometry.hpp, which includes every module, which stalls compile times by several seconds just to parse all the templates. It's not terrible if you include just the headers you need, but that's not the "default" that most people use.

boost is on my “do not ever use ever oh my god what are you doing stop it” list. It’s so bad.

Same.

I wonder if something like '-gsplit-dwarf' would help - if the version of gcc they are using even supports it.

Clock sync is such a nightmare in robotics. Most OSes happily will skew/jump to get the time correct. Time jumps (especially backwards) will crash most robotics stacks. You might decide to ensure that you have synced time before starting the stack. Great, now your timestamps are mostly accurate, except what happens when you've used GPS as your time source, and you start indoors? Robot hangs forever.

Hot take: I've seen this and enough other badly configured time sync settings that I want to ban system time from robotics systems - time from startup only! If you want to know what the real world time was for a piece of data after, write what your epoch is once you have a time sync, and add epoch+start time.


If your requirements are “must have accurate time, must start with an inaccurate time, must not step time during operation, no atomic clocks, must not require a network connection, or a WWVB signal, must work without a GPS signal” then yes, you need to relax your requirements.

But it doesn’t have to be the first requirement you relax.


If it has a GPS already, it’s really easy to fall into the trap of just using it, but point taken. Then main requirement is accurate moment to moment time. Using GPS as the master clock mostly makes sense there.

C++11 distinguishes system_clock from steady_clock. As you say, using system_clock is a bug.

THIS is what will save us from the robot uprising!

Running on the working tree is mostly okay - just `exit 1` if changes were made and allow the user to stage+commit new changes. It isn't perfect but it doesn't require checking out a new tree.

What if I've already fixed the format issue (but not staged it). The pre-commit hook will pass, but it's not doing what the author intended (preventing unformated code from being committed).

What if I've only staged one part of a file, but the pre-commit hook fails on the unstaged portions, which should be fine since I'm not commiting or pushing those changes.


You can stash it or `git commit -n`. Perfect is the enemy of good enough.

this completely breaks `git add -p`.

You can either do another `git add -p` after to stage the fixed formatting or do `git add -pn`

OP: what exactly is this?

SQLite Cloud founder(s), if you're out there: Is this a real company? I'm not quite sure it's legal to use "SQLite" in your company/product name that way - it's trademarked and is implying some sort of connection between you and Hwaci (creators of SQLite).


Hello, SQLite Cloud's founder here. We are backed by SQLite's author, and we have the full rights to use SQLite in the company's and products' names.

Ah, neat. Good on you, then - though I'm sure you can see why the company name seemed suspect.

I miss working in Lua. Metatables are pretty powerful, and "everything is in a table" made it super easy to do hot reloading. At one point working on an iOS game, I had things set up so that when I hit save on my PC, my phone would pick up the changes and just start running the new code, as all persistent state was stored in a special table. Someday I need to look into getting the same kind of environment going for robotics, it was really a superpower.

I'm building something like Lua for robots, you might want to check it out if you're looking to collaborate. I didn't know about Lua when I started it, but I did end up at an "everything is a table" metaphor because it seemed good for robotics. This does allow for cool things like hot reloading and such.

Although, we've since moved to having several distinct data structures which conceptually map to tables, but implementation and syntax-wise have differences (mostly for performance).

BTW Basis was a good idea, I remember reading about Nondeterministic replay is a big problem on platforms like ROS.


I think I could actually build what I was thinking of on top of basis, but need to think about some things. Serialization of internal state was kicked around as a design idea at the start, but didn’t see enough benefit back then. In any case basis isn’t quite dead, I still use the thing as a test bed for ideas.

I’ll take a look at your thing, too!


> I didn't know about Lua when I started it

How did you miss Lua? It has been available for decades and good SE practice is to evaluate alternatives before commiting to any techonology.


Just got back from several flights with Hawaiian, free Starlink on every one.

This is neat, though some of it (mutable defaults for example) are already covered by existing linters. I’d also look into pre-commit support as well.


The last time I asked Gemini to assist me with some SQL I got (inside my postgres query form):

  This task cannot be accomplished
  USING
    standard SQL queries against the provided database schema. Replication slots
    managed through PostgreSQL system views AND functions,
    NOT through user-defined tables. Therefore,
    I must return
It's feels almost haiku-like.


Gemini weirdly messes things up, even though it seems to have the right information - something I started noticing more often recently. I'd ask it to generate a curl command to call some API, and it would describe (correctly) how to do it, and then generate the code/command, but the command would have obvious things missing like the 'https://' prefix in some case, sometimes the API path, sometimes the auth header/token - even though it mentioned all of those things correctly in the text summary it gave above the code.

I feel like this problem was far less prevalent a few months/weeks ago (before gemini-3?).

Using it for research/learning purposes has been pretty amazing though, while claude code is still best for coding based on my experience.


Now this is prime software gore


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: