skysight-inc/HackerNews huggingface dataset:
You can also say that for JavaScript, and see how successful TypeScript is.

Yes, you can rewrite everything in Elm, PureScript or even anything that is more similar to JS, but step by step conversion to TS enables a significant quality improvement for large codebases (I personally think it doesn't fare so well on small codebases, where there are some people who use it even for one-off scripts, but at least we can agree on large codebases I think)
This is really interesting because I recently found the anyhow crate and I was wondering why it's not mentioned anywhere else. Definitely feels like useful information that a newly minted Rust dev could make use of.
Nucleolar stress precedes proteopathy in SLA
I agree with your general take on developer productivity, but I don't feel that modern JS is significantly messier than Python, at least not to a level where it significantly impacts productivity (I'd rather avoid a debate on the abyssal depths of the language, eg, type coercion)

I feel about the same amount of grievances with both. For instance I dislike Python's async and functional semantics (list(map(lambda n...). But it has a much better standard library overall, a lot of the scripting syntax semantics (file opening, requests, etc.) feel cleaner, etc.

I'm more versed in JS but as the knowledge curves converge in months or years to come I don't think I'll be significantly more productive in Python.

I know you were expressing an entirely subjective opinion, probably contingent on the amount of day-to-day practice you have with each language (you say you code JS in the front-end now and then... I write a lot of it), but I still wanted to offer my counterargument.
I mean interest rates are through the floor. Debt is cheap so people load up on it.
The company you contracted for wasn't claiming to be a platform that let you hire your services out to other people, was it? If Upwork or a recruitment agency simply assigned you to a client at a rate they chose without telling you what it or the project was until after you had accepted and expected you to accept at least 80% of those projects unless you had previously signalled you were unavailable, they would also face issues.

For your contract to be legal it would have to pass other tests, but for you it was an objectively much stronger position (your agreed a rate you thought your time was worth when you signed the contract, not whatever your client thought they could hire you out to their next customer for)
The tooling situation has improved a lot in the haskell ecosystem in the last year.

E.g. with Haskell Language Server there's now a good and standard way for having autocompletion, etc. inside VSCode and other editors.

In the web development space we now have IHP, which is like rails but with type-safety. It's already the second largest haskell framework, even though it was just launched last year: https://ihp.digitallyinduced.com/ (Disclaimer: I'm founder of the company that makes IHP)
I would question choosing Python for large server projects because the performance ceiling is so low. At least with the "middle tier" performance languages such as Java / C# you are unlikely to require a complete language switch as the project scales.
Judging by what transpired and how the other person behaves, it sounds like he got what he deserved. Such a rotten personality shouldn't be allowed around people, let alone computers.
You're right. A niche is not built in a day.
Yup. One could write "It takes a string as an argument & reverses it". Or one could write "String.reverse(()". For any non trivial case, such as weird options, you'll normally write documentation anyway.
Colombia and Argentina are increasingly popular
In some countries, Uber has advanced a narrative that driving for Uber is a side gig, with their drivers fitting driving in around other jobs.

This allows them to argue that, for example, they shouldn't have to pay for health insurance or unemployment or sick pay or vehicle depreciation for someone who only works 4 hours a week.

In the UK Uber hasn't made this argument much, as their drivers all have to be licensed minicab drivers - most of whom have driving as their primary source of income.
Four Countries, One Clubhouse
Daniel was probably warned by many not to respond a second time, or maybe he thinks that this emailer is a crank who isn't worth responding to, but I kinda wish he would. The emailer is either experiencing the effects of curl exploits, and doing a bad job of explaining it, or is very confused about the role curl plays in exploits in general. I'm not willing to assume the latter, although I think that's the assumption most are making here.
On one hand having less news on facebook might change the expectation that facebook is a news source and potentially reduce the amount of fake news and mis information that flows through it. On the other hand not having reliable news sources circulating on facebook could make room for even more misinformation and fake news. I miss the times when social media was simpler.
I'm sure Daniel Stenberg's life would be easier if he had chosen a different domain name.
> 5+ bedroom house for £200k

This makes me want to move to Liverpool. £200k won't get you a shoebox one-bedroom flat in London.
I heartily agree. Don't treat yourself like a 3rd party.
I'm a bit hesitant to believe that in the future low level systems programming will be done using languages like Rust, Nim or Zig. I would really love to see that but the programmers I know in that area are very reluctant to accept any additional layer between them and the hardware. It's not even just low level systems programming, but basically any large project with some sort of performance constraints still seems to stick to C++.
We haven't yet solved the problem of how to most effectively reduce such issues in projects where developers and management do care about security (and there are certainly more now that companies can be heavily fined for data breaches), so let's tackle that one first.
> People are allowed to be objectionable if they want to.

Isn't that what we (should) have judges for?

I mean, if a judge blindly follows the letter of the law, we can replace him/her by a computer.
What I meant was that you should appreciate the quality and forget about quantity. At 2-3 glasses every night, I bet that you just drink the same thing over and over, so yes I agree with you that you are bordering abuse.
I used to do this with whisky, but nice bottles are pricey so I drank cheap whisky and quickly got bored. Now I buy expensive bottles and appreciate it from time to time.

Alcohol is embedded in our society because it is the traditional way for people to let off steam.
Its not a garbage collector. All i want is to be able to query the list of allocation made by a process.

Performance would not need to be great, I would even assume it would be quite bad. But being able to write APIs, that have debug mode that tells you precisely when you give a API call broken pointers would be very useful.
> maybe made a police report (not that I'd expect the police to actually do anything at this stage).

Indeed. But one shouldn't underestimate the chance that this wouldn't be the first report about this person. Lots of similar reports like this may actually cause them to do something.
Agree that Deliveroo fees seem high on both ends (customer and restaurant). Wonder if this means they (a) they are inefficient (b) they have large profit margins or (c) it is actually more expensive to run than one might think. If (a) or (b), the conditions for lower priced alternatives seem high.
I remember when Uber was a hype. Stories about people making a lot of money. Didn't last long.
While I do keep my eyes on FastAPI, even in this case I would recommend Django to a beginner, solely because of the amazing Django Rest Framework.

Not only it makes creating an API from ORM models quick and easy (although the documentation doesn't let you believe so), but it also let you do custom views seaminglessly, including goodies such as standardized permissions, authentication and pagination with several levels of granularity. Having that being able to be integrated with all the rest of the Django ecosystem transparently (your website, a wagtail CRM, etc.) is really sweet.

But the biggest advantage for a beginner is again that it will prevent them from having to make decisions they are likely to get wrong. Especially on the serialization, format, identifier policy and homogeneity of the API: people crafting that by hand often make a big mess and don't even know about it.
They’ll form a union and distribute work based on seniority so anyone young and ambitious but without union connections is blocked out.
'man curl' lists Daniel. I think morons that don't know what curl is only see the 'haxx.se' domain and think it's some hacker.. it's sad a person who's written a tool used by so many people and systems everyday has to deal with nonsense like this.
I'm sorry to hear that. libCurl is great and my life is better for it.

It's really best to not reply to the mentally ill people (and you can be pretty sure anyone sending something like the first is at least temporarily mentally ill).

It can sometimes be extremely tempting, I know-- especially when they've managed to say something almost perfectly constructed for pithy comeback. But it will not help you and it will not help them. If it does anything it will just encourage the behavior.

If it is any consolation lots of other people receive nasty kookmail messages -- I know first hand, in addition to the ones I get directly some of the kooks like to send massive carbon copy blasts-- as a result I have a bunch of very strange mail rules, like discarding any email that copies both a whitehouse.gov email address and Jeff Bezos, or another if both George Soros and Noam Chomsky are copied.
I think this is a good case for being pseudo-anonymous online, even in free software. The vast majority of the community is nice, but it only takes one crackpot to make your life difficult. If you are pseudo-anonymous, you are at least protected, both physically and reputation wise, on the internet. We've always told kids to not give out their name or address online; it might be good advice for everyone.
But you need some kind of infraction or starting point if you want a judge to consider it.

'They're being objectionable' is not a reasonable starting point. 'They're being fraudulent' would be... but they clearly aren't being fraudulent.
How to Serve Coffee at Scale
This isn't quite what you said, as your comment spoke about the energy industry specifically, but I decided to see if there was any data on people's beliefs about climate change by state. I found this interesting site from a program on Climate Change Communication from Yale, and it allows you to view the results on various questions related to climate change by state. My conclusion from clicking through a few of these is that Texas is close to the national average in climate change beliefs.

Some numbers: Global warming happening 71% (-1 from Avg), Caused by humans 56% (-1 from Avg), Support regulating CO2 72% (-3 from Avg), Expand offshore drilling 57% (+5 from Avg)

https://climatecommunication.yale.edu/visualizations-data/yc...
cURL is one of the greatest pieces of software I ever used.

Thank you, Daniel, for creating it and all the volunteers who maintain and improve it.

I donated some time ago to the project here: https://curl.haxx.se/donation.html

I encourage everyone who used it to do the same.

Don't let the crazies get to you.
An owner of a local restaurant told me he pays about 30% revenue to share to Deliveroo, as part of his agreement with them. He also runs his own delivery service, and encourages customers to use that (phoning in) rather than Deliveroo.
It also could be a alcohol induced rage moment, where the sender just vented out random stuff.
It’s because curl and libcurl are used virtually everywhere, and clearly identified. This means in any problematic or malicious device or software, odds are good the first clearly identifiable thing you’ll find are references to curl.

Though the domain probably doesn’t help with the association. If you got hacked and the first clear string you find is “haxx.se” it’s not a big leap to interpret it as a taunt.
what does he propose to do with boracay,phu quoc,pelangi,sentosa,phuket,bali? fishing, farming and forestry? or become the next silicon valley?? manufacture space craft???
You mean the Daily Mash?
Yes, but you can always refinance a fixed rate mortgage into a new fixed rate mortgage at a lower rate. You have to do it intentionally, and it’s optional, so you only do it when the rate moves in your favor. Variable rate mortgages change automatically, which means they can move against you.
> Some platforms allow you to only use them for handling online order taking and payments (Just Eat?)

Deliveroo allows this too, but frankly I'd happily pay a premium to have those restaurants deliver using Deliveroo rather than themselves, as when it's the restaurant themselves you lose visibility of how far along the delivery is in the app. As a result, for restaurants that deliver themselves that will count against them when I consider where I want to order from.
I thought this was related to the ADA (Cardano) blockchain
> In the web development space we now have IHP, which is like rails but with type-safety. It's already the second largest haskell framework

Second to Yesod, I presume? How do you measure size, as in, what exactly is the quantity you measure, and how do you go about calculating/estimating that quantity?
If they did then what do they think is the infraction or offence that is being committed? They're being objectionable by committing or infracting... what? What law or regulation would they be breaking?
It reads more like mental illness..
Social media are typically quite heavy on tree traversals. That kind of pattern is very similar to trying to resolve a deep ORM query or a deep GraphQL query which also doesn't map very well on 'traditional' relational databases https://en.wikipedia.org/wiki/Object%E2%80%93relational_impe.... I believe this 'issue' depends on:
A) the type of join
B) whether your relational databases flattens between consecutive joins.
C) is there easy/efficient pagination on multiple levels

The type of join shouldn't be a problem, SQL engines should in most cases be able to determine the best join. In the cases it can't you can go start tweaking (although tricky to get right, especially if your data evolves, it's possible, you probably want to fix your query plan). B is however tricky and a performance loss since it's really a bit silly that data is flattened into a set each time to be then (probably) put into a nested (Object-Oriented or JSON) format to provide the data to the client. This is closely related to C, in a social graph you might have nodes (popular people or tweets) who have a much higher amount of links than others. That means if you do a regular join on tweets and comments and sort it, on the tweet you might not get beyond the first person. Instead, you probably only want the first x comments. That query might result in an amount of nested groups. So it might look more like the following SQL (wrote it by heart, probably not correct):

SELECT
tweet.*,
jsonb_agg(to_jsonb(comment)) ->> 0 as comments,
FROM tweet
JOIN comment ON tweet.id = comment.tweet_id

GROUP BY tweet.id
HAVING COUNT(comment.tweet_id) < 64
LIMIT 64

That obviously becomes increasingly complex if you want a feed with comments, likes, retweets, people, etc.. all in one.
There are reasons why two engineers that helped to scale twitter create a new database (https://fauna.com/) where I work. Although relational, the relations are done very differently. Instead of flattening sets, you would essentially walk the tree and on each level join. I did an attempt to explain that here for the GraphQL case: https://www.infoworld.com/article/3575530/understanding-grap...

TLDR, in my opinion you can definitely use a traditional relational database. But it might not be the most efficient choice due to the impedance mismatch. Relational applies to more than traditional SQL databases though, graph database or something like fauna is also relational and would be a better match (Fauna is similar in the sense that joins are very similar to how a graph database does these). Obviously I'm biased though since I work for Fauna.
Well, I’m sure it’s 90%+ Twitter
Haven't this done by any company in Europe, and yes, it is despicable
Modern Electrics: Electric Discharges Producing Artistic Photographs (1909)
"At Nantes, France, Dr. Stepane Le-duc has made most artistic and unique photographs by utilizing electric sparks and discharges from high tensión coils as shown in the accompañying illustrations. The effects produced are not unlike those of the most beautiful crystals of snow or ice, or those given by the kaleidoscope, the more exquisite ornamental figure in its wondroud variety being obtained by this electrical process. [...]"
I suppose this is an argument in favour of the asset downloading scheme pioneered by maven/gradle and nowadays adopted by many languages: The unhinged and/or ignorant won't see sane/good library code mixed into worse code that uses the libraries.

But oh god, it's not exactly a technical argument.
If you crack it, you haven't found a bug though. You managed to do a bit of circumvention.
He already responded by revealing the email and real name of the person, presumably without consent, aka doxxing.
There can be relatively autonomous greenfield project teams that choose their own tech stack within big companies which I think have the best balance between work, life and work satisfaction.

Of course they rarely last for long, at some point you'll probably be integrating your project with some big legacy project at which point you've essentially become yet another maintainer of the local dev resource blackhole and might occassionally need to do some work for the original project you worked on (although maybe not; if you've done your job well you might find anyone can pick it up!).

But hey it's pretty good while it lasts.
> That code is used to root and exploit people.

That comment made me think and I realized the following.

Open-source code like curl is inevitable when a society gains internet [1]. It's not Daniel's fault. If anything is to blame, blame the internet and human nature on a grand scale [2].

[1] If he wouldn't have made it, someone else would. If no one else would, then people would've done it privately. Some of that code would've been leaked and popularized as an open source project (it's basic probability: many people would need to do it privately, since they have to if they want their CLI to interact with the web).

[2] There was an interview I read/heard somewhere where some Twitter employee said: if there is a 1 in a 500 million chance that something could happen based on a small piece of text, it means that at Twitter, it happens every day.
Anyway, the situations seems a bit ridiculous in some campuses: https://www.standard.co.uk/lifestyle/esmagazine/what-s-going...
Things are slowly improving. For example you now have the Haskell Language Server (https://github.com/haskell/haskell-language-server) which makes it way simpler to integrate haskell into your editor.

I'm using VSCode and the official extension (https://github.com/haskell/vscode-haskell). The default experience is not at the level of what I have with Go or Typescript but already quite good (though it's not that stable IMHO, I have to restart the server more than I would like).

The Haskell Platform (https://www.haskell.org/platform/) makes it simple to install almost everything you need to get started (the compiler, standard libraries, build tools, etc).

It's not there yet, the beginner dev experience is still painful and frustrating, but things improved quite a lot.
You reinvented OStatus and Salmon?
I see someone who ended up in a bad situation because they messed up, and in their anger tries to blame someone else instead of taking responsibility.

I use free and open source software everyday in my products and I am fully aware that all of them have licenses specifically telling me that there is no warranty or liability of damages. If something goes wrong, it's on me, I made a wrong choice and I have to deal with the consequences.

And threats are not okay and should be reported to the authorities.
Exactly. Lots of comments. People afraid of doing changes. Or removing old unused code. Not fully understanding what is going on. All signs of a broken development setup. Spend the time and do it right. You will be paid in multiples.
Not even just microservices. Even just unnecessary layers or tiers.

I'm working on a project right now trying to spin up the infrastructure in the public cloud for a simple application that some bored architecture astronaut decided would be better if it had an "API tier". No specific reason. It should just have tiers. Like a cake.

Did you know Azure's App Service PaaS offering introduces up to 8-15ms of latency for HTTPS API calls? I know that now. Believe, me I know that all too well.

To put things in perspective, back in the days I cut my teeth writing "4K demos" that would be added to zip files on dialup bulletin boards. In those days, I carefully weighed the pros and cons of each function call, because the overheads of pushing those registers onto the stack felt unnecessarily heavyweight for something that's used only once or maybe twice.

These days, in the era of 5 GHz CPUs with dozens of cores, developers are perfectly happy to accept RPC call overheads comparable to mechanical drive seek times.

I can hear the crunching noises now...
> An owner of a local restaurant told me he pays about 30% revenue to share to Deliveroo, as part of his agreement with them.

If they've agreed to it, what's the problem?

The parent comment was complaining about Deliveroo setting up without an agreement. When they do that they have to mark up - they can't take a 30% cut of the restaurant's price as the restaurant charges Deliveroo full price.
This is like someone sending death threats to the inventor of bricks for a house falling down.
I'm really not fond of string handling in Ada, but I can't imagine seriously arguing that C-strings are better.

Ada strings can be a pain to work with - but that's basically just my problem. And I haven't found it to be all that terrible, actually. Use unbounded strings. Don't mix fully-specified string types. There's even some fairly common styles for shorthands, like the unary '+' for unbounded conversions.

It's not great, but it's pretty fine. I don't do so much string manipulation that it's a huge deal. Most all problems will be caught at compile time. Things like the OP are pretty much all taken care of by simply not mixing fully specified string types.

And even if you do do it, the worst that'll happen is an exception. That's it. Meanwhile, try misusing a C-string. If you don't get to enjoy trying to track down that problem from all the strange problems it causes, somebody else will be glad to gleefully use it to exploit your program.

Ada strings are annoying to you, but they won't cause massive problems - either for you or your users. You cannot say the same for C-strings. I'll take a bit of easily solved bother over trying to debug buffer overruns or massive security problems.
This question has been bothering me for a very long time now, does a food delivery platform really require the 20-30% fee to operate? If so, what justifies it? Or is it because of the spike in demand due to the pandemic so they can get away with it?
> undotree

I was going to mention this plugin. I haven't fully mastered quickly jumping around in it, but it's one of those things that when it's useful, it's VERY useful.
This is nothing but an attack on general purpose computing. So now if some company doesn’t like what you’re doing with their hardware they’re going to knee cap you? You might think it’s ok now because you don’t like the environmental effects of crypto mining but you better ask if your going to ok with the next thing they go after.
Can You Trust Amazon’s Five-Star Ratings? Fake Review Sites Uncovered