skysight-inc/HackerNews huggingface dataset:
Share this quote with someone in Venezuela with a straight face. Or the countless unbanked that have access to a divisible digital gold but not stocks, bonds, gold, or enough to direct invest.
Link to that TU Delft study:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.559...
Show HN: Preql – a database query language that compiles to SQL
I strongly disagree. I've seen a lot of bad documentation, that doesn't bring any benefit. Sometimes it even hides important information, because there was just so much crappy information collected and put together, so nobody understands it anymore.

So before you start, think about what you need to document and why.
If you're a woman then how would I "know [your] deeply personal issues only by how [you] dress"?

I have never seen anyone make fun of people who look like women for dressing like women.

Fat and unattractive people get made fun of and harassed the world over, starting in grade school. A cis woman who doesn't look like a woman is considered unattractive too as you mentioned below.

Honestly it just sounds like unattractive people problems to me. Perhaps we need a movement to protect fat and unattractive people too.
Hey, it's Elliott (creator of Gossip's Web, Special Fish https://special.fish, and other projects (https://elliott.computer). Thanks for checking out Gossips. There's a renewed interest in building websites by hand using basic but powerful tools (HTML/CSS/a little JavaScript). Gossip's is a directory of some of these sites and lets you submit your own.

The submission criteria is pretty straight forward (no links to social media or website builders). Also, please don't submit your latest startup : ) . Personal websites, web experiments, and small community sites are all very welcome. The $1 submission fee goes toward running/maintaining the directory (I make about $3-5/month on submissions so it's not about the money). Happy to answer any questions the HN community might have and have a nice weekend!
We were so close to having ranked ballots for Toronto which is exactly what we need to improve accountabilituy, but Dougie scrapped that for all Ontario cities. Hopefully we'll get things back on track. https://www.unlockdemocracy.ca/123ontario https://www.rabit.ca/
Ok sorry, I see how you are right and how I am wrong in thinking you were wrong. The figures I mentionned are indeed bit confusing though.
>As an observation, performance optimized code is almost always effectively single-threaded these days

I do not accept this premise. Things are increasingly multithreaded.
> So your code operates directly on a block of raw bytes? I can see how that can work with mmap without much problems.

Correct. It's a finite state machine. The docs of the crate give links to papers if you want to drill down.

> My argument was more about structured data (created using the type system), which is a level higher than raw bytes.

Yes. You should be able to do in Rust whatever you would do in C. You can tag your types with `repr(C)` to get a consistent memory layout equivalent to whatever C does. But when you memory map stuff like this, you need to take at least all the same precautions as you would in C. That is, you need to build your data structures to be mmap friendly. The most obvious thing that is problematic for mmap structures like this that is otherwise easy to do is pointer indirection.

With that said, this technique is not common in Rust because it requires `unsafe` to do it. And when you use `unsafe`, you want to be sure that it's justified.

This is all really besides the point. You'd have the same problems if you read a file into heap memory. The main problem in Rust land with memory maps is that they don't fit into Rust's safety story in an obvious way. But this in and of itself doesn't make them inaccessible to you. It just makes it harder to reason about safety.
I push to a couple places that have a main git server that everyone pushes to/through and then that somehow pushes everywhere else.

post-receive hook[1] can be used to automate that,

[1] https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#_po...
End result is the same. I care a lot about cross browser and the amount of aggravation I have to go to get the developers I work with these days to even look at a site in just safari and chrome, (Firefox is completely ignored) is absurd and the amount of backchat and sarcastic comments of “can’t we just tell them to use chrome” is ridiculous.

My career started in the IE 6 era and even then people tested in at least 2 browsers.

At most I’ve been lucky to have 1 team member who cares about this stuff. Maybe other companies are better but this is my experience the past 5 years or so.
Wfrecorder [0] is what I use, doesn't have a fancy gui but it just works

0: https://github.com/ammen99/wf-recorder
Fixing 83(b) Elections
There can be real danger when the code is used in certain applications. For example when controlling the gate of the crocodile cage in a zoo.
Hard to believe that reading a financial magazine written by journalists will increase your knowledge rather than an authority in the domain or a classic book on the subject.
Ditto on being a Ferrari fan. Been re-reading this article for years, I think you'll enjoy it if you haven't seen it yet. http://www.effectgames.com/effect/article-Old_School_Color_C...
> When a new trends starts organically, it's all impulsive and genuine, then people start to profit on it and the game is over.

What you describe is simply the nature of a trend, it's happened with everything from modern Occupy movements to the teachings of Jesus. Something original and authentic becomes stale after it's been repeated a million times over.

The problem is with trends themselves, the original idea is authentic, but then it passes like a wave in the frenzy of a "trend".
> Look at the trees in the graveyard scene, the pillow shading is inexcusable.

Thanks for introducing me to the term (which led to an explicit definition) for something I've perceived before but never clearly.

The tombstones and sunset firmly establish the light source at the horizon. The foreground should be in silhouette (as it was initially) and there's no explanation for why the center of the trunks would receive more light than their edges.

(However, both versions of the dock, and the furnace with the angled pipes, are pretty terrible about light sources.)
> if you want more/less workers you just spawn worker threads to read from the queue.

My point is precisely that's its not trivial to do that.

You now need some signal mechanism to tell your main process to spawn or kill workers. That's an additional layer of complexity.

Things get even worse if you want to add new types of workers that were unplanned.

Say I want a new type of worker that is just a forwarder, or a new type of worker that stores the queue on disk for replaying it.

With a monolithic thread based design, you now need to stop your whole main and worker threads and start a newly built process that support these workers.

With a process based design, you just spawn a new worker process and point it to the existing shared memory without any interruption.
What do you mean by "failing upwards" exactly?
So much of this is familiar. I was at two database startups.

The first one, an object-oriented database company (last 80s, early 90s) suffered from an extreme case of misperceived markets, due to the occasionally intentional blurring of the lines between a "database system" (which means SQL to nearly everyone, and we didn't to SQL), and a persistent storage class added to C/C++ (and later Smalltalk and Java).

The second one (mid 2000s) was a neat physical storage trick, which should have been a feature of a database system, not an excuse for building a new one. My bad for missing this, but I really, really liked the physical storage ideas, so I joined.

Building and selling new database technology is extremely difficult. There are successful, huge, entrenched companies. There is, therefore, no good reason for anyone to gamble on your new technology. Your only chance is to convince the architecture astronauts at some prospect that they just have to have your product, but the odds of such a decision sticking all the way through the delivery of their product is extremely low, no matter how good your technology is.
> stack and heap as with C# structs and classes

Nitpick: C# struct can be on the heap (when it's "boxed").

The fundamental difference between C# class and struct is how they treat assignment operation. The class has "reference semantics" (assignment creates a new reference to the same object) and struct has "value semantics" (assignment creates a new object).

C# uses terms "reference types" (of which "class" is one) and "value types" (of which "struct" is one) to make the difference clear.

Structs being on the stack (most of the time) is just a consequence of their value semantics, and should be treated mostly as an implementation detail.
What is irrelevant again, because those officers will read the QR code with a computer. The computer can summarize to them how valid the vaccine still is.

There is no reason at all why a paper printed QR code can't tell exactly what vaccine you have taken, when you took it, who exactly are you, and what authority is authenticating the data. From there, any extra data is only needed at the time of reading.
> But, if we made a new statically-typed OO language from scratch in 2021, something in the vein of Java or C#, taking everything we've learned from functional programming and a decade-plus of scathing OO criticism, could we fix this?

Modern C# is already a statically-typed OO language that takes lots of lessons from functional programming and decades of scathing OO criticism (after all it's basically "Java done right"). And of course there's also Scala and F# if you want something more functional than OO.

I think the author summarizes it best at the end: "I realize there's not much need for a language like this—the space is crowded enough as it is—but it's fun to dream.".
I started this project mid 2019, with the goal of creating a database interface that I would actually enjoy using, rather than dread. By that point, I've done several machine learning and data engineering projects, all of which used SQL, and I felt like I spent way too much time wrestling with "data plumbing" and SQL's antics, instead of being able to focus on the data itself. So, I set out to fix it, and created Preql.

I chose a unique approach, which is to create a new programming language, that compiles to SQL. That way, it could access all of the good that SQL has to offer (and there is plenty), but with all the features of a modern language, and without the design limitations of ORMs. It allowed me to add sorely missed features like first-class functions, modules, and type safety.

I built Preql in Python, which allows for a very smooth interface between the two. For parsing, I used a library called Lark, which I created three years ago. I also created a new library called Runtype, which proved very helpful for writing the compiler.

While Preql is still in its early stages, I'm very proud of what I've accomplished so far, and I hope you'll decide to take it out for a spin.
I entirely agree, but HN is filled with ASD savants, so what would you expect? It's not precisely correct, and affirmations about known facts are largely a neurotypical thing.

NOTE: I'm ASD, so please don't call it my "NT privilege"!

A joke I like to say is that a true geek will hear about the President caught in a sex scandal and will obsess about the fact that it was because the password was easy to guess.
Push to an intermediary location. Use post-receive hook to trigger whatever actions you need. At the end, push that to the server and reload whatever you need.

https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#_po...
Show HN: Drag and drop for Vue.js made with vue.js (poc)
Innovation is slow because many of the new technologies aren't that transformative.

Some technologies are very transformative. The Internet in 1990s killed much of the paper based printing. When was the last time someone bough a physical accounting ledger? A newspaper? A printed calendar? An encyclopedia? But, it doesn't take long for people to internalize the change, and go about their daily lives. Not thinking about what happened.

Most technologies are just incremental changes. Or, new digital technologies slapped onto old brick and mortar hardware, as upgrades.
Yep same here, Safari on Intel Macbook. However, it runs perfectly in Chrome. More reason to use Safari I guess
I use `wf-recorder`- it should work well, has worked well for me.

https://github.com/ammen99/wf-recorder
That place looks lovely.
Jodi.org
This is not a rebuttal. Please give an actual rebuttal.
Personally I'd keep exceptions. Result<T> is boiler plate hell.
>can you detail down what type of infrastructure your current bank has, and why it's so good? Or is that just something you assume since you basically have zero knowledge about what traditional finance uses as back-ends?

It doesn't really matter what backend my bank uses because there's regulatory backstops (eg. FDIC) to protect me if something goes wrong. The same can't be said for crytpo.
Did you select the "M1 CPU" checkbox? Just making sure
I love these little side projects.

Something similar, but perhaps even more 'plain' – https://kvak.io
What are the soups?

Both Google and DuckDuckGo give me no results so an example would be appreciated.

(Hope I'm not caught up in a prototype joke :)
If you have nulls (or nullable types) then you end up checking for them everywhere (in every codebase I've seen anyway - keeping them on the boundaries only works if that's practical and the language always does it for it's standard libraries etc).

Additionally you can no longer say Thing is Thing, it's always Thing or null - which results in special handling

if (foo === null){} everywhere and when you don't boom NullPointerException.

Exceptions cause problems in other ways (especially when they are allowed to escape up the stack), business logic shouldn't be handling FileNotFoundException that was thrown 6 layers away.
Your original comment was trying to argue that allocations aren't a big performance problem. Anyone with experience optimizing knows this is not true and that minimizing allocations is the first thing to look at because it will most likely have the largest payoff with the least effort. Incorrect preconceptions and misinformation doesn't help people.

Saying 'allocations are fast' because you can make unnecessary allocations cheaper while ignoring deallocation is basically a lie, it's playing some sort of language game while telling people the opposite of what is actually true.

> Most allocations are from the fast path... that's why they bother to make it fast.

This is where you have a deep misconception. Doing millions of allocations that could be one allocation is not fast. If you want to add 1000000 to a variable do you loop through it one million times and increment it by 1 every time?

> TLAB allocation is heterogenous (which solves your size question.) An array isn't. TLAB can be evacuated and fragmention-free (which solves your lifetime problem.) An array can't.

That's like building a skyscraper out of legos because they fit together so well. It's nonsensical, especially due to pages and memory mapping.

> I said 'Deallocation though - yes that's slow!' in my very first comment.

Do you have a house with a kitchen and no bathroom? The discussion is that excessive memory allocation is a huge factor in performance. Trying to play language games to ignore the entire cycle doesn't change that and misleads people. Allocated memory needs to be deallocated. Lots of tiny allocations of a few bytes each are a mistake. They cause huge performance problems and should be obviously unnecessary. You wouldn't pick one piece of cereal out of the box, you would pour it in.

Do you profile your programs? Do you work on optimizing them? I have a hard time believing you are doing something performance sensitive while trying to rationalize massive memory allocation waste.
51? WTF?! What was the cause of death?
I don't think that's a fair comparison. Today I develop mostly on Chrome, but I don't dread testing for compatibility on Firefox or Safari. The standardization is quite good across vendors.

Add to that, back then Microsoft had no drive to move the web platform forward. IE was not getting better, which is why it was eventually eclipsed by Firefox and later Chrome.
You could use fiverr and a generational model.

generation 1 :
write a brief
5 designers @ $5
select your favorite design (be sure to get some outside human perspectives)

generation 2 :
modify brief based on what you learned in generation 1. what you liked and didn't like.
include the winning design from generation 1 as an inspiration and say you'd like to improve it
5 designers @ $5

for $50 you get 10 designs and have iterated twice

you can repeat this process until you're satisfied.
I actually hate this, because now I need to install a bunch of apps, 1 per service, just for 2FA. Even if I don’t use them. I much rather prefer Google authenticator, personally.

Having an extra option is nice though. But it’s often one or the other.
starlette-jsonapi experimental OpenAPI (fka Swagger) support
AI has cracked a key mathematical puzzle
Any idea on the claim?
Learn Languages Reading
Developers on the Mac
4. Egress costs from the clouds are non-trivial for large datasets. So now you're locked into both your db and your cloud.
Why does it need to be deorbited? Why is collected and held not effective?
Emacs with org-mode..
the ability to write an article about programming, and the code to and the diagrams (plantuml) in one place has been revolutionary as an author.
After the Ukrainian state was taken over by fascists in 2014 and started threatening ethnic Russians and Jews in the Donbass, a local referendum was held on whether to ask for help from the Russian Federation. After it was won, the help was provided.

Like most history, it's a bit more complicated than it first appears.
Ironically Toronto already had a floating restaurant called Captain Jacks. At the base of Yonge St. The Port Authority and the Owner could not come to an agreement on money owned for use of the slip. The owner packed in after a good run for a couple of decades. The vintage ship was towed away, and hacked up for scrap. Toronto was left without a good restaurant on the water.
> And it is not all bad. While the community is less genuine, it is also more productive, if anything, just from the sheer numbers.

And it’s basically just a natural and recurring cycle:

Phase 1: Novel thinker creates something new

Phase 2: Early adopters pick it up

Phase 3: General public joins in

Phase 4: Early adopters get crowded out by newcomers and turned off by lack of ‘authenticity’ and either retreat to obscure niches or leave in search of the next trend
ShareX is native option in Windows, support screenshot, annotation, record screen as gif or video. And can upload to many services
>"Object-oriented programming is out of fashion now"

Start with this one. It is not out of fashion. Supported by many languages. Also languages do not exist to be cool and admired. They are just a tools that help build things. Concepts like OOP or any other style are not universal. Good for doing some things, not so good for doing other things. Hoping that some concept will magically solve world's problems is very naive at least.
Are you unaware of stable coins such as DAI that run on ETH?
Code affected by unsafe already has to go through `UnsafeCell` which disables most aliasing optimizations, and the stacked borrow semantics have explicit opt-outs for such cases. I don't believe there are any Rust semantic issues standing in the way of exploiting aliasing information in this way, just LLVM bugs (and the fact that its restrict model isn't currently equipped to handle the information at such a fine granularity).
Water flows down a drainspin in different directions depending on hemisphere?
Not OP, but I can give some elaboration on why Cardano is a really interesting project:

1. Staking in Cardano does not lock up your funds, and is really decentralized, getting more every day. Because of that, more than 70% of all coins are currently staked. This brings less volatility to the price and ensure longevity of the chain. The interest is not too big too, everything seems as sustainable as it can be.

2. Cardano supports assets natively instead of having them just being backed by smart contracts (this is/will be still possible though), which means that there are no extra gas fees to send/receive stablecoins or assets other than Ada.

3. Babel fees are part of 2, it means that the transaction fees can be paid by native tokens, not only ada. This is a huge improvement from the BSC or Eth, where you need BNB/ETH to pay transaction fees even if you're only dealing in stablecoins.

4. Smart contracts are finally coming in Q2, which will bring DeFi to Cardano (this explains the price mooning in late feb, early march, because of the mary hardfork).

5. Forks and updates in the chain are painless, last one I didn't even had to send money to a new wallet or anything like that.

6. New developments and features to the chain and ecosystem are being "baked into the protocol", in a sense. Project Catalyst is the first step for this, financing some projects, but in their roadmap they plan on giving away all control of the direction of the coin, and only work as a service provider to the ecosystem using the same infrastructure as all the other projects.

I'm really bullish on this coin, not only on price but also on the kinds of problems it can solve. Can answer more questions if you have any :)
https://vcvrack.com - is pretty cool.
Awesome! Hi!
It's as if I've entered a digital Wonderland, and the white rabbit's a bunch of links.
Well cards against humanity did that and the hole was worth over 100k!

https://www.theguardian.com/technology/2016/nov/28/cards-aga...
A large majority of people in tech seem to have convinced themselves that you solve complexity by adding even more complexity ontop.

Yes, linux security is complicated. So why not work on improving this instead? Optimise and simplify what we already have.

Docker hasn't made the complexity of linux security go away. It has just added a whole other dimension of potential security issues people now need to manage in addition to the security of the base system.

Programmers need to shift their mindset. We already have far too much complexity. Stop thinking about what new things you can create, start thinking about how you can improve and simplify the software that we already have.
Major distros have been shipping wayland as the default backend for almost five years! I mean, yes, it's a lot of work. But it was wildly premature, and the community support for this stuff has been nothing short of a disaster of apathy and ignorance.

Which is to say: what you say is true, but there's no excuse for breaking screenshots (!) for half a decade in the name of "progress".

(And I say that as someone who genuinely thinks Wayland itself is great software. But the desktop projects and distros have a job to do too, and they didn't.)
OBS should work. I believe depending on your setup, you may need to setup Pipewire.
Witch Camp (Ghana) – magical sound of the marginalised
Voting with feet is often more impactful. Both for the cause and the idividual
Deflation strikes again. Where exactly is hyperinflation supposed to come from if farmers are overproducing food?
I know of 2 people that have received notices abroad (third world country) about paying US taxes. Neither of them have lived in the us since the early 1970s

Turns out if you are a retiree living your golden years in a low tax jursidiction, you are pretty much ignored.

However, if you want to just live your life elsewhere and dare to end up successful, (for example, buying property >100k) somehow the US government seems entitled to your earnings.