1,698 karma · joined January 24, 2011
I pirate everything.
[1]: https://lean-lang.org/doc/reference/latest//The-Type-System/...
Sites like Etsy implement this dark pattern in ways intentionally intended to make CSS-based blocking of injected sponsored products difficult to block. The arms race between user agents and corporate manipulation continues, and corporate web designers will use every tool available to subject users nonconsensually to their preferred experience. This is why I consider it a net loss for users to add functionality to the "web platform". The corporation is your enemy and they're well-funded.
EDIT: as a parting shot, dhall is another non-Turing-complete language in common usage, but its claim to fame is that it gets used in places that arguably shouldn't be doing any computation at all.
- list nodes may have one child
- tree nodes may have multiple
- DAG nodes may have multiple parents though restricted by topological ordering
- graph nodes may have multiple parents from anywhere in the collection
Lists and trees can be fully captured by sum and product types, but extending this representation style to DAGs and graphs doesn't work--you either get inefficiency (for DAGs) and then infinite regress (for cyclic graphs) attempting to continue the "syntactic" style of representation, or you need to adopt an "indirect" representation based on identifiers or indices or hash consing.
The Right Thing is to make system call submission atomic and asynchronous, only waiting on completion by explicit choice, and remove signals entirely in favor of buffered message-passing IPC. This is basically the world we're approaching with io_uring and signalfd, except for ugly interaction with coalescing and signal dispositions (see https://ldpreload.com/blog/signalfd-is-useless), and the fact that many syscalls still can't be performed through io_uring.
If UNIX had a better API for process management, people wouldn't see signals as necessary, but that's its own can of worms with its own Linux-specific partial fix (pidfd) and genre of gripe article (e.g. https://news.ycombinator.com/item?id=35264487).
This phone might be perfectly nice, but it's a "Linux phone" in a marketing sense only; nobody has properly ported Linux to it, and you'll be stuck with an ancient kernel full of proprietary userspace blobs.
I'd love to hear otherwise, but I've seen this pattern repeat a number of times (the Gemini PDA and successors, various "secure" phones, essentially all the Ubuntu Touch devices https://phone.docs.ubuntu.com/en/devices/devices, etc.) and those who do put in the critical driver work are in-touch enough to know it's worth being explicit about upfront.
Linux is slowly moving toward capability-centric design with more and more comprehensive namespacing and file-descriptor-based interfaces to things like pidfd and memfd, but there's still a long way to go before we can jettison ambient authority such as the filesystem entirely. Meanwhile, Google's Fuchsia may deploy a capability-based operating system to the masses, but it will likely only be used to sandbox applications written for Android anyway. The real potential of capabilities is to simplify the interface of a power-user operating system by eliminating the race conditions, side channels, privacy leaks, firewalls, virus scanners, and unix-style permissions from developers' and users' day-to-day experience completely.
There will still be memory-safety zero days, of course, until we abandon languages where humans are statistically incapable of writing memory-safe code.
On the other hand, a related paper on the same system by a subset of authors is available: http://dl.acm.org.sci-hub.tw/doi/book/10.5555/866299
But TASK_KILLABLE is not used in most places it should be. Patching your (least) favorite driver to use TASK_KILLABLE could be a good entry point to contributing to the kernel.
This older, tangential HN discussion and the comments on LWN have a bit more info: https://news.ycombinator.com/item?id=18056946
Markets only matter to capitalists. Real hackers share with each other to make things happen that markets do not comprehend. Whether this project will be a success, only time will tell, but it has nothing to do with the market.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
Reboot and cross your fingers.
Rebooting will terminate the process tree in which the environment has been modified, making this line a no-op. Please take the time to understand the commands you run before suggesting them to others.The prevalence of articles about things that aren't software or hardware hacking, combined with the site's increased popularity lowering the bar for technical content to be considered worthwhile, and its occupancy of a critical position in the cultural namespace ("hacker news" is a really good name but not descriptive of the actual focus of the site--the hacker ethic is anticapitalist rather than neoliberal), make HN a really tragic institution these days.
By this definition, all C code has unsafe memory accesses. However, it is possible to define static analyses that can prove memory safety of some portions of C programs, and incorporating such a thing into C2Rust would allow it to generate more safe Rust and less unsafe Rust.
$ mpv --vo=drm *.gif