skysight-inc/HackerNews huggingface dataset:
> There's way too much cynicism here

If you sold this as AR using expensive glasses everyone is a believer.

> Easy pricing changes.

Prices that change by the hour, or as stock runs low is an interesting idea. Corporate could bring in a hourly special. Corporate has total brand control. Corporate can pull items by hiding them if said company doesn't want to pay for peak. The camera can give you personal specials.

The power is in corporate control. The weakness is the complexity you mention.

I suspect the cameras might be the what's really going on. Camera's by themselves wouldn't be acceptable. Comes with fancy screens though...
Nope. But when I go to Canada I still spell out the letters of my last name although I don’t have to.
Depends on what you do. I've been glad to use pencil in the past, since it is water resistant compared to pen. Useful when you spill coffee on your notebook, or leave your hiking journal in the rain like me ...
Lazyness requires monads for IO, but monads are useful for much more than IO, even in eager languages.
I Created ‘The X-Files.’ Here’s Why I’m Skeptical of the New UFO Report
Because you left out some information. These channels only have to be opened once, and at current prices this is around 40 cents. It costs a lot more to both open a bank account and send money from a -> b.
Spiders Covered Australian Shores with a Gossamer Blanket
This is a great post. I come back to it frequently.

There's beautiful clarity in the articulation, and the essence is easy to grasp yet powerful. It reminds me a bit of Scott Wlaschin's Railway Oriented Programming (ROP) [0]. As a technique, ROP nicely complements "parse don't validate". As an explanation, it's similarly simple yet wonderfully effective.

I've a real admiration for people who can explain and present things so clearly. With ROP, for example, the reader learns the basics of monads without even realising it.

[0]: https://fsharpforfunandprofit.com/rop/
As someone who has to deal with a lot of bots, bot networks and other weird scraper apps people use: The biggest issue is that most of these tools are not behaved very well. This tool is clearly designed to circumvent protections, rate limits mostly, against scraping that might be essential to keep things running.

They follow links that are explicitly marked as do not follow, they do not even try to limit their rate, they spoof their user agent strings etc etc. These bots cause real problems and cost real money. I do not think that kind of misuse is ethical. In fact, using this tool to circumvent protections can turn your scraping into a DDOS attack, which I do not feel are ethical.

If your bot behaves itself though, public information is public imo. Just don't take down websites, respect rate limits and do not follow 'no-follow' links.

To give an idea of the size of the issue, we have websites for customers that have maybe 5 hits per minute from actual users. Then _suddenly_ you go to 500 hits/minute for a couple of hours, because some bot is trying to scrape a calendar and is now looking for events in 1850 or whatever. (Not the greatest software that these links are still there tbh, but that is out of my control.)

Or another situation, not entirely related, but interesting i think:
A few years back for days on end 80% of our total traffic came from random IPs across china & request could be traced through HTTP referrers where the 'user' had apparently opened a page in one province, then traveled to the other side of China and clicked a link 2 hours later.

All these things are relatively easy to mitigate, but that doesn't make it ethical.
Archive for people who cannot read Medium: https://web.archive.org/web/20210626084045/https://chrisavel...
So the basic issue is touched on in the article in the Partial Order section.

Lamport Clocks cannot order unrelated events. But for higher consistency levels in databases, this is exactly what we need.

The classic solution to this is to extend Lamport clocks into Vector Clocks. As the name implies, these are a vector, where each entry corresponds to a Lamport clock at that server. The obvious downside of this is you need vectors as long as the number of servers, making timestamps considerably more expensive, as well as the inflexibility this implies.

One of Spanner's key properties is External Consistency. This is as strong as it gets. Spanner is capable of correctly ordering all events across the entire system in relation to idealized physical time. It does this through a combination of better than typical physical clock synchronization, and waiting out any ambiguity window as needed. The latter does have a performance cost, but the paper makes the argument such costs combined with consistency are preferable to the subtle bugs developers will inevitably introduce without such.

Another thing in the mix here is Hybrid Logical Clocks, which are an extension of Lamport Clocks that keeps them within some constant of the idealized physical time. This is actually what CockroachDB uses (or at least a variation on it).

To get this stuff to gel in your head I would suggest reading the primary papers:

https://lamport.azurewebsites.net/pubs/time-clocks.pdf

https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.56...

https://static.googleusercontent.com/media/research.google.c...

https://cse.buffalo.edu/tech-reports/2014-04.pdf

There are also a couple educators/experts that have great presentations on this topic material, namely Kyle Kingsbury aka Aphyr and Lindsey Kuper. I apologize for not chasing down the exact talks, but they should be up on youtube and such.
> Trickle down works for immigration.

Proof/evidence for that statement?
They roll their own crypto and group chats can't be end-to-end encrypted anyway. It's even worse security than WhatsApp, let alone Signal.
No source, and a very unlikely assertion.
There’s a difference between causality ordering and global total ordering.

Lamport timestamps and vectors help you get causality ordering. This is not enough for Spanner.

Spanner needs total global ordering. A perfect real time clock would let you achieve total ordering. As you’ve pointed out, Spanner relies on a clock. However, no clock is perfect, so Spanner has to account for that margin of error. And because of its clock (TrueTime) that margin of error is small enough to keep latency low.
Listen mate. I had a tinder profile for a bit too. I would have looked like one of those well rounded people but my life was a mess. I learnt it was the same for most other people with tinder profiles.

When I finished school aged 16 (UK) there were kids who went and got well paying jobs at the local factories. The rest of us who stayed in education were well jealous of them - they were living life like proper adults with all the freedom and a good lifestyle, while we felt a bit trapped and stuck. As we got older we were scraping by on bar and care jobs to pay for rooms in a shared house to study etc while those kids who left aged 16 were getting a mortgage on a nice house and thinking about getting married and starting a family.

Except years later having pushed myself through education and up the career ladder as much as I could tolerate before taking the decision to plateau in a job for a bit, my lifestyle is a lot better than what I'd been jealous of, but those kids who had those jobs aged 16 are still doing the same job and looking a bit trapped.

This isn't a story about how to live your life or what the best career is. All of the paths me and my schoolmates took were valid. What I am trying to say that progress through life isn't linear, and we all end up going through these cycles of change-stagnation-change-stagnation at different rates to everyone around us.
> I'm also not sure what the difference between "traditional data centres"and "cloud data centres" is.

Vendor lock-in is the only difference.
Hey OP. I don’t know you but I want to tell you I love you, I understand the feelings and pain. You are important so please don’t harm yourself. Things DO get better. Trust me on this, I had severe depression from late teens to early twenties, and things turned around after 24. I was also VERY late to the medication game, I was against anti depressants for the longest time because “didn’t want to mess with my brain,” I can’t tell you how wrong I was on that one.

I also did brain scans, therapy and hormone testing and found out I had low testosterone due to the stress I would put myself under, so I worked with my doctor (had to find the right one who I trusted and was competent in these matters), and we got a plan to improve my levels.

I did it all on my own and life turned around 180. I got everything I wanted, which if you’re anything like me is probably also what you want too.

Trust me you can do this OP, just hang in there.
I can relate a lot to this as an old school C++ developer (not anymore). I also remember switching a project over to pure C some years ago and found it a lot more pleasant to work with. But I combined it with Lua so I could use Lua for high level constructs C is not so good at.

Anyway I suspect that in a few years Zig will be the choice in scenarios like this. It gives you fast compilation times and low level access like C while being a lot safer, but without adding C++ level complexity.

That is an important sweet spot to hit.
On a side note, check out forest gardening, namely "Plants for a future" is an excellent reference/book pfaf.orgyou, the author whom I had the luck to meet had a "huge" garden nearby in Cornwall
I started reading this book some years ago but quickly gave up when after the first chapters it was made clear that you would have to put a lot of time into the practice. I don't remember what the book's recommendation was. How much time do you spend on it?
I just tried it on a small project of mine. It's 955 lines of C#[0], 6 dependencies, already configured for publishing a single file, self contained, for win-x64, ready to run. I built in release mode with publish trimmed, and trim mode set to link. The final size of the binary is 24.6 MB (not counting CLR DLLs), with a build time of 23.2[1] seconds.

I also have a Rust version of the project. 710 lines of Rust[0], 128 total dependencies in the tree, building in release mode with the MSVC Windows compiler. Final size of the binary is 2.29 MB, build time of 22.2[1] seconds.

Things are not great when your build times rival Rust's, and the output is slower and an order of magnitude bigger.

[0] Note that the C# version does have more robust handling when writing its output file than the Rust version, which adds couple dozen lines. Also the style conventions for brackets puts opening brackets on a new line for C#, the same line for Rust.

[1] Measured with hyperfine configured to run "dotnet clean -c Release" and "cargo clean" before each run.
On Drums: Stewart Copeland
So I just hit up Amazon and found this:
https://www.amazon.com/Revolution-Cooking-R180-High-Speed-St...

Not sure if we have to wait until 2050
How many of the people closely involved in these market-moving Fed statements are trading crypto futures with insider information? It's probably virtually impossible to know, and it's almost certainly occurring.

Because of this conflict of interest, plus natural human/animal greed, I always wonder if the message is really important or if it was just to create a wealth opportunity for the insiders. Most statements by any influential financial source create a temporary change in markets which tend to return to their previous state, so one could assume that these messages could serve a little hit and run opportunities without lasting (negative) impacts.

But there is also the fear of loss of control. Governments and dictators like to have (or appear to have) control over money. So inevitably, third party, non-governmental competitors such as stablecoins are a threat to the powers that be. Thus, they have a potential bias which could color or even form their public statements and actions.
How does a $2 Trillion company continue to whiff on things like this, AND CONTINUE GETTING FUNDING FROM BANKS, INVESTORS, THE FEDERAL AND STATE GOVERNMENTS, AND CORPORATE PARTNERS?

Google literally hijacked their whole software stack 15 years ago from the inside, for a fraction of the capitalization, and Chrome has barely an inch on Windows' rap sheet, security-wise.

Absolutely mind boggling. Their whole business model is IP theft anyways, Slack becomes teams, Wave becomes Office 365. The only thing that can end this is a bank run on something else.
Don't forget Internet Computer Protocol (ICP), which tries to replace the Internet but is also based on it.
I remind myself it doesn't matter. If it doesn't, it frees me. If it does, then I'll refuse to believe myself.
Huh, the debug symbols are in separate .pdb files, aren't they?

38MB is a pretty typical size for a real-world, self-contained, assembly-trimmed package, and the size comes from the runtime itself, plus the core assemblies that weren't trimmed out.
Cockroach uses Hybrid Logical Clocks, which are substantially different from Lamport Clocks. It does avoid the need for atomic clocks, but is different enough from LC that I think it should be seen as its own thing.
I do not think immutability is compatible with data protection legislation such as GDPR.
Indulge into reading development of an active crypto project. Check Gitcoin, Near or Celo. They are where people are active that am aware
Do you know what an attestation actually is? Are you aware of the complete lack of accountability, liability, anything from these reports? They literally just mean “I saw some money in an account and it matched the figure they said they were supposed to have.” That’s it. As of 12:00pm on a Friday you could have your friend wire you $1B and get someone to attest that they saw $1B in your bank account, which is then wired back out; does that make you a billionaire?

The willingness of these operators to target poor, unsuspecting muppets who aren’t aware that attestation ≠ audit, without any disclaimer or explanation of this fact, is a HUGE red flag that their claims of “transparency” are anything but.
>linking a big C++ project with lots of dependencies and some template magic can easily take several minutes.

dreams wistfully of C++ build that only takes several minutes
Or just change pens. You can find permanant markers in a fine tip, artist pens are sometimes waterproof once dry, and different pens are more/less waterproof - though it has been a while since I tested standard pens, and a ball point (or mechanical pencil) is much cheaper than the waterproof options.

I'd think that the bigger problem when leaving a journal in the rain is trying to keep the pages from sticking together as it dries. Probably a lesser problem with the coffee unless you have a major spill.
Amazon buys encrypted messaging app Wickr
Not following how this is helpful?

From what I've seen the cloud IPs are the first to get blocked by anti-scraping tech.

e.g. Built an amazon scraping thing at home. Worked fine. Deployed to cloud. Literally first request Amazon goes nope you're a bot
Toaster Plus sounds a bit like Xerox's "Scorch Eliminator" from the 1950s, which was a small fire extinguisher for when the photocopier overheated.
While I can understand the feeling of "bloat" in C++, I can't help but be put off each time I have to implement something even remotely serious in C. I have to reinvent the wheel everytime while in C++ I can have access to high quality implementation in the STL.
Composable immutable languages like Clojure can reduce this kind of burden.
USDT has to be minted through the Tether Treasury. Exchanges cannot create USDT themselves.

As I understand it, exchanges wire Tether large amounts of USD, and then Tether mints and equal amount of USDT and sends it back to exchanges.
> Elitism and gatekeeping do precisely nothing to help people solve problems with code.

I agree 99% here. The 1% is where you want to shock someone to break through. Not sure if that was Dijkstra's intention, but I assume it was. He was a teacher as well, writing books, giving lectures. I think he was genuinely concerned.
It's the exact same principle for planes and helicopters.

If a plane isn't producing more lift than weight it will fall, just like a helicopter. Planes work by pushing a wing through the air, helicopters by spinning it. In both cases the wing has to push down enough air to keep the aircraft in flight.
I think that if we focused on building small, simple programs that do one thing well and compose, C would be OK. It’s when we build out behemoths that you really have a hard time reasoning about your code. At that point, vulnerabilities are almost guaranteed. This is true in any language, but more so in unsafe ones.

Maybe the suckless guys are on to something.
> I have no complaints about distros that are either 100% systemd or 100% init scripts. The problem with Debian (and its derivatives) is that they're trying to maintain both at the same time.

Well said. I'd add that "service" is actually doubly confusing because the command was IIRC actually introduced by Ubuntu when they were doing Upstart, which was their own attempt an an init replacement. Ubuntu still has the service command, actually, and now it supposedly runs both init scripts and systemd units. I've never actually tried it because I'm rather spooked by having multiple mechanisms to activate a service. It still mostly has the upstart command syntax from what I can recall.

My Ubuntu server actually has a Upstart service file from one of the daemons I have installed, I only hope it's not somehow being activated or translated into an init script by some compatibility system Ubuntu has built in.

You might even be talking about RHEL 6, in which they used Upstart, and not whatever they're doing now. RHEL 6 is still under extended support, which means that there are still quite a lot of Upstart systems out there.
Microsoft needs to stop signing kernel level anti cheats completely. They are always rootkits by design.

No game should require a kernel driver.
>If USDT is worth $1 because everyone agrees it is, everything works fine.

Until that agreement starts to wobble
Your reasoning is correct. Also, if it makes you sleep better :-), here's the boost implementation of a spinlock:

https://github.com/boostorg/sync/blob/dfdf317f63d26fb40c703b...

It has been written by an expert in lockfree programming (Tim Blechmann)
You forgot the high-pitched noise, the worst offender imo. CRTs sucked.
Related discussion from last month which links to this article in the repo description:
https://news.ycombinator.com/item?id=27166162
For a symmetric aerofoil, 0 angle of attack is 0 lift. For an asymmetric - there is (some) lift, which comes entirely from the suction side.

https://www.wolframalpha.com/input/?i=NACA+6409+airfoil&assu...
The price of ICP immediately following the listing on Coinbase should have been the signal to exit the current market cycle for anyone paying attention.
Will we admit yet that having OS vendors sign software does nothing to stop malware?
To be honest, the game industry is a good counterpoint to TDD zealotry. You can go quite far with adequate results without a single unit test.
> We had those scams from beginning

I tend to disagree a bit. In the early days, most scams at least pretended to have some non-pump-and-dump usecase. Like Dentacoin or Filecoin. You could at least pretend to "buy filecoin today so you can store PB's worth of data in a year" or "buying Dentacoin now because in a year you need some dental work done".

Nowadays all new tokens/coins have 0 usecases attached and only exist to be pancake swapped and pumped and separating other people from their money. It's all about lending, yielding, farming, interest rates, staking, ...
But what I am saying is that parsing is a kind of validation. But all validation is not parsing.

For example let's say that I have written an HTTP API that accepts application/x-www-form-urlencoded data to one of its endpoints. Let's say `POST /users`, and this is where the client-side application posts data to.

Now I can implement this in many ways. I can for example define

pub struct Person {
name: String,
phone_number: String,
}

But how I populate this struct can determine whether I am actually parsing or not, even if most of the code aside from that is the same.

And of course I could go further and define types for the name and the phone number but in this case lets say that I have decided that strings are the proper representation in this case.

If the fields of my structs were directly accessible

pub struct Person {
pub name: String,
pub phone_number: String,
}

And in my HTTP API endpoint for `POST /users` I do the following:

// ...

let name = post_data.name;
let phone_number = post_data.phone_number;

let norwegian_phone_number_format = Regex::new(r"^(\+47|0047)?\d{8}$").unwrap();

// ...

And I didn't bother to write out the rest of the code here for this example but you get the gist.

The point is that here I am doing some rudimentary validation on the phone number, requiring it to be in Norwegian format. But I am enforcing this in the implementation of the handler for the HTTP API endpoint, rather than in the data type itself.

Whereas if I was instead doing

pub struct Person {
name: String,
phone_number: String,
}

impl Person {
pub fn try_new (name: String, phone_number: String) -> std::result::Result<Self, PersonDataError> {
// ...

let norwegian_phone_number_format = Regex::new(r"^(\+47|0047)?\d{8}$").unwrap();

// ...
}
}

Now I've moved the validation into an associated function of the type itself, and I've made the fields of the struct unaccessible from the outside.

And in this manner, even though my validation is still rudimentary, and a type purist might find the type insufficiently constrained, I have indeed in my own book gone from just validation to actual parsing. Because I have made it so that the construction of the type enforces the constraints on the data.
This is a good link to start exploring the issue:

https://solar.lowtechmagazine.com/2009/06/embodied-energy-of...

Low tech magazine has a very definite agenda but I've found their writing really informative and I think they do a good job in raising how enormous an issue this really is.
Just to double down on this, no offline mode is definitely a deal breaker for me as I usually turn off Internet when I want to be focused. For example while reading the Bible.
There is also joi, zod, myzod just to name a few.

I personally use myzod as its fast it parsing, zero dependancies and you can infre types from your schemas.
> Notably, the C2 IP 110.42.4.180 that the malicious Netfilter driver connects to belonged to Ningbo Zhuo Zhi Innovation Network Technology Co., Ltd, according to WHOIS records.

> The U.S. Department of Defense (DoD) has previously marked this organization as a "Communist Chinese military company," another researcher @cowonaut observed.

Tried to check the claim, which links to http://www.defense.gov/Newsroom/Releases/Release/Article/247.... There are four short PDFs linked there, and I couldn't find the company in any of the lists. Tried to check historical versions on Internet Archive, still couldn't find anything, but admittedly I only looked briefly. "site:defense.gov Ningbo Zhuo Zhi" turned up nothing on Google.

Now, WHOIS record points to nbgaofang.com, which claims to be a cloud provider specializing in DDoS protection, so a Cloudflare of sort.

Do reporters actually read what they link? Do they intentionally report “juicy” bs with sham links that don’t support the bs, knowing full well that few readers would try to verify sources?