skysight-inc/HackerNews huggingface dataset:
This isn’t about rigging elections. Nobody thought the 2016 election was rigged. What happened was hyper specific advertising profiles for voters, generated from all the info on Facebook, were used to customize person-specific political campaigns. If you were in a key swing district, you would’ve got nonstop ads for Trump that told you he was going to do X, Y, and Z, where those happened to be the exact three political issues you cared most about. It is widely believed in political science circles to have been what led to the surprise Trump victory.

This isn’t rigging an election because real votes were cast and counted. However is it still a fair election if the electorate doesn’t have access to sufficient information so as to make an informed choice? That is the issue at stake here.
Zig is basically Modula-2 with a revamped syntax for C folks, plus compile time metaprogramming.

And yes, many of these issues were already solved by other system programming languages outside the UNIX linage of programming languages.
My summary: Programmatic ad systems keep delivering ads from squeaky clean brands onto disinformation websites and other unsavory places. The brands don't like this. The programmatic systems try to counter the disinfo sites but have had little success. So they just block certain words (e.g. “Russia,” “Ukraine”). But that ends up catching legitimate news organizations who then lose out of potential ad revenue.
Yeah seriously.

I feel like these kinds of concepts I to hear a few concrete examples, then generalize.

These analogies usually don't click with me.
Meteor, Ember, Derby were the "next big thing" 10 years ago.

Principles of Rich Web Applications (rauchg.com) Nov 4, 2014
https://news.ycombinator.com/item?id=8559519

https://www.infoworld.com/article/2612250/application-develo...

https://shiggyenterprises.wordpress.com/2013/03/11/picking-a...

https://blog.emberjs.com/inside-fastboot-the-road-to-server-...

It's not just that the idea has been developed over and over, but it is constantly hyped as a return to the golden past, and yet never gets the love that new client side spa messes end up attracting.
> worth noting that American space exploration achievements were also kickstarted by importing the talent from post-WW2 Germany

China can’t really play this card given what it’s currently doing in Xinjiang/East Turkestan [1]. (And while America was capturing the likes of von Braun and chemical bombing Vietnam, Mao was conducting his own crimes against humanity [2].)

The proximate history of every country’s aerospace programme is unfortunately troubled. What matters is what can be done today and by whom. In that, China and America are worthy adversaries. Let’s hope the competition can be kept civil versus militarised.

[1] https://en.m.wikipedia.org/wiki/Persecution_of_Uyghurs_in_Ch...

[2] https://en.m.wikipedia.org/wiki/Great_Leap_Forward
JSON has its issues, but modern languages including facilities to work with it (fewer dependencies to wrangle is always great) and the way typesafe (de)serializers can be synthesized automatically with a little thoughtfulness in design instead of needing to be manually written (see Swift’s Codable and Kotlin/Java’s Moshi, for example) can in my opinion make it compelling enough to overlook its warts. It doesn’t fit everywhere of course but it’s more than good enough for a vast range of applications.
The official income of every Russian is much lower than the real income. The real income is paid in cash. By raising the taxes just more income will be paid cash, so I doubt the russian state will be able to raise more money with higher taxes. That is the problem if your whole state is based on corruption.
Their answer to me is "but you called us", which is fair, but they could just rephrase the message to "WE WILL NEVER CONTACT YOU TO ASK FOR THIS CODE"
Show HN: Open-source WeTransfer alternative that runs everywhere
OwnShare is an open-source filesharing software that can be used as a self hosted WeTransfer alternative that can be run on any PHP Environment like a simple, cheap WebSpace. It uses php and static built SvelteKit.
This is interesting, but seems pretty irrelevant for the real world (kinda like "i = ++i + ++i;" C puzzle). The answer to those dangers is "don't do it then". Use your stdlib to emit json, don't use string functions to modify json, assume any number is no better tha float64, and base64 your binary data - and you will never have to worry about this "minefield"

(the only possible problem is if you are designing a security system, but even then, since all the ambiguity is whether to reject the string, it will cause DOS at worst)
Not my own story, but my mother's, told to me on the occasion of my 50th birthday ...

My parents met in their early 20s through another couple, Des (flatmate of my father's) and Mary (schoolmate of my mother's). Des had a sore hip, and Mary's mother was a "bonesetter" (a kind of folk healer) so came to the men's flat to see him. "Seeing him" involved Des getting some kind of vigorous massage in the bedroom, and then being slathered with red ointment, while my mother and Mary sat in the other room listening to him moan in pain

When the ordeal was over my mother, making conversation, asked Mary's mother what was in the ointment. One of the ingredients mentioned was "dragon's blood"

My mother went home to the apartment she shared with some of her siblings, and related the story to them. "Dragon's blood??" said her brother

... "and that", says my mother, "was when I found out that dragons don't exist"
Functional programming is dead. It never really caught on. For all the articles I saw from 2010 - 2020, functional languages are still as niche as ever. Influential languages like scala have their best functional features pulled into java. LLMs will further accelerate the decline. All the highest quality, most crucial software I have seen is written in something like Java, using classical OOP design patterns.
North Korea shifts away from toxic rocket fuel with Russian help
The U.S. still cooperates with Russia on certain matters despite the countries being enemies.
I wish governments would incentivize working from home. We've already seen that this can be done effectively for a huge percentage of the population. In 2019 I was spending about $250 on gasoline a month. In 2020 with mandatory work from home that dropped to about $50 a month. When I did go out there was no traffic which lead to even less fuel wasted. Instead we have politicians and business leaders pushing for people to return to the office. I work in a huge office park with huge parking lots. That is so much land that could be used for apartments, condos, single family homes, or anything more useful than half empty offices that very few want to go to.
I often forget what a monad is, and need to keep reminding myself "remember list.map and Option.and_then? if so, then you don't need to know what a monad is". But will try thinking about burritos next time to see if it helps.

I still don't get what they have to do with i/o in Haskell, but am ok with i/o in Haskell being one of my life's forever unknowable mysteries.
Wow, so nice to hear some people actually experimenting with not just mainstream stuff.

Where do you work (if it is not a secret)?
Many impure functions take place in Taco Bell bathrooms
A "side effect" is generally the behaviour that can be modeled by a Monad under chaining (join), and is not necessarily IO (although IO is a Monad). For a burrito, the side effect of join is the union of burrito contents.
Counterpoint: Rust.

Seems to be taking off (difficult to predict the long-term, of course), but Rust is excellent at functional paradigms and Brings many advancements of functional languages to the people.
cuDF – GPU DataFrame Library
The UK and the US ignored the blatant breaking of the Hong Kong Treaty by China. Back then the UK, US and EU should have put heavy sanctions on China. But stopping the 1% from loosing a few dollars.
Dog breeds must be 'rebooted' to halt health problems, says expert
Well, always if there's a street that was put down facing like that. Commonplace in new towns laid down over very large areas.

In the UK, oh wow, you will encounter some weird numbering issues. I live on the corner of a street in a very complex, 400 year old area, and I am forever leaning out of the window to shout instructions to utterly bemused couriers.
I refuse to believe humans are fundamentally greedy. Primitive societies where built on favors and sharing, after all. We just live in an economic system that rewards greed and (some) anti-social behaviors.

As for other ways to get out of poverty, we could compare China with South Korea, for example. The latter implemented rather protectionist standards on exports, and as a result was able to focus its economy on improving the country. As it stands now, a lot of Chinese citizens are still dirt poor while South Koreans can almost (economically) rival with citizens of the global North.
The application of the red sauce to the tortilla when the burrito is resting on the plate describes a transverse Mercator projection.
Ah, some of the things in this thread remind me of https://xkcd.com/1053/
Related. Others?

Refurb Weekend: Canon Cat - https://news.ycombinator.com/item?id=40497171 - May 2024 (35 comments)

The Canon Cat: the little computer that could have changed the world - https://news.ycombinator.com/item?id=34133701 - Dec 2022 (28 comments)

Bitters: A text editor inspired by the Canon Cat - https://news.ycombinator.com/item?id=33930276 - Dec 2022 (1 comment)

Design Considerations for an Anthropophilic Computer (1979) - https://news.ycombinator.com/item?id=33287858 - Oct 2022 (3 comments)

The Canon Cat - https://news.ycombinator.com/item?id=33285665 - Oct 2022 (160 comments)

Leap Technology (1987) [video] - https://news.ycombinator.com/item?id=33137433 - Oct 2022 (40 comments)

The Canon Cat: The Writing Information Appliance (2004) - https://news.ycombinator.com/item?id=30836958 - March 2022 (42 comments)

Demo of the Canon Cat computer released in 1987 with 'leap' feature [video] - https://news.ycombinator.com/item?id=29423545 - Dec 2021 (1 comment)

Canon Cat - https://news.ycombinator.com/item?id=26213934 - Feb 2021 (31 comments)

Leap Technology (keyboard vs. mouse on a Canon Cat machine, ca 1987) - https://news.ycombinator.com/item?id=22042900 - Jan 2020 (1 comment)

Canon Cat Emulation - https://news.ycombinator.com/item?id=18032916 - Sept 2018 (2 comments)

Canon Cat Resources – Jef Raskin's Forth-Powered Word Processing Appliance - https://news.ycombinator.com/item?id=14650365 - June 2017 (23 comments)

The Canon Cat - https://news.ycombinator.com/item?id=6978587 - Dec 2013 (30 comments)

Canon Cat Documents Archive - https://news.ycombinator.com/item?id=3394546 - Dec 2011 (8 comments)

Canon Cat - https://news.ycombinator.com/item?id=595744 - May 2009 (15 comments)
It looks like Linux is doing higher-level stuff, and the real-time is done by a pair of redundant MCUs and a FPGA.[0]

It's running F´ (F Prime) flight control software,[1] which can run under Linux, as well as on MCUs with no OS. I'm not sure on which processors it's running.

"The two redundant TI Hercules safety processors serve as the low-level flight controller (FC); each has dual-core lockstep ARM Cortex-R5F and ECC protected Flash and RAM. The
two processors run in sync and are provided with the same clock and data by the FPGA, which handles all the
sensors and actuators interface. The lockstep mechanism does cycle by cycle error detection. If a fault is detected,
it signals the error to the FPGA; the FPGA switches to the other processor and power cycles the faulty one,
so the flight control software continues to run without disruption.

..

At the heart of the helicopter avionics is a Field-Programmable Gate Array (FPGA). The FPGA implements
the custom digital functions not implemented in software due to resource limitations of the processors (e.g. I/O or
bandwidth limits), timing requirements, power considerations, or fault tolerance considerations. The FPGA device
is a military-grade version of MicroSemi’s ProASIC3L, which uses the same silicon as the radiation-tolerant device
from the same family. The FPGA perform all critical I/O to the sensors and actuators, and fault managment functions
including detecting error flags from the MCU and hot-swapping to the functioning MCU in case of an error.
The FPGA performs vehicle flight control including an attitude control loop operating at 500 Hz, an outer motor
control loop, waypoint guidance, sensor I/O from the IMU, altimeter and inclinometer, and analog telemetry for current
and temperature sensing. It is responsible for system time management, interfaces to the IMU, altimeter and inclinometer
sensors. It implements the “inner” motor control loop used for the two brushless rotor motors and the six brushed motor
servos (three at each rotor swashplate), as well as power management and thermal control functions."[0]

[0] https://rotorcraft.arc.nasa.gov/Publications/files/Balaram_A...

[1] https://nasa.github.io/fprime/
I gotta say... I would have quit writing the moment I became successful enough to be required to sit at book signings. I can't imagine sitting there all day long, bored out of my skull, faking like I care about these people. I got out of recruiting because of how utterly disingenuous the career is and how boring the work was, and the non-creative parts of being an author have zero appeal to me.
I've referred to this blog post at least twice a year since I read it 6 or 7 years ago. Not because I need to explain monads, but because the "monad tutorial fallacy" [1] is an incredibly useful concept to be aware of when trying to convey knowledge. I encourage you to read about it :)

[1] https://byorgey.wordpress.com/2009/01/12/abstraction-intuiti...
No!
1. Not everyone has a CS degree, including yours truly.
2. I chose not to attend University to do CS to pursue my curiosities/interest.
3. I am a Ghanaian and even if I had attended University I would not have done a programming language implementation or have written my own OS. The Universities in Ghana do not have that as part of their curriculums, although they do cover them at the surface level.
4. Because of #2 I was able to write a toy OS and now doing this Programming Language project.
I think that's automatically a dead end, then. People have inceasingly abandoned closed source compilers, they create a huge risk if the maker decides to stop maintaining it. Most languages that people pick up have an open source software implementation.
"Most crucial software I have seen".
Assuming you're familiar with basic programming concepts, it is practically speaking just the abstract definition of a way to ingest and pass around data in an unfamiliar context. Promises are a great example (packaging data for async processing), or the "Optional" wrapper on JVM return signatures (Passing around an object for possible-null handlers). Both those implementations fail on some purity grounds, but they're good for understanding the gist of your question, i.e. "the point" of one. (Even though I'm 73% sure some Haskell-ite is going to respond to me with an _ACTUALLY..._)
When I was younger, I had an issue with external vs internal validation. Sadly, it heavily skewed towards external validation. I was on the chunkier side for a lot of my childhood and into high school. Joined wrestling and stayed with it. Lot the weight, grew, and gained muscle. Also started to get a lot of attention from the opposite sex. That, with the external validation issue, leaned into it and just had fun. It became something that I just did.

I had been a personal trainer for awhile when I got a new client. An eighty something professor who taught Dante’s Inferno, Italian, collected degrees, and was actively pursuing some field in psychology (forget what one).

For about 6 months, we’d work out on Saturday mornings and he’d always ask of my adventures since we last saw each other. I’d regale him and that was that.

One morning after going though it all, he asked, “what else is there?” or something. Whatever it was, it stopped me in my tracks. I couldn’t answer. That question hit me harder than a freight train.

At that moment, I realized there was a massive issue with myself. I wanted a change, but a) didn’t know what to change, b) how to change, 3) how to feel about myself. We continued to work on him and his goals, which was to bench 135 safely. He got to his goal. ;). He also helped me to get to mine, which was to focus more on internal validation and be happy with self.

I was able to shift from heavily skewed external validation to external validation probably being now around 20%-30% and the rest being internal.

Because of him, I was able to embrace myself and lean into the information seeking snd knowledge gaining person I am today and get to a level that someone with my academic background should not be at.

A quote that I came up with many years ago that explains all of this and the transformation I had, “you’re not going to change until the pain of change is less than the pain of staying the same.”

One other one too. From him, the professor. I have severe adhd and can read the same sentence 50 time and not remember what I just read, if it’s not something I’m highly interested in. I came to him and told him that it’s so damn boring and it’s just a fight to sit there and attempt to read it.

He gave me a mind shift: instead of thinking how it’s important or exciting to you, try to imagine why the author of it thought it was so exciting, to where they spent their career learning about that subject. That allowed me to completely change how I read and that too has helped me more in the past years than I could imagine.
Monads are so easy. That's why there are 2,000 articles online explaining how easy they are. :)

Okay hear me out:

I don't like exception handling, because it doesn't feel "pure" and consistent with the rest of my program flow. If any errors happen, I want to know what they are so I can plan ahead. You might say "well, just catch your exceptions dammit". But see, what if I forget to catch an exception right away and it propagates? Also, other than Swift, I don't know of any programming language that let's me explicitly mention if a function could throw an exception. In Python, for example, you can't just do Optional[str], because returning None is different from raising an exception. So by just looking at a function type signature, one can't know if it throws, which means you never know if you should use try/catch or not.

But let's say you take care of all edge cases and return None in those bad paths instead of raising exceptions. Let's also assume that Python does't suck and it never raises exceptions by its own standard libraries (e.g., json throws). The problem is: How do we know if the function returned None because the evaluation was None, or because it failed at some point?

So a better approach is to explicitly say the function returns "something" which may or may not be there. If it's there, then the function worked correctly, even if the value is None. If it's not there, then the function failed. Go does this. Rust does this better. Haskell has had this since ages thanks to Monads.

I like to think of monads as wrappers around data. In Python, I simply write a Result monad (similar to Rust). In Haskell, this is called a Maybe monad.
I’ve seen the complete opposite. So much total OOP nonsense in Java.

You know what I think it means? That no single perspective will ever be sufficiently complete to offer a meaningful opinion of the whole.
There is same story from Sofa to software. Though in here and many other tech oriented forums there is pretty popular support for crappy, slow, buggy software. Sometimes even with this hilarious veiled thread that imagine what would happen if this software would not even exist if it were not of this quality? No one really told them that world would be better place, you dummy.
It's simple, whether the backing memory is heap or stack, it's bounds checked. And overriding all the operators and only returning safe types prevents many types of undefined behavior.

Of course you can fuck with it enough to make it unsafe, but at that point you know exactly what you're doing
That is the usual Ada outdated image, just like unsafe code blocks in Rust, those Unchecked Deallocation are wrapped in safe calls, and since Ada95 there are controlled types, allowing for RAII patterns.

Additionally, it is common to use arenas, and many types can be dynamically stack allocated with a retry operation in case there is not enough space, so that the call can be redone with a smaller size.

Memory Management with Ada 2012 from FOSDEM 2016,

https://archive.fosdem.org/2016/schedule/event/ada_memory/

Doesn't go much into SPARK related improvements though, given its date.
Interesting blog. It seems to be a compendium of advice for all kinds of folks ranging from end user to integration partner. For a slightly different take on how to use LLMs to build software, you might be interested in https://www.infoq.com/articles/llm-productivity-experiment/ which documents an experiment where the same prompt was given to various prominent LLMs asking to write two unit tests for an already existing code base. The results were collected, metrics were analyzed, then comparisons were made. No advice on how to write better prompts but some insight on how to work with and what you can expect from LLMs in order to improve developer productivity.
"ensures", really?
Thanks for the example from the documentary:

> They first identify all of the effective activists. They then offer them extremely well-paying jobs, either internal (head of environmental stewardship or something), or external by financing an e.g. people for sustainable development of the Bingbong Valley.

From my gut feeling, I have difficulties believing that this will work: any serious/effective/annoying activist will stay a thorn in the flesh of the company, even in this new position. He will likely use the new money and influence to make make the resistance even more effective (just not by doing a frontal attack onto the financial source). In other words: to me, this rather sounds like a way the company drinking the poison on its own, so that activists don't put the poison in their drinks.
I'm not sure if by other culture you mean Japan, but relatively Japanese definitely use sofa nowadays. Certainly, in the past they did not, but if you go back to the 19th centuries you could probably say the same about western countries (being "for the royalty" seems like a stretch, but they were certainly too expensive for commoners).

Old, tatami-only houses generally won't have heavy legged furniture at all, but tatami-only houses are rarely being built. It used to be come to have a single tatami room in most homes, but that is also becoming more uncommon for new houses nowadays. In modern houses, you'd usually have sofa. I don't remember if I've ever seen a multi-room Japanese house without one, but one-room apartments can be really small, and if the owner doesn't host people often (or ever) they won't have a sofa.

What is very common in Japan (especially in small apartments and one room apartments) is a low-sofa (basically a low profile sofa, often without a base or legs) and zaisu[1] - originally a fancier sitting pillow with back for tatami floors, but nowadays it's mostly low-profile sofa chair or more often just a sofa chair without legs. These things are more flexible and portable and allow you to sit closer to the floor.

[1] https://en.wikipedia.org/wiki/Zaisu
... and all of the documentation has to be kept around for decades, same for the knowledge of how it was constructed and maintained. That's what makes missions like Voyager or even the ISS possible in the first place - a lot of the people who did the early work on either are probably dead now.