skysight-inc/HackerNews huggingface dataset:
> implementations MAY dedicate a portion
of the node's most significant random bits to a pseudo-random
machineID which helps identify UUIDs created by a given node. This
works to add an extra layer of collision avoidance.

> This machine ID MUST be placed in the UUID proceeding [sic] the timestamp
and sequence counter bits. This position is selected to ensure that
the sorting by timestamp and clock sequence is still possible.

This guarantees uniqueness at a global level, as long as each machine doesn't run out of sequence counters within a given timestamp.

But why must that machine ID must preceding the timestamp & sequence counter? Why not have it after? (or does "proceeding" has a meaning I'm not aware of? I read it as a typo for "preceding", but I'd assume it should be succeeding, especially given what the next sentence says)

My intuition is range requests based on timestamp would work better if the machine ID is after, not before... If before, it seems it would violate the key requirement in abstract of "sortable using the monotonic creation time".

(It's already violated since each machine in distributed system doesn't have the same clock so "creation time" is all relative. But for purposes of analytics, such as querying the "last 24h", having the timestamp be at the beginning seems preferable, since range queries can be done easily)
The requirement from the post is for a non-empty list of file paths - your Cache representation only contains a single item so is obviously not suitable. In case it's not obvious: head is not the only operation that might be required and the author isn't using (NonEmpty a) as a wrapper around a single value. The requirements for the configuration are stronger than those provided from the input and the configuration type used by the program encodes that property in the type. That property is then enforced globally throughout the entire program and only needs to be checked once at the top level.

> The above is not best-understood as a "parser". The above is validating the input

Yes the example you gave is an example of validating in the author's formulation because it does not enforce the property it's checking in the return type. You check the list is non-empty but this information is not available anywhere else in the program. A parser would return a (NonEmpty String) as its result since that does enforce the constraint.

> Trying to redefine "parsing" to mean "the result has a different return type"

That's not a redefinition of parsing, that's what a parser is.
Or rather 'knowingly'. If you didn't intend it, but you find out (e.g. user reports it), you should still bump major. If you consider yourself to actually be 'doing semver' that is. And even yank the minor breaking release I suppose.
Yeah that's a reason in most languages to go with the separate package names.

As a maintainer I'd much rather not have to put in that extra work just for the tiny minority of my users who might someday want to run two versions of my library in the same project.
Which employees? The ones who aren't Chinese citizens and aren't located in China? What does China state security have to do with them?
I'm giving notice today, in order to join a startup. for much the same reasons as you.
My critique is on the terms of the project as presented here. I didn't choose a random link. I clicked on one that was presented.

The page aggregates visuals. Its design amplifies the visual effects of low budget.

Even straight to video movies get boxcover art.

But your comment prompted me to look at my Youtube app. There's a lot of effort in the home page river to create visual coherence to solve the same problem.

Some of it appears to be color grading. Some appears to be sequencing similar palettes adjacent. Some is breaking up palette transitions with ads using colors that help.

A big part of it is using a title screen with text over the image...after looking at the desktop browser page.

An avant garde art project can seek to create a new form of visual literacy. That's not what this is. There are visual conventions paving the happy paths.

People might watch a drama with purple lighting without caring. But if you ask them if they want to watch a drama with purple lighting, they will think it a strange question.
> extreme events become more extreme

This is the beef* I had with Cliff Mass when he said the June heat wave in the Pacific Northwest had nothing to do with climate change, it wasn't an extreme event, it was just natural variation. The temperatures may not have been more extreme than known outliers, but what he didn't say is much more important: How often would natural variations lead us to expect events like it and how long would they last?

You can't just say "oh, this is just a typical thing that happens once in a hundred years" when it's happening every year.

* I have lots of other beefs with Cliff, but they aren't relevant to this discussion.
Honest question: why does apple think this will help anything? From what I've read, it looks like the sheer volume of the problem out weights virtually any solution (within reason) [1].

[1] https://www.nytimes.com/interactive/2019/09/28/us/child-sex-...
If you only have one thermostat getting a "smart" one doesn't really add much unless you live alone and want to take advantage of the presence features (it knows when you're home) in order to save some money.

However, if you have more than one thermostat (e.g. separate downstairs and upstairs air conditioning/heating) having a "smart" thermostat is awesome! I can change the temperature on both from my phone without having to go upstairs.

We also installed the additional sensors in various rooms in the house so I can control which zone gets used in determining the whole-house temperature (there's often several degrees variation between rooms in my house on hot summer days). The thermostats in my home were installed in terrible locations that don't reflect the temperature in places where people actually are so the remote sensors are fantastic.
You can use Typescript-to-Lua, which has static types over LOVE's full API and then transpiles to Lua.

https://typescripttolua.github.io/

https://github.com/hazzard993/love-typescript-definitions
At this point, I feel like the version numbering of semi-ver has lost all meaning.

I've been broken by every level of version bump. I've seen APIs that went from 1.0 -> 2.0 and really were only backwards incompatible because of a single method change.

I've seen countless major changes to method signatures from a 1.0 -> 1.1 bump.

I've even seen breaking API changes from a 1.0.0 -> 1.0.1 bump.

It seems like everyone has a different feeling on when those numbers should be rolled. That inconsistency makes it impossible really understand what an upgrade is going to do without tests.
> try to avoid putting comments inside a function body

This makes me sad. Think about others who will have to reverse engineer your code. Not every functionality should be split into a function, unless you want to add 10 layers of abstraction and misdirection.
So Oxford Uni and other academic institutes are now spreading misinformation. Ok got it.

And buying solar panels and upgrading to a hybrid or electric car which costs thousands is easier than replacing your meat burger with a plant-based meat burger. Makes total sense and lets ignore biodiversity and habitat loss while we're at it.

Why not do both?

Why not eliminate / reduce consumption of large scale dairy and meat products AND use renewable energy sources?

Surely you would agree doing both is actually even more impactful, no?
I'm from Helsinki but live in Berlin, and drive between the two somewhat regularly. For this trip you essentially have two options - either via Denmark and Sweden, or Poland and the Baltics. You need to take a ferry to reach Finland regardless of which route you pick.

The experience and emissions differ pretty dramatically. Intuitively you might think the total emissions would be lower for the Baltic route because of the significantly shorter ferry trip, but this is more than negated by how dirty the grid is in Poland and Estonia. Polish electricity production is about 100x as polluting as Swedish electricity.

The Nordic route also wins in terms of infrastructure. There are plenty of Superchargers as well as non-Tesla charging stations, located at highway rest stops with good services. Making the 1000km+ drive in one day isn't a big deal at all, and I find that plugging the car in for the time it takes to go to the restroom and grab some food is enough to continue the trip.
Easy: instead of "./the-script.sh", I run "bash the-script.sh".

You can still type "bash" to get bash.
A bit OT, but what are you using for LDAP?
Maybe just wrap your text into <pre> tags? :)
Did exactly that move (FAANG to founding a startup back to the same FAANG, right as everthing was melting down with COVID). Some advice based on it.

Leave on a high note. My last year was kinda miserable for me because I didn't really want to be there, but I was determined to deliver some value for my department and complete some projects successfully. Paid off because when I came back, my skip lead was now the senior VP in charge of signing off on offers, and he remembered my name and was determined to get me back into the company. Also had a bunch of other people I'd helped out in that last year pulling for me to come back.

Learn all you can while you're at the FAANG - there are many opportunities there you won't get at your own startup (and vice versa). I think I did that well on the technical side, but I wish I'd accepted management opportunities when they were offered to me. Also do your best to understand the organizational politics and incentives acting on big companies; they often set the agenda for smaller niches in the tech world.

Make a lot of contacts, add them all to your LinkedIn, and then maintain them once you leave. I did the first two well, the third not so well. People move on while you're gone, so this maintains a network that may be at other up-and-coming startups.

I stayed away too long (6 years). If the startup isn't working out after 2-3 years, call it and jump back into whatever the hot company is of the moment. Many FAANGs will let you re-enter without re-interviewing, at the same level you left at, if you do it within about 2 years.

You might be surprised how much you retain going back into a big company (at least at Google and Apple, and I suspect the other FAANGs). I kept my LDAP, recurring calendar invites (!), pending code reviews (!!), doc ownership, bug ownership, code submission history, vacation seniority, language approval powers, familiarity with the bug & code review systems and most of the internal tech stack, company credit card (I returned the physical card when I left, but when I returned I had the same account and same transaction history), equity award account, and a lot of relationships with coworkers who were now at the VP/director level. I lost logs access, code ownership, and unvested equity from my first time around. It was sort of like stepping into a time capsule, where I come back and have code reviews and calendar invites waiting for me from teammates that long since left the company.
Hah - I've been about 50/50 audio and eye books for him.
More concretely, scrolling up I see that the tweeter says their threshold for declaring 1.0 is when they « feel that the API will only need to be extended in a backwards compatible way. When taking care not to break people's code is not a burden. »

I don't think that's the general understanding we should be aiming for.

Rather I think a better threshold (and the one implicit in semver's definition) is to declare 1.0 when the API is stable enough that you're willing to go to the effort of tracking whether the changes you're making are backwards-compatible.

Otherwise we're discarding useful information in the meantime.
> The final step of this is going to be detection of terrorist materials,

I don't think so. So many surveillance laws were passed with the stated intent of wanting to use them in cases of the most serious crimes and terrorism.

Now they are being used against your run of the mill criminals and innocent citizens.
Tweet author here. Please don’t @ me. I was only half serious.

The context was re Python libraries. I increase the major version when I revise the API, even if it’s single method. To my mind, that is a failure on my part to come up with the perfect API on the first pass. Of course it’s going to happen and I don’t lose sleep over it.

I’m not dissing any project that doesn’t start with a 1.!
In the UK at least, I think the thing with electric cars isn't so much the price (leafs are pretty cheap-ish, seems like a perfectly good A->B car) but that you basically need land or a safe area to be able to charge them. That's what makes them a toy for the rich at the moment.
Same here.

I knew about Coney Island but I had never made the connection between Coney and Rabbit, I thought it was just a name.

Curiously there is another Isla Conejo / Rabbit Island near here too.

From Wikipedia:

It may be because when the Dutch people arrived in New Netherland, this island had many rabbits, so they named it 'Konijn Island', which became 'Coney Island', using the archaic term for rabbit in English.
The first thing I looked at, the Google Nest Protect says:

Microphone: Device: Yes
Tracks Location: Device: Yes
Biometric: Voice recordings

Huh? There's no GPS, no mic (at least, there are no voice based features, and teardowns I've seen haven't spotted a mic).

There might be reasons to not want one, for sure, but inventing reasons isn't a good sign.

Edit: I was wrong, ignore me.
yes. it's specific images. It's pointless and looks half-assed, but hey, they have the future to perfect it. This is only the watered down/tame version to get the foot in the door and cause a big commotion while still being able to keep plausible deniability. Once they do this a couple of times people will get tires and stop caring. That's when the scary stuff slips in.
Personally I think it's time for a Kubernetes fork. Let K8s get huge and change too frequently, but let's get a desktop/less-robust alternative going that doesn't change frequently at all.

The hope would be that we would stop trying to chase our tails keeping up to date with K8s, and instead we could maintain a more generic abstraction layer which could be applied to other PaaS/SaaS systems as well. You use the abstractions to separate the design from the implementation. The "desktop" implementation could be insecure, non-HA, non-robust, easy to install & maintain. The "cloud" implementation could be all the best practices. The containers would be the same, but the service definition, command-line tools, etc could all be different, and just be written to interface with the abstraction specification.

Obviously you still would need to completely test the hell out of the service in the cloud cluster before releasing to production, but the initial local development could be much faster when done locally in a simpler system. I think trying to replicate the cloud implementation locally is just asking for trouble, we know it will never match up.
The PhotoDNA algorithm is kept as a secret, so whatever Apple is describing can't be it. I wonder if they've managed to get NCMEC to re-hash images for them using the new algorithm, or are they using PhotoDNA data as the input for their algorithm.
I donate semi-regularly. Been using Thunderbird as my primary email client (almost) since its release. The installation has hundreds of thousands of mails across many folders, and yet, it is super fast and rock solid.
You're looking for Privacy Dashboard, which is available as a 3rd-party FOSS standalone app[1] or built into Android 12.

[1] https://github.com/RushikeshKamewar/PrivacyDashboard
Article references the debunked claim that the Wizard of Oz was an allegory about the gold standard.

Or was that debunking debunked? Hard to keep up.
Dang that sounds really cool. Such a shame you couldn’t keep working on it
It's hard to tell how serious you are, based on the first couple of words, but that tactic seems to have failed. Racism is widespread and, according to some data and personal experience, has broadened and deepened in the last few years.

If we want something to change, we'll have to act. African-Americans are only ~1/7th of the US population - not enough to make changes themselves.
>you aren’t the decision maker.

That is only partially true. If we both write, other people may read, then you and me possibly influence people. Wa are social beings, we are influenced by people around us. So we're both a tiny part of the decision process. And you talk about political decision: politicians keep listening to people through polls, phone calls received, and other ways. Even dictators can be, when numbers are high enough.

So it does matter how rational we are. Over time and on average, people are more often convinced by rational discourse than irrationality. Probably because rationality has a higher likelihood of being right. But yes, we'll go through periods where irrationality wins... Still, it's very hard to be on the opposite side of logic and facts for a long time.

>If the Hacker position is "people shouldn’t care about child pornography"

I have not read that here. If you believe that child pornography is a massive issue, I respect that. I just would have hoped you could better describe the actual size of the problem and its evolution. You could have influenced me more effectively.
I presume you are referring to UUIDv4/1, which has 122 random bits. It is a common misconception that this is insecure. In reality, the UUIDv4/1 is just a way to encode 122 random bits, which is more than enough for most needs. The property of being practically unguessable comes from the random generator, not from the encoding.

Secondly, whether or not being predictable is a problem depends on the use case. The keys used on this forum are predictable and it is not an issue.
That’s why I don’t think failure is a good word. But what’s a word to say, “it works but it could be better,” other than failure?
Well, I don't trust them either. Does it run Wireguard?
The problem was not that the previous occupant of the Oval Office mentioned forest mismanagement, the problem was that his idea of proper management was to rake the leaves.
The HN title is a bit misleading and doesn't match the title of the PDF and should be marked (I think) "[2019]". Cxx.jl is an independent package and (e.g.) a base package for Julia. Cxx.jl is no longer actively developed and CxxWrap.jl is the default mechanism to interact with C++ from Julia.
On that note for anyone interested in the economics(and working in general) of nuclear energy check out the Illinois Energy youtube channel.

Here's a quiz video of theirs: https://youtu.be/c1QmB5bW_WQ?t=41
Because that's really annoying? Boto is (forever now, presumably) v2.x, and Boto3 is on v1.x.

How is that helpful?
Gopher, Gemini, and the rise of the small Internet
copyright enforcement, detecting terrorists, sussing out dissidents. The applications are endless!!! Welcome to the future.
Being black, but not a woman, it's difficult for me to validate the premise that people aren't as much in arms about "women's issues" as they are about "racial issues."

However, while tribalism is definitely a thing, women are generally seen as being included in the tribe. Perhaps that's why you see it as being less contentious.

I'll also point out that this "the difference in societal treatment, amassed wealth and political power that flows along racial and socioeconomic lines" is exactly what results from the power of the identifier.
This is definitely true for library code. I don't think the idea holds up for squishier things- moving from version 1.x to 2.x could make the user experience worse, depending on what you prioritize and who's making decisions.
People have been talking about other companies doing that for ages, and many specifically choose Apple products because of their perceived commitment to privacy.
Relatedly, here's a PhD thesis on UVM, NetBSD's virtual memory subsystem: https://chuck.cranor.org/p/diss.pdf. It gets into a lot of key issues relating to efficient implementation of virtual memory in a UNIX OS, such as efficiently implementing fork(), mmap(), shared memory, and paging.
ZippyDB: Facebook's general purpose key value store
No, I am not. I didn't mention a flow. You seem to be assuming I said something I did not.

The battery has a life of ~120k miles, constructing the battery (and often, but not always, the electricity used to charge it) is so polluting that ICE cars will typically pollute less over that same period of usage. That is what I am saying: nothing about stocks or flows. The difference in pollution is, if it exists, very marginal.

EDIT: I will add, look at how cobalt is mined...it is a slave commodity from the Congo, no rules, no environmental laws...same for many other constituents of the battery.
They're to be generated for each individual UUID. (However, this RFC recommends using the entirely random UUID4 for anything that's meant to be used in a security-related context, presumably with a CSPRNG.)
Thanks for the feedback!

- The recipient for payments is the slicer, which is a smart contract. If you go onto the slicers page you can copy its address, and yes you can send it ETH however you prefer - not just through the website! (In fact, the payment on the platform is actually a standard ETH transfer). Currently it won't be able to accept other tokens, but I plan to add support eventually in a future release.

- The creation of a slicer involves the mint of ERC1155 tokens, the creation of the slicer smart contract, and establishes the link between the contract and the tokens (so that when a token transfer happens it is also reflected in the slicer logic).

I'm sure most of this aspects will get clear as I publish the contract source code, which I plan to deploy on GitHub soon (btw I'm also looking for devs who may be interested in contributing)

Feel free to reach out on twitter @slice__so, or via email hey@slice.so!
Using “Master Faces” to Bypass Face-Recognition Authenticating Systems
As someone who knows quite little about Android (currently in the Apple ecosystem, but considering jumping ship): When you use these privacy-focused Android versions without Google Play, is there a consistent way to get apps from the Play store to run on there? (e.g. download the APK from somewhere and sideload it). I'd really like an OS that doesn't spy on me, but there's e.g. some goverment ID apps, transit apps and so on, that I'd really not like to have to give up.
From the end of TFA:

>And everyone should stop driving fossil vehicles starting now. [ ... ] There’s no excuse not to.

Admirable sentiments, but can anyone point definitively to the net gain/loss in CO2 terms of actually ditching a fossil fuel based car and replacing it with a new EV? And how does that look if the FF car is something like a Honda Fit (good mileage, lower than typical emissions)?

I'd be willing to dump our Fit for some sort of EV, but I'm really not convinced that it's helping climate change to do so.

Change my mind?
Also smart home devices can and have been employed by domestic abusers against their victims.

https://www.bbc.com/news/technology-54554408

https://www.bbc.com/future/article/20200511-how-smart-home-d...

https://www.nytimes.com/2018/06/23/technology/smart-home-dev...
If an API is like a painting, then a changing landscape could be one reason you can paint it accurately each time but still need to make later revisions. "All models are wrong but some are useful" applies here as well. Most of SW iteration is about adjusting the painting/model to match present realities.

Either way the tweet cracks me up because it's just a matter of perspective that is giving some folks a good rankle.
I see the middle number as "RISK-FREE-UPGRADE" - if I bump that number in one of my packages it means there's a new feature, which should have no impact at all on existing code.