HN user

boustrophedon

250 karma

Harry Stern

graphics programming and geometry are fun

boustrophedon on github and libera

harry@harrystern.net

Posts5
Comments72
View on HN

Yes, if anything the issue is that the House was capped in seats in 1929 and the population has tripled. Smaller states have an outsized representation in Congress currently.

The excessive amount of emdashes does seem to imply it's LLM slop ragebait. The prompt probably included "make intentional mistakes in your arguments to drive engagement" or something like that.

The `parse_program` function is public inside the `bc_util::parser` module, and the parser module is marked public inside `bc_util`, but in the `calc/src/bc.rs` file the `bc_util` mod isn't public, and can't be accessed from a test inside the `tests/` folder, which only has access to the public API exported by the library.

There are several sites with instant quotes that are cheaper than Shapeways.

PCBWay and JLCPCB both offer similarly-priced very cheap 3d printing and CNC services out of China. Weerg in Italy also offers 3d printing and CNC services and I'm probably going to try them out for the next thing I need printed. The only non-marketplace service I've seen in the US that offers instant quotes is i-solids in Texas, but they have quite high startup costs and seem to be more geared towards small-medium production runs.

I'm not sure if it's related, but I have the git branch in my PS1 and I've noticed that it's much slower to show a new prompt when inside very large repositories now, and I don't think that was the case previously.

Since the author mentioned rewriting it in Rust, I recently added support to my library extrasafe that allows you to sandbox your own code: https://harrystern.net/extrasafe-user-namespaces.html

So if you wanted to call ffmpeg or some other C library with complicated user-provided data, you can use extrasafe's Isolates (along with its seccomp and Landlock features) to sandbox the call. I'm not really sure how suited it is for rewriting something like bubblewrap or firejail, but it might be interesting to try.

I think the biggest underlying difference is that Rust does not have a language runtime, whereas the other three you've listed do. Since the language runtime can preempt your code at any time, it becomes a lot easier to make async work - at the expense that now data races are easier to create.

I'm not going to pretend I'm an expert but would be happy if someone could expand further.

Without specifying a particular representation[0] on the struct you want to put in "permanent memory", this seems liable to break any time you recompile the code with different optimization flags, or with a newer or older compiler that may optimize differently, or even if you just change seemingly unrelated code that then triggers or de-triggers some optimization.

[0] https://doc.rust-lang.org/reference/type-layout.html#represe...

There are a lot of companies that make electronics enclosures. Some of them are waterproof. Usually they have a couple pre-drilled mounting flanges to screw in the board as well, and then you'd drill your own external holes for input/output as necessary. Here's a couple manufacturers, and you can usually find stuff on e.g. adafruit and digikey as well to save on shipping if you're buying dev boards or other parts from them already.

https://www.hammfg.com/ https://www.budind.com/ http://takachi-enclosure.com/ https://www.adafruit.com/product/903

Thanks for the detailed markup! I'm going to take a look at the code tomorrow and see if there's some obvious mistake I've made with the highs/lows. I do remember doing some filtering to only show the lows after noon because I'm typically not outside at 5am - maybe I messed that up.

The reason the current temperature is higher than the "weekly high" is simply that the current temperature is from actual observed data and the weekly high is from forecasted dated, so there are two possibilities: either the temperature is simply higher than forecasted, or the current temperature is higher than it will get the rest of the week.

For what it's worth, there are multicolor e-ink displays available at similar sizes but of course they're also more expensive and have longer refresh rates.

The vendor toolkit is in C, so often you'll see for newer boards that Arduino/CircuitPython/etc don't support it yet because they have to build their own wrappers. Rust lets you use bindgen to basically immediately have access to the entire vendor library.

Now, in this case I'm using an older esp32 board so something like CircuitPython probably would have been equally fine, but it was nice to be able to share the same buffer type across the server and client. I also just enjoy writing Rust and find it less error-prone than C.

Is there a way to fully turn off the RTC on the esp and still go into sleep, or are you using the external RTC to enable/disable the chip itself?

I noted this in the "future work" section but I don't have a way to actually test or validate whether the various deep sleep levels are working. If I try to use the ammeter on a standard multimeter it can't cope with the changing ranges as the esp draws a bunch of power to boot and I think probably causes brownouts.

Do you have a current ranger / ucurrent gold type device?

Yours looks way better than mine - I intentionally didn't show the inside because it's a mess of wires and the screen is held on with masking tape and blue sticky tack and the waveshare esp board wasn't really designed to be soldered to.

Initially I was also going to use an external RTC but didn't want to have the additional circuitry to actually turn on and off the esp32 via the RTC's interrupt signal. Did you find that the internal RTC on the esp wasn't accurate enough?

I could have explained that better. The numbers on the Y axis indicate the min/max for the week, and the ones next to the days of the week are min/max for the day. The temperature graph is also scaled to not go all the way to the top of the graph. It's entirely possible that there's a bug in my code though - I didn't really write any unit tests for it.

The shaded area is a percentage and does extend to the top of the graph region, which means 100% chance of rain.