HN user

bumper_crop

218 karma
Posts0
Comments46
View on HN
No posts found.

This is great news! For far too long, Website owners have been collecting data on their users at no benefit to the users themselves. When website owners try to collect data on their users (for any and all reasons) it just violates the privacy of those people and needs to be put to an end. Those French website runners should really create their own, CNIL and GDPR compliant anonymized data storing, rather than using off the shelf, low cost alternatives. After all, things have been a bit too easy for them. (Running a website is pretty easy, I would know!). In fact, The fact that other, compliant-data aggregators, offer fewer features and lower reliability is actually a good thing. Trying to improve your website or even pester me with whatever you made is just irritating spam; I can't believe those independent owners would even dare. They should just be flushed out of existence.

HEY! Why is everything being centralized to just a few services? Why is the web dying?!

Do you talk with regular people, outside of the tech bubble often? If money were really the problem, Walmart employees would jump at an opportunity to work at Costco or any of the other higher paying places. OP is claiming that because salaries aren't high enough, people are deciding to stay home and watch Netflix.

This is lazy explanation that's easy to agree with if you don't think very hard about it. Two reasons:

1. A shitty job at $15 an hour is equally unappealing at $16 an hour. Someone who doesn't want the crap hours, crap boss, and crap customer interactions isn't going to change their mind over an extra buck an hour. The money isn't the problem, it's that companies make it _not rewarding_ to work.

2. Raising pay ratchets up inflation, and isn't a response. Cause and effect are reversed. Unlike food, gas, houses, movie tickets, and restaurants, the amount of money transacted in wages/salary cannot go down. McDonald's can't tell their employees that due to supply and demand, they are only going to make $14.83 an hour this week. Imagine if your company lowered wages due to the "expected recession". You would start looking for a new role. This means pay increases can never go down again after a temporary bump. I won't say it's the cause, but it artificially limits deflation from ever pulling things back. Like an elevator that can only go up.

I hate how it forces to you create a module everytime.

This affected me recently, so I have sympathy for the author. Trying to upgrade an older project I had to the module system meant trying to find out how to import modules which don't have reachable URLs and were only on the GOPATH. At I hate how it forces to you create a module everytime. some point programming in Go stopped being for fun.

Step 1: have a lot of friends. You can usually spend a little politcal capital to get your first few users/customers by talking to them directly. For products that are targeted towards businesses, you'll need to call up your buddies from previous jobs and talk to them about it. After that, you'll probably need to hire a BDR or an AE to start looking for the next few. For B2C, I am not familiar.

Very timely; I found out yesterday that the UPX program (EXE specific compressor from many years ago) was made by the same guys who made LZO. I had this realization that there is a progeny from people who write compression stuff. In a similar vein, The Rob Pike post from yesterday mentioned Ken Thompson had made a custom audio compression for the Plan 9 release. He also made the UTF-8 compressor too. I love seeing how these people keep refining the state of the art.

You'll need to go back earlier than 15 years. ConcurrentHashMap and friends were added in 1.6, but String.intern has been in there since the beginning. Since Java shipped with Threads in the standard library, (but no memory model) that meant it would have been very difficult to do concurrent String deduplication yourself. If you agree string deduplication is needed, then String.intern() was a good implementation for a long while.

String.intern() also offers some other benefits for certain use cases. Earlier versions of java did not cache the String hashcode, which meant that to use Strings as hash table keys meant hashing a lot more. But, an interned string can be used in an IdentityHashMap, which was faster for a long portion of Java's early life.

(I worked on a moderately popular Java library that targeted Java 1.5 as the minimum version. It does occasionally come up useful, but only in specific, and increasingly rare circumstances)

Independent of Apple, I think we need an industry wide of saying "I'm not an idiot, this bug report is real". I've been on both sides (in a moderately used OSS project). The main problem is that the attending doesn't have a good way to filtering the noise from the signal. As a result, the likes of Apple (and the other FAANGs) implement these aggregate-and-discard blackholes for bug reports. "Only a 0.1% increase in crashes? Ship it" is the way the story goes sadly.

Make sure to read between the lines. It only looks like a busy loop. Remember, the OS can pause and preempt your thread at any time. This is a real and likely event.

One of the things that made linearizabilty click for me was thinking in terms of happens-before:

    volatile int a;
    a = 1;
    print(a) // Could this print Zero?
Even assuming only one program, one thread, one process, no interleaving and nothing fishy, could the final line print 0? In the serializable consistency, the answer is yes. Linearizability is framed in terms of clocks, but really that's just trying to establish that one thing happened before another. The "clock" in this example is the line number.

https://go.dev/play/p/xolc9oPwA0C

Interfaces don't have a zero type, which means that we can't have an atomic.Value which stores Shape. Atomic Value would be much easier to reason about if it had store semantics similar to a regular `var foo Shape = ...`. One of the other comment threads talked about generics helping this, so maybe there is hope.

That's why I opened with "Look at the implementation". Go is unable to store the type and the pointer at the same time, so it warps what "atomic" means. Pretty much every other language has atomic mean "one of these will win, one will lose". Go says "one will win, one will panic and destroy the goroutine.

In fact, it's even worse than that. If the Store() caller goes to sleep between setting the type and storing the pointer, it causes every Goroutine that calls Load() to block. They can't make forward progress if the store caller hangs.

Sorry to say, but these hit close to home for me. A lot of the synchronization paradigms in Go are easy to misuse, but lead the author into thinking it's okay. the WaitGroup one is particularly poignant for me, since the race detector doesn't catch it.

I'll add one other data race goof: atomic.Value. Look at the implementation. Unlike pretty much every other language I've seen, atomic.Value isn't really atomic, since the concrete type can't ever change after being set. This stems from fact that interfaces are two words rather than one, and they can't be (hardware) atomically set. To fix it, Go just documents "hey, don't do that", and then panics if you do.

From 2006 to 2014 I owned my own platform. Several actually. But I turned them down after it became a lot of work to maintain. At the time, it wasn't so obvious the web was dying, but in hindsight I probably helped kill it.

In the beginning the web was so new, and growing so fast, with new things, amazing sites, and more people getting online. Like all things in life, competition arises, and better sites started getting much more of the market share. People's expectations for what a website could offer rose tremendously, and would abandon a site if it wasn't up to snuff. Sites needed to have ever improving visuals, better content, better people, better interactivity, better everything.

And I couldn't keep up with it. Users went from being happy to try out something new to dismissive and bitter. More and more it felt like work to try to make them happy, to keep building more and better things. And that's exactly what happened. The Internet became work. It's why we all have to be paid to come to work and build the Internet. No one does it for free, because it's a thankless grueling job. The only websites that survived were the ones that made money, and could afford to use that money to hire people. Google, Facebook, Myspace, Stumbleupon, 9gag, and even Something Awful became money oriented rather than community oriented. They had to, or else.

The advice to "Always Own Your Own Platform" is a euphemistic way of saying make a whole company out of your site and underpay the only employee (you) for ever. The reason we don't own our own platform anymore is because it's soooo annoying to do so. It wasn't an accident.

The best lossless format is the one you can decode back to the original image. When evaluating them, there is an implicit assumption that the decode step will happen a short time later, but that's not always true. Will there be JPEG XL decoders commonly available in 40 years? Will the code even compile then? As a thought experiment, try to find the lossless encodings from 40 years ago and see if they can be faithfully reproduced. (or even 20 years ago, remember JPEG2000?)

Framing best in terms of file size or encoding speed is a really use-specific framing, and not ideal for preservation.

We hope these are Futures; it sounded like GPs farmer may have Forward contracts. If this is the case, it would make more sense for the Farmer to bail on the contract if prices get too far out. (a.k.a. counterparty risk) That would be bad.

The JVM still doesn't know about generics. The explanation you provided is entirely at the compiler (javac) level, and the JVM is still oblivious to it. There is no special dispatch, or optimization. At best, you could say there is support in the Java standard library, but not in the JVM or hotspot or anything from running "java".

An easy way to verify: Are generics in Clojure, Scala, or JRuby the same as Java (the programming language)?

I was under the impression she hadn't had any good hits leading up to the end of 2020, and enough misses caused her to lose favor. I can't really think of any great Netflix originals from 2018-2020.

I generally agree with you, though I would say now we are finding out if it's sustainable or not. Remember that for the past 2 years, TV Studios have been on lock down and the only stuff Netflix was really releasing was stuff that was nearly done before covid. Netflix has tons of cash that _they couldn't spend_, but now they can.

Consumers want high quality, entertaining content, at low cost, with little commitment, at any time. Prior to Netflix, there wasn't such an intersecting product. Now, Netflix has low quality content, but still has all the other stuff. Consumers see this, forget what life was like back in the early 2000s, and switch/sign up for several other services. It's where consumers spend their money that will result in this regression.

You ask what this person should have done? Not sign up for other services. The other providers are better quality, but regresses on all the rest of the experience. Youtube TV is more than $60 a month. Disney+ great content, but an extremely narrow content offering ("few but ripe"). HBO lagged like crazy when the season finale of GOT came out. When the regular person you asked about spends money on these other services, it encourages them to grow. The content is great, but the bad-experience, price, and schism is what they will get in return. They are unknowingly demanding it.

Stupid is probably the wrong word here; "clueless"? I personally think consumers are on the verge of reinventing TV channels, with each streaming service acting like a channel. Consumers, who liked that Netflix had so much content in one place, are slowly pushing time to go backward.

So is that why the increasing competition from the likes of Apple, Disney+ and HBO, recent price increases and password sharing loopholes have plagued its growth?

This is also a false narrative. Netflix subscribers seldomly churn. Long lived accounts typically don't cancel, since new content comes out on a weekly basis. You can't cancel your cable subscription and just buy Disney+; you usually keep Netflix around too. Netflix is only tangentially competing with other streamers; they are directly competing with cable.

The subscriber count is affected by two things: new subscribers coming on board, and existing subscribers leaving. Since subscribers usually don't leave, the miss was on the new subscribers coming in. It absolutely was due to high growth countries (like Russia) not growing.

Generally Netflix makes shows in the same country in which it operates. This has a positive interaction between the country and the company, since the shows are more identifiable to the people who would watch them in that country. While the production in Russia probably would have to stop, there was no reason to turn off access to the existing and new customers. It had no measurable effect on Russia's actions or the outcome of the war. It was merely an attempt for Netflix to "be on the right side of history". Instead, it's shaping up to be Netflix "not being part of the future".

But that's a problem. Watching a whole season makes you more invested in the show, so you're pissed off when it gets cancelled.

This is because consumers have been conditioned since last century to assume this is how things should be. Netflix is trying to create a new [better] experience, and this is how they are going about it. Pilots of shows suck! Almost always the second episode the characters are more realistic, more developed. Sure, it hurts when the season gets pulled, but it was a much better experience during the run. Why say it's a problem? It's just "different" from what you personally expect.