HNHacker News
TopNewBestAskShowJobs

willglynn

648 karma · joined February 1, 2015

submissionscomments
willglynn··on Show HN: TRUST – Coding Rust like it's 1989
Glorious: https://seri.tools/blog/announcing-rust9x/
willglynn··on Opening the AWS European Sovereign Cloud
AWS has the notion of "partitions", which is a technical boundary encompassing multiple regions. This mostly doesn't come up, but it does poke through in certain implementation details, like how AMI manifests for groups of regions (partitions) need to be encrypted for different public keys. Each partition has a specific region which must be targeted for certain partition-wide actions, such as managing IAM endpoints in other regions.

https://docs.aws.amazon.com/whitepapers/latest/aws-fault-iso...

Normal AWS (`aws`) traces to `us-east-1`. AWS GovCloud (US) (`aws-us-gov`) is distinct, based in `us-gov-west-1`. AWS in China (`aws-cn`) is distinct again, based in `cn-north-1`.

The AWS European Sovereign Cloud is implemented as a distinct partition – `aws-eusc` based in `eusc-de-east-1` – so it has exactly as much in common with normal AWS as AWS GovCloud (US) or AWS in China.

willglynn··on Wikipedia loses challenge against Online Safety Act
For example, "An HTTP Status Code to Report Legal Obstacles":

https://datatracker.ietf.org/doc/html/rfc7725

willglynn··on Weather Model based on ADS-B
This was TAMDAR data, which is a self-contained instrument package intended specifically for meteorological observations.

https://en.wikipedia.org/wiki/TAMDAR

Observations definitely fell off a cliff as commercial air travel slowed to a crawl. In terms of impact, though… it turned out not to be a big deal.

> Aircraft reports suffered a 75% decline in numbers from mid-March to mid-April 2020; in May the number started increasing again. Despite the loss of data there is no clear signal in the forecast skill—partly because the skill shows considerable variability on daily, seasonal, and interannual timescales (Figures 3 and 4). …

> …

> Overall, we can find no evidence that the decrease in aircraft observations has handicapped numerical forecasts of extreme weather to an extent large enough to incur significant economic impact.

https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/202...

willglynn··on Rust running on every GPU
You might be interested in https://burn.dev, a Rust machine learning framework. It has CUDA and ROCm backends among others.
willglynn··on Impacts of adding PV solar system to internal combustion engine vehicles
Yes! Exactly this.

My last EV used 22 MWh over 6.5 years. That works out to 390W.

My solar array is located at high latitudes (northern Minnesota), the mounting angle isn't great, it's occasionally covered in snow, etc. In these conditions, I need 6.3 solar panels to produce 22 MWh over 6.5 years.

The area used by 6.3 solar panels -- enough PV to cover _all_ my EV's energy needs -- works out to be a parking spot large enough to fit the vehicle but not large enough to fully open any of the doors.

willglynn··on Is an Intel N100 or N150 a better value than a Raspberry Pi?
I've had great results with N100 mini PCs including Power over Ethernet. Here's an N100, PoE, 2.5GBASE-T, case, 8 GB RAM, 128 GB SSD for $129 refurbished:

https://refurbished.minisforum.com/products/minisforum-s100-...

I have zero applications where a Pi5 makes more sense than either a mini PC or a large microcontroller.

willglynn··on Amazon Wants to Be a Satellite-Internet Powerhouse. It Has a Long Way to Go
This is not discretionary for the FCC:

> A station authorization shall be automatically terminated in whole or in part without further notice to the licensee upon:

> …

> (d) The failure to maintain 50 percent of the maximum number of NGSO space stations authorized for service following the 9-year milestone period as functional space stations in authorized orbits, which failure will result in the termination of authority for the space stations not in orbit as of the date of noncompliance, but allow for technically identical replacements.

https://www.ecfr.gov/current/title-47/chapter-I/subchapter-B...

_Congress_ can change this, but as written, Federal law compels the FCC to automatically terminate the authorization for failing to deploy half the satellites under 47 CFR § 25.161(d), just as they must automatically terminate the authorization when the license expires under 47 CFR § 25.161(b).

willglynn··on I found a backdoor into my bed
ESPHome fills much of this niche for me. It's a framework for turning YAML device definitions into custom microcontroller firmware, with myriad supporting tools. The official device database at https://devices.esphome.io lists 554 devices but that's nowhere near the end of it.

Most manufacturers bolt on IOT functions by dropping an off-the-shelf module onto their device-specific board. It's sometimes possible to replace the factory firmware with ESPHome, sometimes even using over-the-air updates. For example, AirGradient air quality sensors: https://github.com/MallocArray/airgradient_esphome

Even when it isn't possible to commandeer the factory IOT module, the fact that it _is_ a module is still useful, because it's almost always possible to inhibit or remove the factory module and connect your own instead. The factory IOT module controls and senses the device, so your replacement module can too, using the same pins. For example, an IOT air filter: https://github.com/mill1000/esphome-winix-c545#final-assembl...

Some devices are designed around multidrop communication busses. These are usually even easier, since the ability to join the bus is an intended design feature, even if the device you're using is not intended. For example, many Samsung residential HVAC systems: https://github.com/omerfaruk-aran/esphome_samsung_hvac_bus/d...

willglynn··on S1: The $6 R1 Competitor?
On the topic of fail-deadly nukes:

https://en.wikipedia.org/wiki/Dead_Hand

willglynn··on Google says AI weather model masters 15-day forecast
This is true for many but not all weather models.

GFS and IFS are both medium-range global models in the class Google is targeting. These models are spectral models, meaning they pivot the input spatial grid into the frequency domain, carry out weather computations in the frequency domain, and pivot back to provide output grids.

The intuition here is that, at global scale over many days, the primary dynamics are waves doing what waves do. Representing state in terms of waves reduces the accumulation of numerical errors. On the other hand, this only works on spheroids and it comes at the expense of greatly complicating local interactions, so the use of spectral methods for NWP is far from universal.

willglynn··on Amazon S3 Adds Put-If-Match (Compare-and-Swap)
You're right, and in fact S3 does this with the `ETag:` header… in the simple case.

S3 also supports more complicated cases where the entire object may not be visible to any single component while it is being written, and in those cases, `ETag:` works differently.

> * Objects created by the PUT Object, POST Object, or Copy operation, or through the AWS Management Console, and are encrypted by SSE-S3 or plaintext, have ETags that are an MD5 digest of their object data.

> * Objects created by the PUT Object, POST Object, or Copy operation, or through the AWS Management Console, and are encrypted by SSE-C or SSE-KMS, have ETags that are not an MD5 digest of their object data.

> * If an object is created by either the Multipart Upload or Part Copy operation, the ETag is not an MD5 digest, regardless of the method of encryption. If an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest.

https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.h...

willglynn··on Amazon S3 Adds Put-If-Match (Compare-and-Swap)
It is common to use multipart uploads for large objects, since this both increases throughput and decreases latency. Individual part uploads can happen in parallel and complete in any sequence. There's no architectural requirement that an entire object pass through a single system on either S3's side or on the client's side.
willglynn··on Async Rust in Three Parts
> In Rust, the main thread is special. (I consider this unfortunate, but web people like it, because inside browsers, the main thread is very special.) If the main thread exits, all the other threads are silently killed.

Rust inherits this from `pthread_detach()`:

       The detached attribute merely determines the behavior of the
       system when the thread terminates; it does not prevent the thread
       from being terminated if the process terminates using exit(3) (or
       equivalently, if the main thread returns).
willglynn··on Can SpaceX land a rocket with 1/2 cm accuracy?
Global lat/long coordinates are defined in terms of coordinate systems like WGS84 or ITRF2020, which are themselves the result of relative measurements between reference stations.

The earth's crust floats on top of liquid rock. This matters at relevant length and time scales; in most places, these effects alone are on the order of millimeters per year. One reason why it's better to use NAD83 over WGS84 in North America is that NAD83 latitudes and longitudes move with the North American plate.

Positions _are_ relative, and the closer you can put your datum, the less drift you'll accumulate.

willglynn··on Why birds do not fall while sleeping
The document to which this article refers was published in the Journal of the Royal Society Interface, and the article links there. It is also available as open access, which was not linked:

https://hal.science/hal-04287433v1

https://hal.science/hal-04287433/file/Version%20HALL.pdf

willglynn··on Arduino PLC IDE
It's… fine? Unlike certain other brands, I've encountered no network of frothing, territorial, gatekeeping dealers with Beckhoff. For my project, I reached out to sales.usa@beckhoff.com, got a rep, asked for a quote, and went from there.

Secondhand can be viable too. Some of my "jellybean" EtherCAT terminals came from eBay. I won't get help from Beckhoff if they break, but given that I already have replacements on hand, I'm really not worried about it.

Beckhoff also lets you download almost all the development tools, runtimes, and PLC libraries without paying. In their words:

> Trial licenses can be generated in the TwinCAT 3 development environment (XAE) for many TwinCAT 3 functions for a validity period of 7 days. This can be repeated any number of times. An internet connection is not required for this. In this way, these TwinCAT functions can be used simply and cost-effectively in laboratory operations, e.g. in the education sector.

This is obviously useful for development and experimentation. It can also be an escape hatch in production if you need to substitute controllers. Beckhoff wants you to pay for what you use, sure, but their licensing scheme goes out of its way to avoid kicking you when you're down.

willglynn··on Arduino PLC IDE
Seconding Beckhoff. EtherCAT is a fantastic protocol, TwinCAT/BSD works great, reliability is excellent. It's super nice to run realtime PLC code on specific processor cores with µs of jitter while other cores run a normal OS with normal applications (e.g. VictoriaMetrics) on the controller itself.

I have a construction project involving several buildings with overlapping infrastructure. Everything gets connected to EtherCAT as quickly as possible. Electric generation: solar panels, batteries, inverters. Energy management: branch circuit monitoring, weather forecasts, solar forecasts, load control for things like EV charging and water heating. HVAC: heat pumps, buffer tanks, circulation pumps, valves. Building automation: lighting, access control. I just add I/O wherever, connect over Ethernet, and glue all the signals together in software.

I wouldn't dare approach a project like this with Arduino.

willglynn··on Own a weather station? We want your data
Thirded. I connected my stations' local UDP broadcasts to Prometheus push/VictoriaMetrics:

https://github.com/willglynn/tempest_exporter

Their central web API is nice too (and the tool above can extract metrics from it) but the local, offline data access is what got me in the door. Tempest could shut down their services tomorrow without breaking my setup.

willglynn··on Rust 1.78: Performance Impact of the 128-Bit Memory Alignment Fix
The best treatment is at:

https://blog.rust-lang.org/2024/03/30/i128-layout-update.htm...

Note also that this involves LLVM, so clang < 18 had the same u128 behavior as Rust < 1.77/1.78.

willglynn··on Lithium-free sodium batteries exit the lab and enter US production
Large single family homes have 400A 1Ø 120/240V service, which is 96 kW peak or 76.8 kW for NEC's definition of continuous. Most have 200A service or smaller, which is half that.

What load do you imagine causes "most" homes to exceed 100 kW, and "some much higher"?

willglynn··on Radxa's SATA HAT makes compact Pi 5 NAS
Be aware that there's N100 boards with 6x SATA, 2x M.2 NVMe, and 4x 2.5GBASE-T around this price point. For example:

https://www.aliexpress.us/item/3256806198066931.html

The N100 processor offers 2-3x the performance and lots of additional PCIe lanes compared to a Raspberry Pi 5 despite having half the TDP (6W vs 12W).

willglynn··on Ceph: A Journey to 1 TiB/s
The hardware minimums are real, and the complexity floor is significant. Do not deploy Ceph unless you mean it.

I started considering alternatives when my NAS crossed 100 TB of HDDs, and when a scary scrub prompted me to replace all the HDDs, I finally pulled the trigger. (ZFS resilvered everything fine, but replacing every disk sequentially gave me a lot of time to think.) Today I have far more HDD capacity and a few hundred terabytes of NVMe, and despite its challenges, I wouldn't dare run anything like it without Ceph.

willglynn··on High-speed 10Gbps full-mesh network based on USB4 for just $47.98
In 2024 I would suggest deploying 2x25G instead, via e.g. MCX4121. Pricing is similar (<$30 NICs), but:

* 2x25G throughput is higher than 40G,

* 25G latency is lower than 40G,

* you can use 25G ports as 10G ports, and

* you can use DACs to connect 4x25G <=> 100G

That last point is particularly relevant given the existence of switches like the Mikrotik CRS504, providing 4x100G ports on 25W.

willglynn··on My 2023 all-flash ZFS NAS (Network Storage) build
-- if using `zfs send` to create the replica, which the author of the post is not.
willglynn··on The Cloud Computer
AWS Outposts are leased:

> You can purchase Outposts servers capacity for a three-year term and choose between three payment options: All Upfront, Partial Upfront, and No Upfront. … At the end of your Outposts servers term, you can either renew your subscription and keep your Outposts server(s), or return your Outposts server(s). If you do not notify AWS of your selection before the end of your term, your Outposts server(s) will be renewed on a monthly basis, at the rate of the No Upfront payment option corresponding to your Outposts server configuration.

https://aws.amazon.com/outposts/servers/pricing/

> You can purchase Outposts rack capacity for a 3-year term … either renew your subscription and keep your existing Outposts rack(s), or return your Outposts rack(s)

https://aws.amazon.com/outposts/rack/pricing/

There is no permanent purchase option.

willglynn··on Hackers increasingly abuse Cloudflare Tunnels for stealthy connections
> Furthermore, as Cloudflare Tunnel requires the installation of the 'cloudflared' client, defenders can detect its use by monitoring file hashes associated with client releases.

Is this effective? Presumably attackers could `go build` their own binaries to get equivalent clients with different hashes, or even combine the open-source `cloudflared` internals with a larger payload.

willglynn··on Two-thirds of North America at risk of energy shortages during extreme demand [pdf]
Residential power here for single family homes -- the type which could reasonably do what you suggest -- is almost always single phase 120/240V. As an upper bound, let's consider 400A service. (Most homes have services smaller than 400A, and even 400A service is typically delivered to a pair of smaller panels to keep conductor and busbar sizes manageable.) Such heaters would be considered continuous loads, reducing the 400A service to 320A of current. Resistive heaters are a linear load, so we can multiply 240V * 320A to get 76.8 kW at maximum.

Hitting 76 kW is wildly impractical. Exceeding 100 kW is nonsense.

willglynn··on O Holy Crap
It's not that simple. https://www.snopes.com/fact-check/exploding-pyrex/

> What's Undetermined

> Whether Pyrex switched from using borosilicate glass to tempered soda lime glass only after Corning sold the brand to World Kitchen in 1998.

…

> In a January 2011 article on glass bakeware, Consumer Reports stated that they were unable to determine exactly when major U.S. manufacturers (including Pyrex) switched

willglynn··on O Holy Crap
Corning invented a particular kind of borosilicate glass about a hundred years ago and called it PYREX™. They left the consumer goods market about twenty years ago, divesting the brand. Nowadays that name might refer to either borosilicate glass or to soda lime glass.
Page 1 of 5Next →