skysight-inc/HackerNews huggingface dataset:
It's great, but it's also slow. I feel like asking someone to stick with it through 18 hours to get to the "good part" is at best inconsiderate of their time.

Much like GOT, either it grabs you enough to continue in the first few episodes or it doesn't. It's not like it changes the speed of exposition and character development. Unlike GOT it doesn't get worse with time.

Watching it with subtitles is good advice.
I'm not sure this comment responds to the parent comment's statements very effectively.

The parent comment is primarily about the non-internet case becoming uncommon enough that it isn't tested (or tested as effectively) as the internet case.

The "first" point here gives some very interesting details on the various timing of data necessary for a fix. But then it confusingly makes the claim that "the idea that GPS chip manufacturers have already forgot how to do offline cold starts is a bit silly". This claim doesn't appear to follow from the details about the offline cold starts. Perhaps some information about when these various methods of offline cold starts might help support the claim being made, but even then we'd have to keep in mind that those introducing new offline cold start methods aren't all gps manufs. We should also be careful not to discount offline warm starts or offline semi-warm starts. (iow: handling various pieces of information necessary for bootstrapping and effectively using all components possible without, say, requiring a full almanac download if a partial had been obtained previously).

The parent comment doesn't make a specific statement about what type of timing for fix when offline (either cold or warm) is reasonable. This makes it a bit funny to talk about the minimums/etc for offline cold start at all. The general thrust is that offline has become the uncommon case.

I would similarly be more cautious in the "second" point here for that reason: because of the proliferation of GPS into cell phones, I would be unsurprised if the majority of GPS devices were in devices that are "online". The GPS in those devices is primarily used for fine position information. While it's true that it can be used when the gross position estimation fails (due to lack of wifi signals or cell towers), because of the additional power consumption of the GPS radio it is less likely to be used for gross position. I would hesitate to describe this as a "prime scenario".

On the "third" point, I think we're ignoring that it's fairly easy to break offline cold starts (or make them very bad) without necessarily breaking ongoing ephemerides data. Certainly, it's very possible to break both, (given that the data is separate subframes), but one could imagine something breaking almanac assembly (for example), without breaking ephemerides subframe reception/decode/handling/etc.
It is true. Partner sites make revenue for the partner through revshare and partners attempt to create fake clicks and even conversions to inflate their revenue. Cobra effect in play.

This risk is zero (except for things like ad neuseam) on first party / owned and operated placements like search/ig/fb.

As with anything you should verify your roi through third party measurement providers, just like you would do for others.

Disclaimer: current fb ads engineer, former google ads engineer.
Are you sure they wouldn't? I am not.

Some donkeys look cute
Thank you for the thorough summary.

It sounds remarkably exploitative and horrible.

These are adults and are free to decide for themselves regarding whether to participate, but I am happy to have your summary, so that I don't have to support the production with viewership.
A fair amount of enterprise NICs in data centers do exactly this, e.g. Intel FPGA smart NICs

I don't know enough to know how this being on the CPU would affect performance in this scenario, but I'd love to learn more!
I did read it :)

My point is that the majority of "productive" things we do are geared towards our jobs. And the majority of jobs enrich the people at the top at the expense of your expertise and time invested. YMMV.

Not sure why so many people assumed I had a bad view on the article or the OP. I think what was done was fascinating, but it made me sad.
The consoles use AMD SoCs that include CPU and GPU cores, but there's nothing special about how the CPU and GPU are connected. The only remotely unusual aspect there is that many of the console SoCs connect GDDR5/6 to the SoC's shared memory controller, while other consumer devices using similar chips (marketed by AMD as APUs) tend to use DDR4 or LPDDR.
Maybe it's my Ruby background, but I don't find Rust very implicit at all, haha. We all have our own things :)
You’re stretching there imho.

L1 and L2 are per core. A cacheline is 64 bytes and per-core cache size is on the order of 32kb and 256kb for L1/L2.

Reading data from L1 is on the order of 1 nanosecond (or less) and RAM on the order of 50 nanoseconds.

If you’re scanning an array and load a dozen cachelines that’s almost certainly preferable to several cache-misses (and lines).

Memory access is very often an application’s bottleneck. The answer is almost always more arrays and fewer pointers.
> Sometimes I left a very tiny piece, that is almost invisible and impossible to click. Perhaps you can add some code to magically remove the crumbs.

Yes, the crumbs can be annoying. I might add a volume check and if there's only a tiny volume left than it's ignored...

> The triangulation of the donut changes after each bit, and it changes the shadows. Is it possible to keep the same triangulation?

Not sure how to change that, this uses a [1] library to apply boolean operations to the

> When are you planning release "Eat the Pretzel"?

Eat the pretzel is a great idea!! Stay tuned :)

[1] https://github.com/Wilt/ThreeCSG/
Right, but it would be bad to use lozenges if you didn't smoke before, which was the parent's point.
I don’t know much about this topic, but is it possible that ECC memory is more prone to single bit errors than non-ECC memory because there is less pressure on companies to minimize such errors? If this were the case, it would skew the data.
I can see how you could read it that way. My impression was a combination of two alternate readings, one that it was actually translated unofficially at least in part and/or two that the site never wastes an opportunity to describe how uncool they consider "piracy".
A similar article was published in Wired about a month ago: https://www.wired.co.uk/article/mrna-coronavirus-vaccine-pfi...
RAS covers more than just DRAM, but yes. Historically, the reporting interface is called MCA (Machine Check Architecture) / MCE. I think both AMD and Intel have extensions with other names, but MCA/MCE points you in the right direction.
Restaurants only pay because consumers demand it and would not visit the restaurant otherwise. That’s not rent seeking. That’s market forces. And what they pay correlates with how much their customers demand coke/Pepsi.
p value by Fisher's exact test is 0.007. It's a significant difference.
They've improved over the years, but they're still terrible compared to something like Rust. There are more ways to sidestep the issue though, if you develop with Spec and generative tests etc.
> Most C++ code I see has few vtables, and what vtables exist are mostly removed by the compiler. Java-style inheritance hierarchies are not idiomatic in C++.

FWIW I feel like this is a fairly recent (good!) development. Up through TR/TR1 I think at least half the C++ code I saw was pretty heavy on the "Java envy" and not at all concerned about the cost of dynamic dispatch or memory allocation. Avoiding vtables was derided as part of "C with classes" - today that usually refers more to templates and exceptions but STL implementations were not mature enough and too much code not exception-safe for those to be universally viable back then. Something I heard more than once was that if you had a destructor it should always be virtual just in case someone wanted to subclass it later.
Well, junior Assembly developers had it pretty easy on 80's hardware.

Also C++ and Fortran don't have to spend much effort to achieve that.
You can use third party measurement providers to validate the roi.
> If you discovered you were going to die in a year, would you continue to spend all your time being "productive"? I figure almost everyone would shift all their focus on doing things that "really matter".

Nah. I'd ensure that my family is going to be well-cared for, that all affairs are in order... and then proceed to blow the remaining time on videogames and whatever strikes my fancy. With an actual dead line of one year, there's no point in starting anything that "really matters" to me.

Now if I knew for certain I'll die in exactly 10 years, I'd optimize the shit out of my life. I'd be a god of productivity. Or at least I'd try. In reality, knowing that my life is likely to actually end in somewhen between 30 to 50 years is already giving me this motivation.

Because the problem here isn't the focus on productivity, but what you're trying to be productive about. Most of us live lives full of things we wouldn't want to do if we could afford it. It makes sense to try and optimize them to minimum - to make room for the stuff that "really matters".
One big advantage when writing average code is that while Rust emphasizes generics and makes them easy to write, C++ makes it so difficult that you try and avoid it at all costs. Big, complex projects are going to probably use polymorphism all over the place in my experience which is not really captured by benchmarks.

However, one advantage for C and C++ for such projects is that they make it far more pleasant to do bulk allocations. With C, you just need to group your mallocs and cast the memory and C++ offers placement new where you pass in the memory explicitly. With Rust, you need to reach into unsafe Rust (rightfully so), but unsafe Rust is very unpleasant to write.
If you take a look at people who have been caught in extra-marital affairs I think you'll find those three qualities are not immediate disqualifiers.

Maybe the "happily" part, but how does Google know that?
Augustine fou is basically a troll in r/adops.
Get a personal finance recommendation by taking this survey
Following JIT practices in production does not mean that one has to abolish spare parts storage.

The only ones known to have massive problems with spare part supply issues is Tesla, which is a contributing factor in their high insurance rates (e.g. per https://electrek.co/2017/06/05/tesla-owners-insurance-rates/).
Don't know why you're downvoted, this is a great comment.

By the way, YARV has been "ruby" since 2007; these benchmarks were run with ruby 3.0.0preview1. The name has probably just never been changed.
This is the point that a lot of people are missing

Uber shows up in the news and in conversation every day. Most people have heard about it by now. Very few people are going to install it because they saw an ad.

Not the case for your neighborhood "Bob's Burgers" or "Uber Competitor" or some other new company. Or for specific marketing actions of known companies (promotions, new services, etc)
Polyglot HTML/Zip file using zip encryption (pass: thisisapage)
Here is an example which, while trivial, demonstrates some of the optimization issues you can run into in C and C++ but not in Rust, even with noalias currently only applying to &T.

C++: https://godbolt.org/z/dTPsbh
Rust: https://rust.godbolt.org/z/Mdx87h

In C and C++, compilers are allowed to infer "noalias" based on pointer types; two pointers of different type are not allowed to alias. This is known as type-based alias analysis. But char * is given special treatment, because of its use as a generic pointer type; so if one of your arguments is char * or even signed char * , that disables any optimizations which were relying on type-based alias analysis.

This provides both for performance and undefined-behavior footguns. If you ever try to use some pointer type other than char * or signed char * to refer to data of another type, you may inadvertently cause type-based alias analysis to kick in, causing invalid optimizations and miscompilation. On the other hand, if you have a function which takes both a char * and another pointer, the compiler may not apply optimizations that it otherwise could because char * is allowed to alias anything.

In Rust, there is no such undefined behavior footgun. Because of the LLVM bug, noalias isn't applied to &mut pointers so there are still some cases which could be better optimized, though it sounds like there is some progress being made on the LLVM front so it should be fixed at some point, and there are already places where the compiler can do better optimizations with better safety due to the stronger semantics of &T.
I'm genuinely shocked at how many people think advertising doesn't work.

Just because it doesn't make a person consciously stand up and say, "I want a Snickers" does not mean the ad didn't work.

Like, honestly, are there people here suggesting viral ads don't work? Or don't understand the point of Coke or Mercedes Benz ads are for? Coke establishes themselves as the defacto soda. There is no other soda, or if they are, wish they were coke.

MB ads among other things reinforce to MB owners the wisdom and luxury of their brand. To own an MB is to be part of a club, one that is advertised across the media spectrum. If MB didn't advertise at all, they would either become another commodity brand, or have to be so luxury that only word of mouth is necessary (Bently, etc).

Now, maybe that's what cortesoft is saying "get you to waste money" but if it got you to waste money on their product, it worked.
> very few structures that old actually survive.

That’s what makes the Pantheon so amazing. It’s easy to forget it’s that old when you’re standing inside, because the structure is still so sound!
Start with https://en.wikipedia.org/wiki/Cidade_Limpa. I don't think this will slippery slope if well done:

- I choose the TV channel, website, etc. to visit, but public space I might have to walk through because it's the only option
- In that public space it may be impossible not to see the adds
- sight lines in public spaces are public property

Now, one may ask "what about paying someone to verbally advertise in public space". I think that should remain legal, because that does seem like a slippery slope. I'm willing to risk that society won't collapse so far that that highly inefficient form of advertising became cheap enough with destitute surplus labor.
It’s not about helplessness, it’s understanding the difference between writing a toy _ over a week and the professional version is generally around 3+ orders of magnitude. Many people really don’t understand that gap.

I have worked with people actually trying to do several of such projects like implementing RSA encryption from scratch, a charting library, and several other similar projects they assumed where going to be a quick solution. It’s not that such projects are impossible, it’s that people starting them generally have no idea what’s actually involved.

That said, if you’re doing it for fun then feel free.
The US President has also outed CIA operatives when it suits their purposes:

https://en.wikipedia.org/wiki/Plame_affair
Your quote is for consumer platforms (Ryzen) only; GP's statement was that ECC is not well-supported on AMD at all, which is obviously false (EPYC, Threadripper).
My experience using ripgrep and fd is that this is also true in real-world programs. :-)
For HTTPS sites Google could be trusted with providing the IP for the domain, then no extra lookup would be needed, and there would be even less tracking (by the ISP).
DNS lookups is however very cheap due to several layers of caching (browser, OS, router, ISP, etc).
The use of the "fraud" here is curious, as I don't think it's what's most advertisers would use. "Waste" would be a better word.

Fraud generally indicates a bad actor or something the advertiser was unaware of. Claiming to run my ads on the New York Times and instead running them small blogs would fraud.

On the other hand, if I chose to run my ads for wedding dresses on ESPN.com, they would be very effective (they'd have a lot of waste), but that's not really fraud. I made a bad decision.

I read the Uber comments as 2/3rds of their spend was waste, not fraud. That still seems a surprisingly high number, although I wonder how much of it was upper- or mid-funnel, which is notoriously harder to measure.
Headcount is a sad driver for promotions, so managers are not really incentivize to do it.
Only the good ones would try to keep the team lean and fast.
The practical implementation of JIT production is to get rid of (expensive) warehouses and instead have rolling trucks on streets be the warehouse - you need the trucks anyway to transport stuff, but now you don't have to pay for the space as roads are owned by the public.
Haven't heard of it before, but this looks super interesting! Thanks for the recommendation. I really like the fact that my whole development workflow could be a text editor and a terminal.

I enjoyed developing Elm with TCR[1] a while back; also with an editor + a type checker (plus the revert part). I recompiled my whole source on each save; incremental recompilation should scale better.

[1]: https://medium.com/@kentbeck_7670/test-commit-revert-870bbd7...
What Eli (and most others) is missing, are two more common strategies to avoid this dispatcher:

1st: implement the ops basic block as linked list, not an array of opcodes. Thus the next op can be called directly. No lookup and no indirect call.

2nd: inline the op insn into the basic block array, like a jit or just llvm byte code or similar. No jumps, everything stays in the i-cache.

There are more, even faster options, like luajit. Dispatch tables are pretty desperate in 2020. With 20 ops and short op insns (as in lua) everything fits into the icache. With fixed registers you can be pretty fast.
I didn't think it was on itch.io. I'll go ahead and buy it there. Thanks!
> Linguist Thomas Sebeok, building on earlier work by Alvin Weinberg and Arsen Darnay and working as part of the Human Interference Task Force, proposed the creation of an atomic priesthood, a panel of experts comparable to the Catholic church, which has preserved and authorized its message for almost 2,000 years. The priesthood would preserve the knowledge of radioactive waste's locations and dangers through rituals and myths.

Amazing. Seems like a plot point of The Foundation series.
This for sure, can also use local subreddits for locally specific companies.
I've worked in big F# projects in banking. It's absolutely superior to C# or Java in many ways. One notable drawback is "how much code can new hires write in their first month" which is not a metric I consider that important for big enough projects. The month or so needed to skill up a C# or Java programmer in F# is a drop in the bucket compared to the benefits it brought us.
But I never said tracking time inherently does that. I agree with you. It's a great way to put things in perspective.

It's just my personal experience that the majority of time we label as "productive" is in fact productivity for the sake of someone else profiting on top of it. I have nothing against the OP or the article.
Markdown, ASCII/UTF-8 text, PDF, JSON
>Did we read the same article?

I didn't respond to the article, I responded to your particular comment, which seemed to imply that customizing your programming environment in general is something great and necessary.

>The author of the article customized his environment so opening a file no longer froze his editor.

That doesn't clarify as "customizing my environment" is more like "fixing fundamentally broken shit".
One of C's biggest marketing successes.

All high level languages are portable, including some older than C.

It helps when one drags the OS the language was born on, along via parallel standards like POSIX.
You could do this in BBC Basic to make an ultra-fast switch.

20 GOTO (30 + (start%*10))

I used to use it in game loops to call different procedures for character control based on the type of character. Just needed a bit of careful tuning of the character type integer and the line numbers.
While I don't have much experience with Zig, I agree -- from my little bit of playing around, it also hasn't been a big deal.

(The biggest thing I've hit that I want is a way to return information with an error. If that were fixed, I think Zig's error handling would be perfect.)
Yea, there's some of that.
Could you explain the calculations that lead to the claim that the result is not significant? From what I can tell, if we assume that clicking the ad is a weighted binary variable, eg. what is modelled as a "proportional distribution" there's a statistically significant difference between the two results. It's even pretty strong at P=0.006 (per https://epitools.ausvet.com.au/ztesttwo), but I might be missing something?

In other words, if I'm doing the math right, for him to p-hack this by rerunning the experiment in the case of no difference, he'd have to run it more than 100 times to get a 50% chance of getting as good or better significance.

There's of course plenty of other things that could be wrong outside of the simple statistical test, he could be making the numbers up, the groups might not be properly randomized etc.
I mainly use them when I need to send a link that needs to be manually typed at some point (e.g. asking person to go some website during phone call).
Wow, didn't know there was a new version — thanks! I recently booted up my 2008 iMac to get some old files, and I was reminded how much I liked MenuMeters.
This related article is excellent – "The new dot com bubble is here: it’s called online advertising" by Jesse Frederik and Maurits Martijn.
https://thecorrespondent.com/100/the-new-dot-com-bubble-is-h...

> Marketers are often most successful at marketing their own marketing.
"Just use 'restrict'" isn't as easy as it sounds. You need to only use 'restrict' where you are 100% sure pointers can't alias. Wherever you get this wrong you have introduced a subtle bug that a) only shows up in optimized code b) may or may not show up at all depending on compiler version and target architecture and c) only shows up when two pointers actually alias at runtime, which may be rare, and may be intermittent ... in other words these bugs will be hell to debug. So in fact in a large codebase it will be a lot of work to figure out where you can safely put 'restrict' and you will probably introduce some very nasty bugs. Most people aren't going to be willing to do this.
> If this still bothers you, please tell me what kind of organization would exist to support 25 years of false starts, and what needs to change to make that kind of organization exist.

A Federal Universal Basic Income along with a Single Payer Healthcare system would go a long way to supporting 25 years of false starts for projects where the primary initial investment is intellectual labor. Many science, engineering, and cultural projects fit this description.
I browsed some online listings for ECC memory modules, and they seem to be sold one module at a time. Standard DDR4 modules are sold in pairs, to benefit from dual channel mode.

Does ECC memory support dual channel??
Because Rust does alloca for all locals, and this if course faster. Everyone else avoids it for security reasons. Just search the Rust bugtracker for stack overflows.
This is completely false. Large advertising platforms have many A/B tests that show significant differences in consumer behavior between groups that receive different ad treatments.

Ads might be less efficient than some believe, but it's super easy to see that they "work", and advertising platforms do it constantly.
https://imgur.com/a/Cbr2mno

Lol, definitely not an alt account.
Yeah, but again that isn't C rather a specific implementation.
It's interesting because this matches every GUI that has to respond in real-time.

If you look at ALL the digital workstations, they're doing their own rendering. And they all punt on text scaling.