skysight-inc/HackerNews huggingface dataset:
Hey, details on how we're providing E2EE with links has been documented here: https://ente.io/blog/building-shareable-links/

Some bits of the blog post are outdated, since the feature has matured since then. But the implementation details are roughly the same.

TL;DR: The keys are added to the URL fragment (the part that follows the #), and these fragments are not accessible to the server.
Many modern cars can run up to 1000km from one tank. Electric vehicle is awesome for city daily driver but not so good for long journeys, especially if you cross borders.

Regarding cost of ownership many forget that ev loose value much faster than traditional cars.

What is the point if you spent 1000 less but lost in value 2000 more?
Global malnourishment: 1 in 8 people are obese
I really like the idea, maybe eyes and gaze come across as a bit creepy though.
Ask HN: How to obfuscate an email on a website in 2024?
I'm making a simple, static website for someone's small (one-person) enterprise. We'd like to put the email on the site, but I'm a bit afraid of spammers. What are reasonable practices to obfuscate the email in 2024? I can think of at least two simple (?) approaches:

"Contact me at blah(at)bleh.bloh"

(which I personally don't like), or using some homoglyph (like Cyrillic "а" instead of Latin "a") and writing a simple JS function which will change it to normal, Latin "a" after e.g. the first click/keypress on the page (so that when a human actually copies the email, it is ok, but there is no visible change in its appearance).

Are these ideas good? Why/why not? If not, what are better ones?

Note: the person I'm doing it for does not want to change the email provider nor create any email account/alias other than what they have now.
This article is uninformed nonsense, as per usual on this topic. When the 10x study was published, it referred to tested, quality code (and assembly code, at that). Reminds me of another article from a while back where a 0x engineer who spent his time on other maintenance, code reviews, and testing without logging his work one sprint made similar complaints about wanting productivity, as if the rest of his team thought freeing up their time to develop their task was reducing their velocity somehow. At best this type of glorified blogspam is clickbait, and at worst it suggests a strange desire to disregard hypercompetence instead of trying to learn from and emulate it.

And besides, if it genuinely (again, clickbait) takes you 100x longer to code something with tests as it does your colleague without them, there might be something deeper going on there. It could be worth trying to learn from them anyway, even if their code has a few bugs you would've caught.
You missed the most important tip - use ShellCheck on every script you write: https://www.shellcheck.net/

Personally, I'm a big fan of BASH3 boilerplate: https://github.com/kvz/bash3boilerplate

It's fine for BASH versions above v3 and provides decent logging though I typically extend the script so that I can pipe long running commands into its logging framework. It also ensures that you specify the "help" options correctly as it parses the usage information to process the command line arguments with support for short and long options.
I don't have personal experience using this but have come across https://github.com/surma/jsxx.
Context matters, and businesses all have their own contexts. But in general, what you refer to as "0.1x developer" is what generally is understood as the "10x developer", and your description of the "10x developer" feels more like overconfident and unguided jr-mid level devs.

It's easy to step into the trap of thinking lines of code written, or amount of commits pushed are a benchmark for a dev's productivity. Reality is, the greatest devs build a stable product that leaves everyone's pager silent even on peak usage, lets new contributors be productive quickly, and cause no blockages along it's development.
I think Ada, due its DoD origins and mandated use in some defense projects is more common than Pascal or Modula-2.

Funnily enough though, I took a basic computer science course back in 1995 where Pascal was the first language that was taught! I still remember the instructor telling us to imagine how we would instruct an alien how to use a vending machine, we could not assume it knew anything and had to lay out each logical step and it would do exactly as we told it, so we better get it right. He said that was the mindset we needed for programming.

Fast-forward to 2004 when I resumed my further education and now the first language taught in that university was Visual Basic, followed by Java for the object-oriented programming class and then straight into pure C for Operating Systems which was a bit of a jolt. Oh, and then back to Java when we had some horrible UML class with design software that auto generated code.

Apologies for the off-topic meandering, the mention of Pascal brought back memories!
> some kind of proxy between you and the site buffering things up.

Yeah I think that might be it, because it works fine on FF (iOS) outside.
Do enlighten me on why it is a bad idea to use loops over read; it's perhaps one of my favourite patterns in bash, and combined with pipes, appears to me one of the cleanest ways to correctly and concisely utilise parallelism in software.
I was only ever talking about a very narrow point that you apparently missed.

I'm not having a general Iraq war debate. Everything interesting has already been said about that.
I'm sure the regulation is plenty strong, given that trying to play a game of rules lawyering is something that doesn't really fly in the EU. The spirit of the law matters here, and I'm convinced that Apple will pay the price for their complete nonsense soon enough.
It seems like it's a different picture in the states. "The many" are in no way near able to afford/accomplish owning a house on a lake. This is reserved for the elite.
I noticed that you can't really quit this site with back button. I think it's because as you change the code the url is changed to reflect that which adds entry to url history.

Maybe it would be better to replace last entry rather than to add another one?
They knew very well what they were doing.
I was of the opinion that the reliability of the storage medium does not matter much for backup purposes, so long as it's reliable enough to survive the days between a failure of another copy and the rebuilding of that.

But you've convinced me that it's not a blanket statement one can make, due to silent data corruption. Even with systems that have checksumming, you're right that I'm not doing a full data read on my restic backup regularly. I guess it can still be an option to use regular USB sticks, given the right software and discipline to run its checks, but at that point, it's probably easier to use a more suitable storage medium, especially since HDDs are the cheapest option per GB.

(Not that I personally use USB sticks for backup currently, but I do repurpose old hardware for things like my email server.)

Thanks!
While I agree with your post in general, this is not true:

> we don't have animation frameworks for the terminal is because it's not possible

We've had AAlib for 3 decades already: https://en.wikipedia.org/wiki/AAlib - and it's not the only game in town.
I want to know what factors are in play in managing information on this site.
> but they are all incorrect, full stop.

I don't agree. Correctness is strictly determined by common usage. You're viewing language through the lens of a software engineer, where there are logical rules and primitives that combine together to construct outputs from inputs. Language isn't logically airtight like this. "Could care less" shouldn't be thought of as three words. Think of it as one single new word with its own meaning that has no necessary connection to the meaning of the constituent parts that make it up. Just like compound words and other idioms.
There is always a main currency for any entity, so any foreign currency dealings or having a reporting currency adds some fun in the form of changing exchange rates, realized/unrealized exchange rate differences, rounding errors and other shenanigans.
I’ve noticed that things are moving really fast in this area, I can barely catch up with the new terms being created. Aligned LLMs was a new thing to me but it makes sense.
Agreed, or if you dont, you should run pip-compile during CI/merge in order to pin every dependency in the entire tree.

These are very solveable (and have been solved for a while) problems. It really pains me that most people are either unaware or do not dive deep enough below the surface to find them.
> but it's absolutely ass for UI.

uhh, no it isn't?

And gainmaps suck, take lots of space, don't reduce banding. Even SDR needs 10-bit in a lot of situations to not have banding.
N=1 but I find Copilot to be incredibly valuable to me.

So much so that when there was an outage a few weeks ago (or maybe I had network issues on my side) the loss of it was palpable. I found myself pausing, waiting for Copilot to spit out code only to realize it wasn't going to do it. Once you've used Copilot for a while you get a good sense of what it can and can't do. When to pause and when to just keep typing. I was so used to knowing "this is a thing Copilot will do well" and waiting for it that I kept forgetting it wasn't working right now.

Even before this experience I was convinced of the usefulness of it. I've been writing code for close to 20 years and I think I'm pretty decent at it, I never take Copilot's suggestion without first understanding what it's doing but more often than not the suggestion is almost identical to what I would have written myself. Sometimes it wants to do a `.forEach` and I would prefer a `for()` loop but that's easy to fix and often writing `for(` is enough for it to re-write that part of code in the way I prefer. Those changes are often only stylistic.

In addition, it's great for code I don't write often but need something quick and dirty to test out a POC. It along with ChatGPT feel like cheating. Just yesterday we were looking into an issue where I work. We had some timing data in the logs but nothing was consuming/displaying that data. Yes, we could grep for the lines of data but we didn't have this feeding into prometheus and the effort to do that was not going to be minor.

Instead I had ChatGPT parse the log lines I had already filtered with grep and spit out CSV data ("Datetime, how many seconds something took") then I had it write an extremely basic HTML/CSS/JS file to graph the data. After checking that it was all working I hooked up the command directly in the php file that held the graph so we had "live" graphing (after a reload) of a problem we were investigating. This whole thing took well under 5 minutes.

Now I'm perfectly capable of doing everything I just outlined above but it would have taken me longer than 5 minutes just to look up and use the ChartJS syntax/api. Instead I had a tool displaying near-live data in almost no time at all.

"AI" feels like a superpower. I already know what I want to do and often I even know how to write the code to do it but LLMs let me skip the repetitive boring parts and focus on the things LLMs are not good at, my specific problem space, the specifics of my stack, etc. Only I can do that (for now at least), let the LLM spit out graphs, loops, awk commands, etc, I'll glue it all together and make it useful.
Interesting. I can see two (perhaps a bit unorthodox) uses for this.

1. As an Emacs-lite on some server I have access to, but don't want to install full Emacs on for some reasons. Currently I use Zile for that. And yes, I know about TRAMP but I have reasons not to use it.

2. As a toy editor for my 7yo son to learn/practice typing on a computer/basic text editing. Currently I just fire up Emacs for him (what else?;-)), but it's easy for him to accidentally press something with unexpected results (and then daddy has to C-/ and/or C-h l). Here, I could probably make a whitelist of possible operations.
I think you misunderestimate the dynamicisity of the living English language.
I’m skeptical that C++ can manage anything as clear and concise as:

type Age is new Natural range 0..150;
Nah, I just skip an article that starts with a non-word like overabuse, as it is unlikely to teach me anything. Especially when the article is about the equivalence of two concepts.
https://github.com/weilueluo/tsm4j
Joel Spolsky more feels like a good dev (median skill) that is really good at writing blog posts.

He had some pioneer ideas about automatic micromanagement by Jira-esque velocity tracking tools. A sin he got way to little critique for.

Carmack is probably the archetype of a 10x dev and like any real diva he seems very toxic to work with. Dunno if you'd want him unless you are writing Doom before 3d games were a thing.
> I'll bet that, not being saint and under all that stress, you weren't perfect in what you were doing.

Foul. I applaud your boldness (the world needs it) but if you're going to play Bad Cop then you have to bring something more to the table than the rationalizations of a gambler. Otherwise this is coercion.

My favorite example: "I'd bet you wouldn't suck my dick, you homophobe." Your answer determines whether you go to bed tonight as a loser, a villain, or a cocksucker.

When you get these sorts of accusations wrong, you're being cruel to an otherwise-innocent person and causing them to doubt themselves. This causes harm. Skepticism and compassion can coexist-- it's called certainty. Call your shots or don't take them.

> The only way there is compassion in the world is when it's between stressed people acting less than their best, often much less. If it's restricted to near-perfection, it wouldn't exist; the word 'compassion' wouldn't have any usage or meaning.

Yep. Forgiving minor trespasses, turning the other cheek and all that hippie Jesus shit makes for a pretty chill life. Even he lost his temper.
i'm an old R user, now migrated fully to python.

For those of you who us R still what is your use case?

We found R has a really hard time integrating into data pipelines and was best used as a standalone tool by individuals, which doesn't really work in our particular professional setup where everyone works collaboratively together.

What we found was that R had alot of packages but most haven't been touched in years and when you contact the owner you find they've often moved onto the python/pandas/scikit eco system
For any corporation everything can be boiled down to: profit or loss?
Ask HN: Best way to store, index and categorize audio recordings
As my kids grow up, I realise I've got a bunch of sound recordings taken on my phone, usually of them saying or doing something hilarious. Right now, it's just a big directory where each filename is a timestamp, but I figure there must be a better way to make these more accessible & searchable.

A bit like lightroom/darktable helps organise and add metadata to photos, is there an equivalent for sound files?

(I'm almost tempted to crack out some sort of machine learning thing to transcribe and then tag each file, but maybe this already exists?)
Indians are unwittingly recruited into the Russian army
GitHub struggles to keep up with automated malicious forks
OpenJKDF2: Cross-Platform Reimplementation of Jedi Knight Dark Forces II in C
> Would it be easier to convince you if I replaced String with a type that doesn't implement Deref or DerefMut?

`&T` and `&mut T` implement Deref (and `&mut T` implements DerefMut) for all types[0].

> I do wish you had tried it yourself, because I hope your goal is to learn something about Rust and not just to argue down someone on the Internet.

I'm pretty confused about the sharp turn you took here. I happen to think your explanation of what's going on in the code you posted is incorrect, and if you truly are hoping that others here are trying to learn, you'd be more successful in helping them by not acting as if anyone who doesn't think you're correct is acting in bad faith. From my perspective, you completely misread what I said about Deref in my last comment and then didn't follow the advice you're giving about trying out the change I suggested with your own code because the same error occurs with the struct you define if you don't use the deref operator[1]. I'm open to the idea that I'm wrong about `Deref` being the cause of all this, but you don't really seem to be open the idea that you might be incorrect, which comes across as fairly arrogant given that you haven't really demonstrated that you understand that I'm talking about the `Deref` implementation on the _reference_, not the underlying value,.

[0]: https://doc.rust-lang.org/src/core/ops/deref.rs.html#164

[1]: https://play.rust-lang.org/?version=nightly&mode=debug&editi...
Hard drives last even less, what is even your point? I don't understand. Do you suggest they store their photos on magnetic tape or what?
That’s good to hear. Do you forsee the 2tb plan getting cheaper in the future?
Very fast learner!!
I use to be in this situation but found a much better job. My hard work is actually appreciated now even though it is not as much work as my previous job.

Pretty sure the business strategy at my old job was to keep giving more work until the person quit or figured out a way to handle it. If you said no, you weren't going to be the one progressing.

I stayed to my breaking point, didn't over stay, but so glad I left.

I like difficult tasks, completing difficult tasks is really fulfilling to me. I just don't like impossible situations.
This is an important server, not some small anonymous fringe forum. The idea that various political games are not played and manipulated also here is dangerously naive.

Could be just die hard fans or current employees/investors, but... I've seen and read enough to know how these games are played by all relevant players. Again, this is too important and trivial to infiltrate place to ignore by many many players. Sure mods can remove outright lies but the key is in subtle ways crowds can be manipulated via ie direct attack on negative emotions, or mildly revisioning history one step at a time.
If the link contains the keys, does that mean the server can also see these keys?
I am aware of the why, it's claimed to be e2e. But then it shouldn't be touted as a "pro" when compared to Google Photos which the site's home page is asking me to do. Hence the question.

As for iOS, Apple controls the whole stack. Whatever ML they do, they do it only on devices capable of that level of ML.

I can buy the cheapest android I can find with a 10 year old mediatek processor and search for pictures of my dog and it'll show it. There is a value to doing the heavy things on a heavy hitting server.
Email reminders, feedback based learning. It will tell you when to revise anything based on your learning the previous time!
A legit user getting told they are banned can contact the site to try and resolve the issue on why they have been misidentified, getting shadowbanned will possibly never get resolved.
It’s an interesting conception of the 10x developer, but I feel like the 10x developer is just someone who does what the 0.1x developer here does, but 10x faster. It should mean excellence in all respects, just 10x more of it. That’s what we’re x-ing, not just raw lines of code per hour.

There’s truth though about the “leave a trail of destruction in their wake”. I worked around a guy like that at Airbnb. It was a very consensus place then, and getting everyone around to agree to do stuff took forever. So, if some guy can lie/bully/cheat to do whatever they promised management, yeah, they do get more done. But it’s indicative of a sick organization, there was an HR investigation of his abuse, and everyone who knows anyone this guy burned has him on their do-not-hire list. I heard at a party he joined a company I had on my interesting-companies list, now it’s on my never-work-there list.
Magnets incorporated into a traditional street-sweeping truck shouldn't be bothered by street fixtures, unlike a on a bicycle. I can see how the bicycle approach might experience challenges, but even there I think the problem isn't particularly severe.

Switchable electromagnets which could automatically sense a large ferrous object (e.g., grates, covers) and deactivate or reduce strength over them might be another option.

A filtered reply to my earlier comment argues that electromagnets are "massive with generators". This ... is seriously misguided. Electromagnets can be tiny, you'll find them in small motors (electric toothbrush, the haptic vibrator in your mobile device). Given extant electric capabilities of a streetsweeper, a modest grid/array of magnets would be trivial to implement.
> Even pension funds can't think on that length of time.

An interesting way to legislate conservation is to mandate pension funds to set aside a fraction of their portfolio for investments that take longer to mature, such as slow-growth managed forests.
Google has ways to monetize your data. If I were them, I would be attaching a price tag to cloud storage simply to not seem suspicious :)

Most of our costs come from keeping 3 replicas of your data: https://ente.io/reliability

We could perhaps reduce the replicas from 3 (2 hot, 1 cold) to 2 (1 hot, 1 cold), and lower our costs, but it's not something we've actively thought about.

Also, our prices are designed such that the business can run sustainably, and we believe that's the best way to build Ente, where the expectation is for the company to outlive its customers.
I might be wrong on how these spam bots operate, but I assume someone (human) has to write at least a few lines of scripts tailored to the form on the website, to actually submit the spam. Adding a few more lines to also check that the submission went through doesn't seem like much effort.
I think this is a good example of how Ada handles data. The approach is to describe the data structures and let the compiler handle the best implementation.

I don’t know if that always leads to the most efficient code, but what it does is that you often think about your data first before you start programming. It’s a different type of prototyping. Once that is done a lot of the programme flows naturally around that.

Nothing stops you to do that in other languages of course but Ada makes it quite easy and part of the concept.

Together with pre- and post-contracts you get a long way in writing code that avoids some of the usual error groups without much effort.

Plus it is (in my view) easier for someone to read code if you can quickly check the range of an integer or to read the pre-post-contracts of functions. It is surprising for me how much of an implementation is fixed, once that sort of thing is clear.
This is excellent. I'm sending https://donotreply.cards/en/do-not-explain-capitalism-to-me to all of my friends who are tired with my own nonsense.
Three physical buttons at the bottom are much better user experience than apple, where the back is somewhere on top of the phone. Maybe that design worked when Jobs was alive and artificially kept them small, but it just makes it feel like those phones were toys for kids.

On a side note, I would also like a physical "forward" button, to jump through some screens faster.
Download Link: https://moneep.page.link/y1E4
Podcast interview from Victor Garcia about how writing and mentorship can help you grow as a Software Engineer.
Last time I made a static site for someone that needed people to be able to contact them, I put a Google Forms link on the page. Let Google deal with the spammers, and still the form is sent to the mail of the person I made the site for. Worked very well.

In the form we collect basic information like name and email address and some other relevant info. And then we also have a free-form text area where people can write whatever.

We also put the phone number of the business on the site, so that people can call by phone instead, if they prefer.
Your wish is my command.

The Wuhan Institute of Virology now has 500 billion dollars to spend on gain of function research.