HNHacker News
TopNewBestAskShowJobs

matja

1,184 karma · joined December 29, 2018

https://github.com/matja
submissionscomments
matja··on curl > /dev/sda: How I made a Linux distro that runs wget | dd
> How do you unmount your OS’s disk while keeping the OS running to be able to overwrite itself?

I went down a similar rabbit-hole myself, with the goal of safely replacing the Linux installation on a disk that a machine is already running from (e.g. replace a VPS's setup image with one of your own) without needing a KVM-style remote access tool to the console.

The problem there is if you directly modify the disk when a filesystem is mounted on that disk then all bets are off in terms of corruption of the filesystem that's already on there and also the filesystem(s) you're writing over the top.

My solution was to kexec into a new kernel+initramfs which has a DHCP client and cURL in it - that effectively stops any filesystem access while the image is being written over the disk, then to just reboot.

matja··on My Homelab Setup
How have you measured the power usage/cost? That seems like a incredibly high price for electricity, similar to a 600W constant load in my part of the world.
matja··on UUID package coming to Go standard library
In distributed databases I've worked with, there's usually something like a B-tree per key range, but there can be thousands of key ranges distributed over all the nodes in the cluster in parallel, each handling modifications in a LSM. The goal there is to distribute the storage and processing over all nodes equally, and that's why predictable/clustered IDs fail to do so well. That's different to the Postgres/MySQL scenario where you have one large B-tree per index.
matja··on UUID package coming to Go standard library
To minimize the storage space while having a URL-safe representation, yeah you'd want to serialise/deserialise on the boundary of presenting it to API consumers. I think the same for any ID that has an efficient binary representation as well as needing to represent it in ASCII.
matja··on UUID package coming to Go standard library
> UUID versions 1, 2, 3, 4, 5 are already outdated.

Interesting comment, since v4 is the only version that provides the maximal random bits and is recommended for use as a primary key for non-correlated rows in several distributed databases to counter hot-spotting and privacy issues.

Edit: Context links for reference, these recommend UUIDv4:

https://www.cockroachlabs.com/docs/stable/uuid

https://docs.cloud.google.com/spanner/docs/schema-design#uui...

matja··on UUID package coming to Go standard library
You aren't supposed to store the hyphens, and that's the same for all versions.
matja··on 10% of Firefox crashes are caused by bitflips
Doesn't sell as well as a beautiful citrus blush milled aluminium case.
matja··on 10% of Firefox crashes are caused by bitflips
I have a machine with a 6 year uptime that was slowly accumulating single bit error corrections. The EDAC counter mysteriously stopped at 308 last year, and hasn't changed since, so I wonder if a bitflip in the counter circuit made it stop...
matja··on 10% of Firefox crashes are caused by bitflips
You can only detect what you measure. Are these big-data analytics processes running multiple times to detect differences?
matja··on 10% of Firefox crashes are caused by bitflips
The actual RAM chips on a ECC DIMM are exactly the same as a non-ECC DIMM, there's just an extra 1/2/4 chips to extend to 72 bit words.

The main reason ECC RAM is slower is because it's not (by default) overclocked to the point of stability - the JEDEC standard speeds are used.

The other much smaller factors are:

* The tREFi parameter (refresh interval) is usually double the frequency on ECC RAM, so that it handles high-temperature operation. * Register chip buffers the command/address/control/clock signals, adding a clock of latency the every command (<1ns, much smaller than the typical memory latency you'd measure from the memory controller) * ECC calculation (AMD states 2 UMC cycles, <1ns).

matja··on Building a new Flash
I think it is still more likely that a project can be improved if everyone has access to the source code vs not having access to any source code. Are there counterexamples to that?
matja··on Intel's make-or-break 18A process node debuts for data center with 288-core Xeon
Intel seem to be deliberately hiding the clock frequency of this thing, the xeon-6-plus-product-deck.pdf has no mention of clock frequency or how LLC is shared.
matja··on Facebook's Fascination with My Robots.txt
Did you try adding a Cache-Control response header?
matja··on Linuxulator on FreeBSD Feels Like Magic
> it took 5–10 minutes just to open a file

Yeah, I don't think the architecture is going to help a bad storage/network setup too much. I'd be troubleshooting that before jumping machines/OSs.

matja··on gRPC: From service definition to wire format
> As it occured to me, gRPC could optionally just serve those .proto files in the initial h2 handshake on the wire

Do you mean the reflection protocol, or some other .proto files?

matja··on Resizing windows on macOS Tahoe – the saga continues
Did macOS support that at some time in the past?

I've used Linux as my daily OS for 20 years and got so used to alt-right resize and alt-left drag that the macOS and Windows way of actually needing to move my mouse to the corner or edge of a window feel almost barbaric in comparison.

I still have found no way free equivalent on macOS.

matja··on A few CPU hardware bugs
I like this theory - I can totally imagine some big spreadsheet of processor model names where someone copy/pastes the model name to some janky firmware-programming utility running on an off-the-shelf mini PC on the manufacturing floor, implemented as a "temporary fix" 5 years ago, every time the production line changes CPU model.
matja··on Microsoft forced me to switch to Linux
Windows 11 24H2 added a dependency on the POPCNT instruction, causing CPUs that don't have it - which were otherwise fine, to fail to even boot Windows.

What will be the next instruction/ISA extension that is only supported since Intel 11th Gen that there will be a hard dependency on? Any bets?

matja··on Microsoft forced me to switch to Linux
If you bypass the installer minimum hardware checks then you're making a gamble that the official statement from Microsoft won't affect you:

> If Windows 11 is installed on ineligible hardware, your device won't receive support from Microsoft, and you should be comfortable assuming the risk of running into compatibility issues.

> Devices that don't meet these system requirements might malfunction due to compatibility or other issues. Additionally, these devices aren't guaranteed to receive updates, including but not limited to security updates.

matja··on Microsoft gave FBI set of BitLocker encryption keys to unlock suspects' laptops
RIPA 2000 part III section 49
matja··on Command-line Tools can be 235x Faster than your Hadoop Cluster (2014)
This supports up to 48x 256GB DIMMs over two sockets, which I believe is the maximum that EPYC Turin supports: https://www.asrockrack.com/general/productdetail.asp?Model=T...
matja··on Independent Guest Virtual Machine (IGVM) File Format
It would be nice to see a design document where the alternatives were considered and why this was invented to fill a gap. Otherwise, this just looks like reinventing the 20+ year old libvirt XML VM format.
matja··on Ask HN: One IP, multiple unrealistic locations worldwide hitting my website
That specific IP is detected as anycast by bgp[dot]tools , which is likely as it is announced from AS13335, so backbone routers will choose the best route back to the multiple places it is announced from. If you traceroute such an IP from multiple geographic locations, you'll probably notice that the RTT is implausibly low from all locations (assuming a unicast announcement) - which is the benefit to anycast.
matja··on Raspberry Pi's New AI Hat Adds 8GB of RAM for Local LLMs
It's more about demonstrating what's possible on a Pi than expecting GPT-4 level performance. It's designed for LLMs that specialize in tiny, incredibly specific tasks. Like, "What's the weather in my ant farm?" ;)

The vision processing boost is notable, but not enough to justify the price over existing HATs. The lack of reliable mixed-mode functionality and sparse software support are significant red flags.

(This reply generated by an LLM smaller than 8GB, for ants, using the article and comment as context).

matja··on Why are my headphones buzzing whenever I run my game?
A point in screen space is a line in world space after inverse camera projection, so this way you get the line-to-closest-geometry test in O(1), after the overhead of needing to render the lookup texture first.
matja··on You can't fool the optimizer
You can fool the optimizer, but you have to work harder to do so:

    unsigned add(unsigned x, unsigned y) {
        unsigned a, b;
        do {
            a = x & y;
            b = x ^ y;
            x = a << 1;
            y = b;
        } while (a);
        return b;
    }
becomes (with armv8-a clang 21.1.0 -O3) :

    add(unsigned int, unsigned int):
    .LBB0_1:
            ands    w8, w0, w1
            eor     w1, w0, w1
            lsl     w0, w8, #1
            b.ne    .LBB0_1
            mov     w0, w1
            ret
matja··on Flight disruption warning as Airbus requests modifications to 6k planes
Perhaps it's improving the checksum algorithm on network packets, or even ... adding one.
matja··on Free interactive tool that shows you how PCIe lanes work on motherboards
How can I contribute the data for the boards I own which are not on the site?
matja··on Why do we need dithering?
Dithering isn't only applied to 2D graphics, it can be applied in any type of spatial or temporal data to reduce the noise floor, or tune aliasing distortion noise to other parts of the frequency spectrum. Also common in audio.
matja··on Avoid 2:00 and 3:00 am cron jobs (2013)
Seems to me the real problem here is not the timezone (there's legitimate business needs to run something daily at a specific localtime...) but having multiple instances of a cron job that overlap, in which case it should wait until the previous is done or not start at all. At least prefix a job with "flock -n" if it doesn't/can't handle that.
← PreviousPage 4 of 13Next →