skysight-inc/HackerNews huggingface dataset:
This reminds me of some arcade games that had a "Suicide battery" onboard as a form of DRM.

A security key was embedded in these arcade board's processors which could correctly decode the rom. The key was backed by a battery. If the battery ran out, the key was lost forever so it was much harder for pirates to copy the rom.

See also:
https://en.wikipedia.org/wiki/CP_System_II
https://hackaday.com/2016/09/15/desuiciding-capcom-arcade-bo...
FTP is 50 years old
You can use “None” there, and set the default value in the function.
I agree that choice of language is important, but you cannot just consider the language in isolation.

I have spent almost four decades becoming better at writing C and I write much better programs in C than I do in any other language because of it, and if you asked me to write something very important today, I would trust the result more, if I wrote it in C, even if that were, on some objective scale, not the best language for the task.

With that said, a lot of my recent projects, I have chosen python3, which I am now, after some years of "toy-projects", starting to feel quite comfortable with.
Yes, recognizing fines as a cost of doing business is well recognized in corporate law.

These legal scholars even hypothesize that there might not be a big enough fine to deter illegal behavior from corporations. [0]

Your idea of escalating punishments doesn’t take into account corporate influence of legislation and regulatory capture.

[0] https://clsbluesky.law.columbia.edu/2020/03/18/the-cost-of-d...
I agree that the OOM killer is frankly irrelevant in this discussion (and a bad idea in the first place IMO, cue the "airplane company deciding which passenger to throw out the plane" argument).

But on the other hand in my experience with C and C++, languages which do allow explicit OOM handling, most applications either just crash when that happen (the `xmalloc` route) or attempt to recover but often really can't do much.

It goes even beyond programming languages. Very few environments deal nicely with near-OOM conditions. My Linux desktop becomes effectively unusable if I start aggressively swapping. And technically at this point as long as I have swap I'm not literally out of memory.

My general point is not that I don't think Rust would benefit from allowing the developer to explicitly handle OOM conditions, it's more that the vast majority of applications are not written to gracefully degrade in these conditions anyway, and if the only handling you do is effectively `alert("out of memory!"); exit(1);` it's really not worth bothering with it.

On the other hand for the minority of applications that want to do something more meaningful on OOM you probably want to take the time to design some ergonomic system that won't litter the code with boilerplate, i.e. you probably don't want every single Vec and String and basically every single facet of the standard API that can allocate behind the scenes to return a `Result<_>`.

I'm sure there's something to do, but I think the Rust devs are right not to rush it given that there are so many other features left to implement.
My main issue is that people writing Java (or for the JVM) because of their backgrounds (app-level code printers) almost completely disregard how that code works on the JVM, at scale, in a highly responsive and/or high throughput service. You can't just use a big, "safe bet" framework like spring, which taints EVERYTHING in that project, write a simple REST API and then do heavy work "in the background" without side effects.

"Running Java" requires detailed system engineering / ops expertise specific to how the JVM works and can be tuned, and all too often, how specific frameworks internally pile their abstractions on top of each other. Problem is, a modern "Java app" is a pile of large frameworks and libraries.

As a system engineer, I HATE Java applications written by clueless programmers. They are difficult to handle and I often have to dig in and fix bad usage of framework features that somehow passed code review by equally clueless "senior" developers. I then get to spend a day to find out why this or that connection pool in there managed by this or that library does not handle its connections correctly, just to find the magic framework level variable that tunes that specific screw. Stuff of nightmares.

Every Java project is also __severely__ underdocumented. That's because even if you write documentation for YOUR code, the framework has books of documentation on ITS specifics, and includes high-level libraries which THEMSELVES have heaps of specific documentation. Climbing the tree until one arrives at actual standard library calls is like climbing into clouds and hoping to see the sun some day.
From reading the rest of the posts, I don’t see how OP could pass the standard FAANG behavioral STAR interview loops.
Comcast and friends are essentially utility companies. If the internet is "a bunch of tubes", they keep the tubes clear. They don't get involved at the content layer. Comcast may be a crappy provider in many ways, but they've never made the news for politically-motivated network traffic filtering.

FAANG on the other hand all get their hands dirty in deciding what content people get to see and what not, which would largely be a non-issue if there was mainstream competition, but there isn't, so rather than change their behavior and support/make/demand alternatives, consumers (including politicians) want Big Brother to step in, somehow forgetting that rarely solves anything and will simply consolidate more power with those who already have it.
I would have assumed cruise-ship workers would come on land for long port stays. And that larger cargo vessels wouldn't stay long. How long can you stay in one place before it counts as residency?
> A stock is valued based on the performance of it's actual profit generation.

I'm not sure that's the case any more. I mean we've seen billion dollar companies that just can't reach profitability.
I think the problem with the whole economy right now is wealth inequality. You have a lot of people really struggling, which keeps overall prices low, but the top 10% or so of earners have more money than they know what to do with. The pandemic cut my expenses by probably $1000/mo in addition to the huge bonus I got last year, I literally have money burning a hole in my pocket.

Where do I invest that cash? Equities are obviously overvalued as an asset class, and treasuries return basically zero, so people are buying up real estate and crypto instead, and using some cash on the side to gamble in the options market. But this really only exacerbates the wealth inequality problem.
Great blog! Thanks for sharing this blog.

Today's market is based on mobile users, Developing a mobile application helps businesses in covering a larger market segment. We are the best mobile app development company that thinks out of the box and build award-winning mobile applications globally.

Our mobile development team is capable of handling applications for such a market base and our expertise in building custom apps, sports, iOS apps, android apps which helps the clients to put their idea into a digital process,

To build a mobile application
https://www.sciflare.com/android-application-development/
I mean ... I get what he's saying but no, it's not well written and it's tautological. Since erudite literally means having a deep knowledge:

"I am sure many experts on X know X inside out"
I'm talking about a maven project I have to use sometimes at work. Let me walk you through all the shit I had to do:

- Install and set the right java version system-wide
- Copy some config files for the project system-wide (granted, this is not java specific, but still)
- Click in some IDE menu to enable some build settings
- Click in some IDE menu to install some "Lombok" plugin
- Click in some IDE menu to select the right jdk
- Click in some IDE menu to edit the run configuration:
- select main class
- paste program args
- paste env vars
- select right “Use classpath of module:” option
- Click in some IDE menu to fiddle with "Spring Loader path": modules, dependencies, reorder the dependencies (!)
- Click in some IDE menu to configure getting the actual logs
- Click maven-sync, rebuild-project multiple times, restart IDE until it suddenly works

The first guy who got it to work had to write a guide with screenshots!

I know you will say, this is all fault of whoever made this crap project, or my fault for not fixing it. However this was my experience, and it has been similar every time in my life that I had to touch some java project (although this last one is the worst).
I used Kotlin in a large codebase, and one of my only complaints is the compile times. We use Gradle for our build system, and relative to Java it is slooowwww. But we like the other benefits of Kotlin, so it's worth it in the end. But if they could get compile times down, it'd be the perfect language imo.
And then they decided to end that line of succession. .NET Framework 4.8 is the last version of the framework. I've started experimenting with converting code to .NET 5, but it's a rather large jump compared to any previous upgrade. Going from 2.0 to 4.0 had a few minor hiccups, but going to .NET 5 is basically a rewrite of the framework and runtime, and I'm not sure how old and new assemblies will co-exist. It feels like a fragmenting of the ecosystem, where a bunch of code will be stuck on .NET 4 forever, and other code will move to the .NET 5 and later.

I'm almost expecting a few years down the road, Microsoft will go back on 4.8 being end-of-the-line for .NET 4 and start releasing new minor versions of it because of all the customer code that can't be ported to .NET 5. Or maybe it will just end up like VB6. Stuff written in it still works, and will continue to work, but it's considered a dead language.
> Start killing drivers is nuts,

I don't disagree, just saying that its as nuts as killing random user-space programs on OOM.

"The web browser misbehaved, lets kill the pulseaudio daemon, and if that doesn't fix it, lets kill WiFi, and if that doesn't fix it, lets kill vim, and... "

FFS if some app tried to allocate too much memory just let the app know, or kill that app, but don't start randomly killing user-space processes.
This is why the idea for Rust in the kernel, for now, only targets drivers. Drivers are target specific, so you can use it only for drivers on architectures that are LLVM capable.
How do you distribute the initial coins with PoS? Like who gets the first coin? The person who gets the first one will also get all the subsequent ones since he controls all the supply until he sells? How would that even work?
Haven't companies like Google been fined enough in the past alerady and despite that they have made little effort to conform to the data privacy measures? Instead they have enabled alternative ways for tracking (eg. recent FLOC debate). Once the right to privacy (online or otherwise) becomes fundamental, such violations of privacy, consciously or otherwise, by the private companies will fall into illegal activities prosecutable with imprisonment like it is done atm for insider trading and so on. This will create a substantial sense of responsibility in everyone working on any aspects of user data.

The lack of a direct way to measure how much profit in $$ a company made in the past decade because of a single privacy violation makes it an arduous task for prosecuting agencies to decide the amount of fines and/or prison time.

A multivariate regression using do-calculus might help, could be an interesting graduate project.
I sometimes run into people who mistake the ability to Google well (a very teachable skill) with intelligence.

They often work in IT jobs, and for all their lives have heard how smart they were because of stereotypes around computers, science and nerds. Knowing how to use command line tools and put together a computer does not often equal extremely high intelligence.
IMO his rage posts usually still had great insightful points (cf "we do not break userspace"). The rage part was maybe unnecessary, but it wasn't the entire content of the emails.
Yeah all the guides use oxygen. Though it can run out or pack up.
"Undefined behavior" in a C++ context is a legalese feature of the ISO standard. The standard defines, very precisely, the behavior of a compliant C++ compiler. In places where behavior cannot be specified (for logical or practical reasons), the behavior is marked as "undefined".

In absence of a standard effectively every language construct is 'undefined behavior'.

Again, look at Python for a vivid example of this. (We were discussing just this is a neighboring thread: https://news.ycombinator.com/item?id=26826158)

I have zero reason to believe that Rust won't meet Python's fate.

The Rust people don't have a standard and don't understand why they need one; in fact, their lack of standards is somehow touted as a benefit. Apparently, people think that if there is no standard for "defined" and "undefined" behavior that everything is "defined" by default.

(They're absolutely wrong, of course; it's actually the opposite.)
Opting your site out of FLoC is good advice.

Using and promoting the use of Firefox is better/complementary advice.
It looks like OP could get jobs, the challenge was not quitting them.
The mystery is the identity of the man.
The only punishment that works is to take away their brand.

Which is also an appropriate punishment given that brands are about trust.
Right, and Froogle was the best shopping service in 2004. That's why we all still shop on Froogle to this day.
It helps when you see that this article is actually an excerpt from a book, without that knowledge the sentence doesn’t really parse.
@jonah, thanks for posting. I'm the guy that wrote those PDFs. The #1 thing that suprised me in doing the research is that the standard 911 system as defined by the FCC does not get the caller's coordinates from their cell phone like Uber does.

Now with that said, there are a lot of 911 call centers that use RapidSOS or other add on technology that do get the caller's coordinates directly from the caller's phone.

Of course a person calling 911 has no way to know beforehand whether the 911 call center handling their call will be able to get their coordinates via technology. That is the reason I urge everyone to have some way to use their phone to get their coordinates and the equally important accuracy value. Use a compass app, use FindMeSAR (I am developer) or use something else. I don't care. Instead, the important point is that you use 'something instead of nothing'.
The nice think about RHEL/CentOS is, that their kernels have stable ABIs (kABI). That allows for third parties to provide binary kernel modules, and the OpenZFS project actually provides the kABI-kmod tracking repo, so you can have an installation without any developer tools installed (which I prefer). So the problem wasn't really with kernel modules, the problem was the integration with the system, and nobody really cared - the above mentioned issue is still open, 2 years later.

Another nice thing about CentOS is, that it was supported for 10 years. Debian is supported only for 3. It tkaes 5 years for Synology to get a new release done, so they also do have kinda-long term support.
I can't imagine this working out tbh.

You could always ask first for a FLoC Id and then ask for the JS things, it's a dynamic language and there are always corss-domain redirects with tracing in url Id's.

Also some of them are very fundamental parts which are not at all thinks "you need to ask for". Like Chromium is a serve offender when it comes to accidentally providing unnecessary identifiable information. E.g. my Chromium user agent string is more identifiable then the Firefox one, the canvas fingerprints are way worse. There are additional attack vectors like list of plugins, some with names containing way to much information.

Also just combining things like Language + TimeZone + User Agent are probably enough to narrow down a FLoC group from multiple thousand to just a view hundred or even less users if you are not in the US/China/India.
(Or if you limit yourself to HTTP headers: user agent header + accept lang header + accept header + accept encoding header).

Also don't forget you have a fixed Ip address as long as you don't to VPN perma-bouncing.

IMHO all the "fixes" are trying to fix a massive hole with a few thin sheets of paper, i.e. at best it will look fixed, for a short moment. But it's not fixing anything.

Lastly this doesn't change the point that this basically makes sure Google stays in it's pseudo monopoly position. Tbh. independent of privacy this should be shut down by courts handling problematic monopolies.
Let’s all shed a tear for the billionaire founders of slack and dropbox, if it wasn’t for Microsoft they’d have 10 billion each instead of 1-2 billion. Poor Drew, poor Stewart, the world has been cruel and unforgiving to them.

Have you considered that perhaps file storage and chat rooms aren’t innovative ideas that deserve massive multi-billion dollar rewards?
>the Python community is at least half composed of amateurs.

or, even worse, scientists.
My other favorite example in Film is The Lord of the Rings. Especially in the first movie with the theme for the fellowship. It starts out as some single French horns and becomes this great theme when the complete fellowship walks the iconic scene over the mountains towards Moria. Then in Moria we hear it the last time played in full when it abruptly stopps. After Gandalf fell so does the theme. It’s beautiful done.
This is the new face of government control of the media. Turns out grassroots support can be faked. And of course, as we know from Amazon, corporations do it too.
> In other words, the Go team decided to make executable files larger to save up on initialization time.

I mean... Im genuinely curious if this is a "we have extra engineering resources and can explore/complain about this" or "we have a client who is running cockroachdb and can't handle a 172mb binary install for a database server".

Is there really someone out there who installs Cockroach (a global distributed auto-sharded database) and thinks twice about 172mb of disk space?

Sure, it'd be nice to have smaller binaries but outside of some embedded applications Go's binaries sizes are well within the nothing-burger range for most compute systems.
> OpIndia is an Indian right-wing news portal founded in 2014 by Rahul Raj and Kumar Kamal. The website has published fake news and anti-Muslim commentary on multiple occasions, including a 2020 incident in which it falsely claimed that a Hindu boy was sacrificed in a Bihar mosque.

> OpIndia is dedicated to criticism of what it considers "liberal media", and to support of the Bharatiya Janata Party (BJP) and Hindutva ideology. According to University of Maryland researchers, OpIndia has shamed journalists it deems opposed to the BJP, and has alleged media bias against Hindus and the BJP. In 2019, the International Fact-Checking Network (IFCN) rejected OpIndia's application to be certified as a fact checker. IFCN-certified fact checkers identified 25 fake news stories and 14 misreported stories published by OpIndia from January 2018 to June 2020.

https://en.wikipedia.org/wiki/OpIndia
This was already shared yesterday. See top comment.

https://news.ycombinator.com/item?id=26812047
Wait ten more years and Rust will become one of these 'said languages'. (Maybe even faster; the Rust people make it their principle to never learn from others' mistakes. There is no way they won't repeat them.)
Couldn't the dark bytes just be shipped as a separate file - for those who need it?
In Polish the mapping letters->sounds is pretty simple, and nobody asks kids to pronounce a word (because anybody can do it after learning the general rules for a few weeks).

But the mapping sounds->letters isn't as obvious, because there's some tech debt there (ch == h, ó == u, rz == ż or sz depending on the preceding letter).

So if you know how the word sounds you're not always sure how it's spelled, but if you know how it's spelled you always know how it sounds.

In English the mapping is non-obvious both ways.
And with what are you smoking it? Pure?
That and an attempt by companies to continue a business model that is expressly illegal under the GDPR. If a company relies on user-tracking with assumed consent, being required to get affirmative and freely given consent tanks their income. And that's perfectly okay and reasonable for laws to do. Business models are not a right.

But, those companies then have a choice. Option A: Accept that their business model relied on widespread stalking of their users which was never acceptable and is now illegal, and significantly change the business. Option B: Pretend they didn't notice, throw up a pop-up ignore the "freely given" requirement for consent, and hope nobody calls them out on it.

Option B is a lot easier for scummy companies to do, and the prevalence of opt-out banners with assumed consent and dark patterns shows how many companies went that route.
or as the saying goes, "you can write java in any language".
Many clients have set up VMs for us in their infrastructure years ago, when we did on-premises. We'd access them through their VPN and deploy, upgrade, and maintain.

The license aspect was taken care of in the contracts (mid six-figure range) we had with them. Bear in mind these were bespoke, turn-key, data products where we'd be with the client to define their problem, decide if machine learning would be useful, interface with their systems to get data, build models, and build an application for their people with all the bells and whistles. From vague problem, to data, to ML models, to "The JavaScript".

I've been looking at https://www.replicated.com and KOTS, Kubernetes Off-The-Shelf Software, https://kots.io recently. There's too little documentation or material about how it all works.

Here's a video where they show an installation of Sentry, with a license upload: https://youtu.be/pQX6AbuI2ME

Additional resource: https://www.enterpriseready.io
Meeting C++ survey results: C++ Tooling
There are new methods returning a Result instead of panicking, slowly being implemented for all allocating collections in the standard library.

see https://github.com/rust-lang/rust/issues/48043 and https://github.com/rust-lang/rust/pull/80310
Yeah, the whole page reads like a draft
From a later email in the thread:

> There's a philosophical point to be discussed here which you're skating
> right over! Should rust-in-the-linux-kernel provide the same memory
> allocation APIs as the rust-standard-library, or should it provide a Rusty
> API to the standard-linux-memory-allocation APIs?

Yeah, I think that the standard Rust API may simply not be acceptable
inside the kernel, if it has similar behavior to the (completely
broken) C++ "new" operator.

Having done C++-in-the-kernel work, this is precisely right. That work required not only abandoning the C++ memory model, but also implementing a separate standard library that complied to kernel-space limitations/requirements.
And this is exactly the problem with Bitcoin. Adding more computational power to the network changes absolutely nothing in terms of the amount of mining completed per unit time. Instead it just shuffles around the chances of being the one to succeed at a block.

This is something that I'm not sure many people actually understand. Because in the physical world, increasing your energy input into mining will result in more output of the resource you're mining. Adding another excavator to your mine doesn't reduce the effectiveness of every other excavator in the world.