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

You might find your rhetorical success is improved if you, in general, say what you mean instead of what you don't mean.


If I'm a US citizen what right does ICE have to my tax information? The article states that ICE made a request for 7.3 million taxpayer's information, citing ongoing criminal investigations. Given how this administration rides roughshod over the law it beggars belief that this dragnet hasn't also caught up "law abiding" people as you say.

But, more importantly, there's an underlying assumption to your question: the sharp end of the law only strikes people that have done wrong _and_ the laws won't shift to put you on the wrong side of it. Authoritarian governments redefine legality at whim. Compliance is a moving target: think of all the law abiding Japanese folks that were suddenly in internment camps in 1942.

In the United States we have historically accepted the dictum that the best government is that which governs the least. For a good, pragmatic reason: the concentration of power is corrupting to those that wield it and the actions of a government of the corrupt will not be square to the will of the people. Limiting what the government can do, especially those parts that seek to act in secret, is in the service of liberty for all.


At least in the Bay Area it’s pretty common for people to park their car on the curb in front of their house and run a charge cable out over the sidewalk. Mostly just works.


*Parts of the Bay Area.

There are parts where you'd have people drive through the neighborhood at 3am and yank/cut the charging cables for the copper in them.


Alright, even if I were to grant this without reservation this doesn't get us back to the GP's assertion that electric vehicles are luxury cars for a select segment of the population.


“C++ Templates are Turing Complete” by Todd L. Veldhuizen has the history of discovery, early elaboration.



It's a fun route! If you give it a shot and have a bike that fits you good you'd be amazed at how quickly you can build up fitness for cycling, heavy or not.


My wife has a sense of fashion and I do not. When we go out she's always dressed precisely and, left without guidance, I look like a hike might break out at any minute.

Relwen's excellent. Sturdy clothes with utility -- my concern -- good looking for a variety of semi-casual to formal occasions. I wear their hunting jacket as a general purpose blazer.


> It's busy-work that provides no business benefit, but-for our supplier's problems.

I dunno, if I were paying for a particular quality-of-service I'd want my requests authenticated so I can make claims if that QoS is breached. Relying on public pulls negates that.

Making sure you can hold your suppliers to contract terms is basic due diligence.


It is a trade-off. For many services I would absolutely agree with you, but for hosting public open-source binaries, well, that really should just work, and there's value in keeping our infrastructure simpler.



At my university, performance. The CS department was clued into Linux development but also the Haskell world so darcs use among students was high. Our underpowered lab machines and personal devices struggled with darcs for reasons I no longer remembered and a group of us made use of mercurial for an OS project and had a rough go of it as the patch sets got more and more convoluted. Back in those days the core was C but a lot of the logic was Python which struggled on the memory constrained devices available. Some one of us learned about git trying to get into Linux kernel work, told the rest of us and it was just comically fast, is my memory. I spent a tedious weekend converting all my projects to git and never looked back, myself.

Some years later Facebook did a lot of work to improve the speed of mercurial but the ship had sailed. Interesting idea though.


I agree. If we were to try and pin a thought process to an additional level of systems programmer it’d involve writing an allocator that’s custom to your domain. The problem with garbage collection for the systems’ case is you’re opting into a set of undefined and uncontrolled runtime behavior which is okay until it catastrophically isn’t. An allocator is the same but with less surface area and you can swap it at need.


Meanwhile an OS uses the filesystem for just about everything and it is also a garbage collected system ...

Why should memory be different?


I'm not tracking how your question follows. If by garbage collection you mean a system in which resources are cleaned up at or after the moment they are marked as no longer being necessary then, sure, I guess I can see a thread here, although I think it a thin connection. The conversation up-thread is about runtime garbage collectors which are a mechanism with more semantic properties than this expansive definition implies and possessing an internal complexity that is opaque to the user. An allocator does have the more expensive definition I think you might be operating with, as does a filesystem, but it's the opacity and intrinsic binding to a specific runtime GC that makes it a challenging tool for systems programming.

Go for instance bills itself as a systems language and that's true for domains where bounded, predictable memory consumption / CPU trade-offs are not necessary _because_ the runtime GC is bundled and non-negotiable. Its behavior also shifts with releases. A systems program relying on an allocator alone can choose to ignore the allocator until it's a problem and swap the implementation out for one -- perhaps custom made -- that tailors to the domain.


An OS has the job of managing resources, such as CPU, disk and memory.

It is easy to understand how it has grown historically, but the fact that every process still manages its own memory is a little absurd.

If your program __wants__ to manage its own memory, then that is simple: allocate a large (gc'd) blob of memory and run an allocator in it.

The problem is that the current view has it backwards.


An OS would have a very hard time determining whether a page is "unused" or not. Normal GCs have to know at least which fields of a data structure contain pointers so it can find unreachable objects. To an OS, all memory is just opaque bytes, and it would have no way to know if any given 8 bytes is a pointer to a page or a 64-bit integer that happens to have the same value. This is pretty much why C/C++ don't have garbage collectors currently.


> To an OS, all memory is just opaque bytes, and it would have no way to know if any given 8 bytes is a pointer to a page or a 64-bit integer that happens to have the same value.

This is like saying to an OS all file descriptors are just integers.


That's because they are :P

I doubt GC would work on file descriptors either. How could an OS tell when scanning through memory if every 4 bytes is a file descriptor it must keep alive, or an integer that just happens to have the same value?

Not to mention that file descriptors (and pointers!) may not be stored by value. A program might have a set of fds and only store the first one, since it has some way to calculate the others, eg by adding one.


A gargbage collector need not be conservative. Interestingly linux (and most posix compliant unices I guess) implements, as last resort, an actual tracing file descriptor garbage collector to track the lifetime of file descriptors: as they can be shared across processes via unix sockets (potentially recursively), arbitrary cycles can be created and reference counting is not enough.


The OS already does that, though? Your program requests some number of pages of virtual memory, and the OS uses a GC-like mechanism to allocate physical memory to those virtual pages on demand, wiping and reusing it soon after the virtual pages are unmapped.

It's just that programs tend to want to manage objects with sub-page granularity (as well as on separate threads in parallel), and at that level there are infinitely many possible access patterns and reachability criteria that a GC might want to optimize for.


AFAIK, no OS uses a "GC-like mechanism" to handle page allocation.

When a process requests additional pages be added to its address space, they remain in that address space until the process explicitly releases them or the process exits. At that time they go back on the free list to be re-used.

GC implies "finding" unused stuff among something other than a free list.


I was mainly thinking of the zeroing strategy: when a page is freed from one process, it generally has to be zeroed before being handed to another process. It looks like Linux does this as lazily as possible, but some of the BSDs allegedly use idle cycles to zero pages. So I'd consider that a form of GC to reclaim dirty pages, though I'll concede that it isn't as common as I thought.


> An OS has the job of managing resources, such as CPU, disk and memory.

The job of the OS is to virtualize resources, which it does (including memory).


> Meanwhile an OS uses the filesystem for just about everything and it is also a garbage collected system ...

so many serious applications end-up reimplementing their own custom user-space / process-level filesystem for specific tasks because how SLOW can OS filesystems be though


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: