skysight-inc/HackerNews huggingface dataset:
> Obviously compilers do use byte registers for byte operations because those are the only way to get them on x86, ...

OK, but what does it even mean that they avoid AL then, if they use them for 8-bit math? Under what other scenarios would they even want to use them?

FWIW, compilers could use 32-bit arithmetic ops almost all the time even when bytes are used in the source, because excect for right shifts and division, information flows only to more significant bits, so 32-bit bit ops give you the right results in the low bits.

In fact, I thought they did this more often – but when I looked into it recently they seem to prefer the low 8 bit registers.

> but they don't use the high bytes.

Not often, but of course the use case for the "second least significant byte" is very narrow in the first place [2]! If you just want to deal with byte values, you'll use the low bytes, after all.

The high 8-bit values are reserved for special cases, e.g., extracting that particular byte, and there compilers do use them (at least gcc, clang and icc on the first try, but not msvc):

https://godbolt.org/z/m5MbsM

The performance characteristics for the high bytes are quite different from the low bytes on modern, x86 too: see [1]!

> And neither Clang nor GCC emits inc or dec

Yes, if you don't set the march they will compile for an archaic blend of chips at least one of which may have the old inc/dec behavior.

Try setting a "modern" march flag like Haswell and fixing the issue where i wasn't actually used except as the loop induction variabale (allowing loop transformations away from simple +1) and both clang and gcc use inc:

https://godbolt.org/z/gtkd-v

---

[1] https://stackoverflow.com/a/45660140/149138

[2] It is possible one of the original motivations for the high bytes was to double the number of 8 byte registers in the 16 bit era. I.e., 8x byte registers was considered significantly better than 4x, and you couldn't use the low byte of di,si,sp and bp for other reasons.

In 64-bit, however, we now have 8 additional registers each with a low byte variant (r8b-r15b), so there are plenty of low byte registers for most work, so the remaining use of the high byte registers mostly seems to be taking advantage of their ability to quickly access the 2nd byte of a larger value.
Joe Hisaishi is one of the best composers, and a big part of the Ghibli charm. Anyone who hasn't had the pleasure yet should definitely check out his work, in any way you can!

[0] https://en.wikipedia.org/wiki/Joe_Hisaishi

[1] https://www.youtube.com/results?search_query=Joe+Hisaishi
When I was a kid, we couldn't really afford legos. But one year my brother got a big plastic bucket of Brix Blox[1], a lego clone (but not compatible). They were just as fun as Legos to us. They weren't a kit, just a bucket of bricks to build what you want. I think it might have come with a little pamphlet of suggested designs, but we made spaceships and weird little rocket-boat things and little stormtrooper-ish guys to ride them. It's kind of weird how I can picture those little guys in my mind so perfectly all these years later. Pretty sure I could build one right now exactly as we did then, if I had some brix blox.

Edit: this is the bucket we had: https://www.cutetoyus.com/product_detail.php?c=town%20toy%20...

[1] https://www.retrothing.com/2008/07/brix-blox---leg.html
The last sentence of this article rings true. Do the riskiest parts first, essentially. The rest feels prescriptive and way too rigid and I have a hard time believing teams would want to or get a benefit from sticking to it.

Eliminating risk is awesome though and even that practice is compatible with estimates if thats what your team is doing. Simply asking the question “whats the riskiest part?” prompts some healthy discussion.
You can't turn off the borrow checker for references, but Rust also provides raw pointers which are not subject to borrow checking (these are exactly like pointers in C, and can be cast to and from references (this is a no-op at runtime since they share the same memory representation)).

https://doc.rust-lang.org/1.30.0/book/first-edition/raw-poin...

You can create and manipulate raw pointers in safe code, but dereferencing them requires an `unsafe` block.
Could this have been a skimmer on top of the legit keypad, or is 10-key (vs phone) layout standard in Spain?
Marc Andreessen’s Secret Weapon for Finding Startup Investments
In the details, even though the simulation shows great inequality, it also shows that everyone gets a chance to be part of the 1% for a bit.

Which is better: everyone is always mediocre, or everyone gets to be super rich for a bit and poor for awhile?

I also created a sum positive version of his sim awhile back, and one interesting outcome is that monopolies became essential for stabilizing the economy in the face of catastrophic recessions. And if we had the zero sum economy where everyone is mediocre, then no one survives catastrophic recessions.

So, capitalism and monopolies seem to be the best overall in terms of survival benefit, and wealth redistribution schemes get wiped out by natural selection. I guess that's what happened to the USSR during the Cold War.
FIY in Software Engineering this is defined as a formal process with clients or Product Managers called 'Requirement Elicitation'.
I agree with you, but don't know Paris well enough to know the exact details. How would you define the border of this "inner city" ?
> And this is (1) wildly mistating the requirements and (2) deeply offensive to those of us who work in those regimes.

Care to expand how? While not a kernel dev, I've had my share of use cases where I've done exactly this kind of thing in gamedev, and I simply cannot bring myself to disagree with what's been said, or see what's offensive.

It's strange, debugging when the pointers get corrupted by other code exhibiting UB is painful, it's a potential multithreading hazard, and flat contiguous arrays are frequently more appropriate - but it's sometimes useful. It's not arguing that an alternative paradigm can - or even should - be deployed in a heapless context. It's explicitly admitting that intrusive linked lists are an appropriate paradigm.
I think I understand your point.

However, a car body shop can estimate how much it will cost to fix up my vehicle after a collision with a deer. Those professionals can provide an estimate based on the amount of effort and materials they believe are required. But they don't sit there and try and tell me how much my insurance will pay and how much I will have to pay out of pocket or if my insurance will cover any of the bill.

Obviously in the situation above, time isn't of the essence as much as it might potentially be for a medical issue.

Knowing the "hourly" rates and what treatments may be needed can allow a doctor to estimate the total cost range from a low end to the high end (might be $200 for simple diagnostic and we find nothing more to treat to $2,000,000 if as we progress done the rabbit trail we find evidence that leads up to more tests and it turns out to be cancer). Medical issues are like software development. You don't know what you don't know so God only knows how much effort (cost) will be involved. We can give estimates but the doctor and the software developer shouldn't be trying to figure out if the work involved is covered by external requirements (what and how much will medical insurance cover or does this development qualify for some tax credit or is considered sufficient to fall under some contractual constraint/requirement higher up). Should we expect software developers to know and understand tax laws? Should we expect doctors to know everyone's insurance plans and coverages?
Car emissions are negligible compared to scooter emissions though
Whichever ones you allow to run in parallel need to have enough memory to run at the same time, but such a situation might happen quite rarely.

In other words, that sounds like a system where dynamic memory management is significantly riskier and harder to test than usual!

Why not static allocation, but sharing memory between the greedy chunks of code that can't run parallel to each other? (I assume these chunks exist, because otherwise your worst-case analysis for dynamic memory would be exactly the same as for static, and it wouldn't save you anything.)
Mike Bloomberg in 2014: “We should hope” the NSA is “reading every email”
Thanks for that last paragraph, I'd never thought about that aspect of processes. Learned something new today.
That would be a great story. If Bloomberg employed hundred thousand people in his shilling campaign, and then Trump took the credit for reducing unemployment.

Or maybe people should just stop relying on Tw/Fb/etc for their news.
Why isn't this the 3rd option: Set the S3 bucket private and give CloudFront access to it. I've been using it for a while and it seems to be working.
You're right. I kind of messed up the message.
My local (small, urban) supermarket isn’t even 24 hours (7am to 11pm, I think) and is constantly restocking throughout the day anyway. If sales volume is high enough, that’s presumably necessary.
Sets with common, generic pieces are still available. But also, don’t be to quick to decry pieces as special purpose, Lego is good at clever reuse.
Babashka's target audience is primarily Clojure developers that just want to keep writing Clojure instead of switching to a language like Bash or Python for shell scripts. It's not a matter of better, just more familiar.
I think I understand Little's Law, but I'm struggling to see how it works here - are you saying the backlog size would be predictable?
Hmm. I don't agree with you on the fact that almost everything will have some easy to map analogous precedent / law clause. But I do appreciate the fact that I know literally nothing about law and that any fantastical suggestions I make would be ignorant at best, like you point out.
If you were writing a compiler, you'd just use the correct rule (and you'd make sure you assembler chose ebp as the index not the base in cases like [ebp + edx]), of course.

I'm wasn't even arguing for the use of the over-broad rule in the part you quoted: I was actually arguing for the use of the full rule but without worrying too much about the caveat that even using slow lea might be just as fast (or faster, due to non-monotonic effects).
The thing that stands out in Buffett's letters (including this one), is his commitment to clearly communicating the true health of the company in the most accurate way possible. That's missing in a lot of corporate communication, which try to spin results or invent creative metrics that make the company look better.

He always shares GAAP as well but will usually point out where he thinks it not useful.
Make the multiplier 500 instead of 50. Society determines what a "fair" value is and it might change over time.
I’m not sure where you looked, but walk down the Lego aisle at Target and you’ll find tons of them: https://www.lego.com/en-us/themes/classic
my lego...it was parked in the attic along with about a cubic yard of comics i disenterred the lego when i discovered D&D the hindsight is killer if i took the comics as well [small fortune]

but i didnt i took the lego and spraypainted it to look like stone
Ok, fair enough!
What about the people paid to defend paid promoters in social sites?
I think it's not giving the whole picture of paint WeChat/tencent as a normal company trying to make profit. They are providing a national service, it doesn't need to be profitable.
https://sourceware.org/glibc/wiki/MallocInternals#Arenas_and...
A pattern I see over and over is good engineers doing exactly what you suggest, writing those docs, filling in the communication gaps, and then being told they’re not “technical” enough for their role, or a promotion, or a raise.

It sounds nice in practice, and I really wish it were advantageous in more places, but there’s a real risk. That assumption that you’re working in “a reasonably healthy org” is rarely safe to make.
If the wealth created in a transaction is proportional to the size of the transaction, that sounds like it would increase the Gini coefficient. Most new wealth is created by transactions involving those with the most wealth, and redistributed to them. Probably simple to check in the simulation. Whether this is any good as a model for the real world is then a different question...
Improved in places. Got worse in others.
https://www.airparif.asso.fr/actualite/detail/id/213

Some of the places where it got worse are far away from Paris… so who cares about the poor people who live in a far-away suburb near the freeway. It's not like they vote for Paris' mayor.
It s a good cop out for Twitter Inc. though
This right here. My previous job was in defense and although it was not an embedded project all the software architects on the project were embedded guys used to doing things their way. Dynamic allocation was strictly forbidden.
A coworker of mine once described engineering as "the ability to design something that can be built for $1 that would normally cost $20".
It's sad that we have to create throwaway accounts if we want to be able to simply say we prefer or use other languages over Rust without getting downvoted so much that we'll end up shadowbanned.
I think CVS-style shops are a uniquely American thing, no? I was pretty confused by them on first visiting San Francisco (why is this a combination of products that makes sense? Is the candy aisle right beside where you buy statins some sort of elaborate joke?)
Right, but that doesn’t invalidate the previous decisions made at that time. And it’s not only a problem in software. Accidents can happen because engineers trade material strength to reduce weight only to find out that over a number of generations they slowly crept above the safety margin that was decide upon 10 years ago, resulting in catastrophic failure. I’m sorry I don’t have the actual story at hand right now, but it’s not unimaginable either way. The problem you described has more to do with proper passing of knowledge and understanding of existing systems rather than strictly adhering to a fixed set of best practices.
Wolkenkit 4.0 CTP 1: A CQRS and ES Framework for JavaScript and Node.js
This article is paywalled and somehow the website manages to stop reading the article in private mode too.

Can we please stop posting paywalled articles?
They’re pretty cool. If you find a nursery that has enough offspring you’re allowed to buy them. You have to fill out the paperwork, but at least that way they’ll remain to exist even if it’s in captivity.
I had a family friend who worked on missiles and drones and other defense systems. He was really one of my dad’s running buddies, and he was a super nice guy, had 4 kids, went to church, etc.

One day, I believe during the Iraq occupation, maybe ~12 or 13 years ago, I asked him very directly how he felt about working on these killing machines and whether it bothered him. He smiled and asked if I’d rather have the war here in the U.S.. He also told me he feels like he’s saving lives by being able to so directly target the political enemies, without as much collateral damage as in the past. New technology, he truly believed was preventing innocent civilians from being killed.

It certainly made me think about it, and maybe appreciate somewhat the perspective of people who end up working on war technology, even if I wouldn’t do it. This point of view assumes we’re going to have a war anyway, and no doubt the ideal is just not to have wars, so maybe there’s some rationalization, but OTOH maybe he’s right that he is helping to make the best of a bad situation and saving lives compared to what might happen otherwise.
In my opinion a marriage is a safe place to raise children - the transformation from 'self' to 'family' can be an extraordinarily joyful and fulfilling experience.
Another fascinating aspect of simulations like these is how the shape of the final distribution depends on the number of actors - with links to statistical thermodynamics.
You'd probably want the sensor pack to be separable from the phone case, so you can buy a new phone (whose shape changes every year, forcing new accessory purchases).

I do think it's simultaneously cool and ridiculous that instead of just adding a simple distance sensor, companies making measurement software for phones double down on the software-only approach with computer vision.
Politics is a dirty dirty street fight. As they say NASCAR “If you ain’t cheatin’, you ain’t tryin'”
> Fraud isn't a huge regulatory framework. The main reason for that is that you need intent to defraud, which can be ambiguous around the edges but it's pretty damn hard to do it by accident. The analogous thing for privacy would be prohibiting the sale of private data -- and that's probably a good idea. Because it's pretty hard to do that by accident and most honest businesses don't do it at all, so you're not putting a huge compliance burden on millions of unsuspecting businesses, only the few that actually sell data.

I'd settle for sale being illegal.

> But there are still some nasty things you can do with private data without actually selling it. That's not as easy.

True. But as you say, that quickly gets complicated.

> And maybe that's the real answer. Don't go to the government for regulations at all, instead go to them for money, DARPA style, to get the things that use local processing and aren't dependent on advertising to fund development into a state that the majority of people are actually using them.

That would be very cool.
Nicest React News/Financial Ticker:-)
It’s definitely one of the odder urban legends of the Hacker News set—that newer Lego sets are all licensed models that can basically be built only one way, but it’s good to see an article debunking it.
Show HN: Ploomber – workflow management to accelerate DS/ML pipeline development
One huge issue with introducing licensing in software engineering is the fact that there are a great many very competent self taught software engineers. This breaks the conventional model of how licensing works with its close coupling to university degree programs.

The reason you see so many autodidacts is that its one of the few engineering fields where tinkering is both cheap and safe. Civil engineers basically can't tinker beyond maybe building models or using physically realistic simulations, and neither of those is a substitute for really building things at scale. Anyone with a decent computer can tinker endlessly with software with little or no consequence to anyone else when it breaks.

The only other engineering field like this I can think of is electronics, where you also have a lot of autodidacts because components are cheap and unless you are messing with super high voltages it's pretty safe to play around.

There is always a huge pushback against licensing in this field because it would be (accurately I think) seen as a way for universities to erect a mandatory toll booth.

The second huge issue is that we don't have a good theory of good programming practice. There was an attempt to systematize things in the 90s "design patterns" era and all it got us was a ton of monstrous overengineering satirized by the many "hello world, enterprise edition" joke code bases on GitHub. More academic efforts around provable correctness have never managed to cross the practicality gap for widespread adoption.
> releasing practically their entire catalogue of movies on Netflix

Except in the US, Canada, and Japan.
Fascinating stuff! I think that the author left out one crucial point: purchasing power. Per Pew Research[0], wages have not kept up with inflation. EDIT: Until recently! I do wonder if the creation. of a perception of increased expense has to do with the state of wages before the last decade.

[0] https://www.pewresearch.org/fact-tank/2018/08/07/for-most-us...
Without tagging packets over the internet, you can only throttle tcp streams and prioritize your upstream.

I can prioritize the packets I send to my ISP, but I have no control over the order I get packets from them.
Any book recommendations for someone who would like to learn more about GAAP, accounting, operational earnings, and/or how to evaluate stocks?
Of course. But my question pertains _how_ the event data is stored. Heap stored the event data in Citus, and OP worked to optimize their PostgreSQL for queries across the data. Freshpaint doesn't query the data (in the aggregate form that Heap does), it simply needs to find events that qualify as defined events and forward them to their destinations.

I'm just asking if PostgreSQL is still the right tool for that.
> it also shows that everyone gets a chance to be part of the 1% for a bit.

> Which is better: everyone is always mediocre, or everyone gets to be super rich for a bit and poor for awhile?

This wouldn't agree with real life, it's been shown that rich stay rich and poor stay poor with much higher frequency than chance, almost always.
https://fivethirtyeight.com/features/rich-kids-stay-rich-poo...

https://www.cnbc.com/2019/05/29/study-to-succeed-in-america-...
> You've just changed the word without actually defining anything. What constitutes practicing?

Work for compensation.
Making too many special-purpose parts around the late 90’s/early 2000’s is part of what almost drove them to bankruptcy. Making new LEGO moulds is incredibly expensive (plus the added logistics of producing and storing new pieces) and if they can’t reuse a piece it’s a sign of a bad design from a financial perspective.
FF is considering implementing something in this space, yes. Note that there are at least two proposals for how this could work: one that is already deployed via a polyfill on various sites and the Google one. They have various functionality tradeoffs, and unfortunately Google decided to make up a wholly new thing instead of improving the existing thing...
When I lived in China 10+ years ago, the West would criticize the Chinese government for limiting the spread of "opinions" on social media. Today, in the West, we call that "fake news", and limit its spread too.

Give it another 10 years and, at least here in Europe, we will have the first countries copying the "social points" system China is currently rolling out.

Not sure what to do about it.
Seems like not available in the US yet
Except here in Ireland, unfortunately; absolute lowest mortgage available is 2.3%.

Repossession is especially difficult here, which raises the risk for the lender, and the banks unwisely gave out ECB trackers (as opposed to the EURIBOR trackers more common elsewhere) back in the day; some of these can be as low as 0.5%, so everyone else has to pay for that legacy.
They are not correct. Twitter does not accept political ads.
PBLENDVB is weird.

My guess is that it wasn't an execution or rename limit, since PBLENDVB should be "just as hard", but a decode or (pre-rename) uop format limit: i.e., the uop format in the IDQ couldn't handle three variable inputs, but the implicit xmm0 is fine (doesn't take any space). Or the decoders couldn't handle it. Still, once 3-input stuff like FMA did appear I don't know why it wasn't fixed. Possibly FMA has special handling...