skysight-inc/HackerNews huggingface dataset:
I used FreeBSD in production for years as a hosting platform, starting in the late nineties. Then it had an earned reputation as being more secure, stable and higher performance than Linux. Yahoo and other large services were using it for their servers as well. Since then Linux has improved, but a diverse ecosystem of options is healthy. A monoculture of OSes would be vulnerable to global security problems just a diet based on only one crop.

It's great that other projects make other choices about default shells and other system design details.
You don't think it's dangerous for someone with a platform like Rogan has to spread misinformation?

That's what I'm referring to.
Cyberpunk from the 1980s is notoriously ridiculous. And the geniuses at CDPro made it even worse by shifting the timeline 50 years to 2077...

Predicting the future is surprisingly hard.
Context: Professional APL user for ten years back in the '80's

I firmly believe languages like APL, Forth and LISP should be taught in a single quarter course on programming languages. The perspective you get is invaluable. These ideas help you think about computational problem solving in a different way.

That said, attempting to use any of these languages today for anything other than a fun hobby would be a mistake. While APL isn't dead --paid and free distributions are still actively maintained--, it is, in my opinion, deader than a doornail when it comes to the reality of using it for any real work, particularly at scale. In this sense it isn't any different than Forth, LISP, COBOL and FORTRAN. Can you imagine Facebook announcing a move to FORTRAN. Neither can I.

I often find the comments on HN about APL is terribly misinformed. Things like "read only language", "need a custom keyboard", "need a custom machine", etc. are, from the perspective of someone who actually knows APL, just silly. People truly should stop for a second and think about whether their opinions about anything are based on enough data to actually support even having an opinion. Simple parallel example:

Dabbling in music does not make you a musician. Declaring that you need a custom machine to type musical notation and that this notation is impossible to read would sound terribly ignorant to someone who devoted sufficient time to actually learning and internalizing this.

I can, still, to this day, decades later, touch-type APL. Do you look at your keyboard when you type anything in your spoken language/s? No? Same with APL. The learning curve isn't any worse than learning to type on an ASCII keyboard. Do you have to look at the keyboard when you type any of the shifted symbols on the top row? No? Well, imagine that's APL. Different symbols. No problem.

Yes. APL is dead as a sensible informed choice for non-trivial projects.

No. APL is not dead as it pertains to learning some amazing things about what computing could --and arguably, should-- look like at some undefined point in the future.

I have always thought that the future of AI will require us to be able to communicate with the computer in code in a form far closer to the symbolic APL approach rather than typing words in English. I can't put my finger on what form that would take. Iverson's "Tool for Though" paper goes over the reasons that support this idea. I just can't offer anything other than to say I believe this to be true based on ten years using an amazing symbolic language for real work at scale. One of my APL applications was part of the human genome decoding project. It helped analyze, classify and visualize sequencing data.
If you liked The Wire, check out Top Boy
The W3schools hate is a bit outdated. Even W3Fools[1] eventually backtracked and acknowledged that W3Schools has continuously improved and updated their content.

1. https://www.w3fools.com/
Pre-1992 it was SunOS and yes that is exactly what we want (without all the security holes).

SunOS was BSD and Nirvana as far as Unix goes. Solaris was SysV and quickly earned the nickname "Slowlaris". For me FreeBSD is the functional descendant of SunOS.

As for Linux I first tried it out in 1993 and was appalled that command line switches for most standard Unix utils had been arbitrarily remapped. Tried FreeBSD 1.0 when it came out and never looked back. Of course I use Linux in AWS and various servers at work and regularly experiment with Linux distros on personal machines but it always feels a bit "off".

I wonder how many other greybeards that cut their teeth on SunOS prefer FreeBSD over Linux today?
it seems they are using the Arduino to translate the tape data into a serial protocol for a retrocomputer they are building

adapters are fun :) helps prevent bit rot too
I'm curious how leaded fuel effected children born in the Roman empire, as they were born before 1990 and had not discovered leaded fuel gasoline yet (or combustion engines).
Now imagine your function is 50 lines long and has 9 variables inside. Ooops!
> I have seen many examples where developers thought they were improving code quality by implementing some pattern or architecture but actually made it worse.

> - Code quality is quite subjective and the field is driven by opinions and fads.

Agree. In almost every team I have been part of, when discussing code quality there was almost never consensus regarding what's good and bad.

Besides, in almost every company I have worked for, modules (or products) were usually refactored after 3 years or so (as in: the code that deals with retrieving data from the DB remains almost intact, but everything else is moved out to its own repository: the frontend as microfrontend and a new in-between layer (call it a proxy or "backend for frontend"))... so there was never a huge motivation to write quality code, just to write "good enough" code.
This isn't pretty, but it's possible:

import sys
if sys.version_info[0] < 3:
print("Needs Python 3+")
sys.exit(1)
else:
prog = r'''

def help():
print("Help: ...")

def do_spam(*args):
print("spamming")

def main(args):
match args:
case [subcommand, *args]:
return globals()[f'do_{subcommand}'](*args)
case _:
return help()

if __name__ == '__main__':
try:
status = main(sys.argv[1:])
sys.exit(int(status if status is not None else 0))
except Exception as e:
import traceback
traceback.print_exc(e)
sys.exit(1)
'''
compile(prog, '', 'exec')
exec(prog)
I'd love it if this wasn't political. If Brendan Eich wasn't running Brave, I'd probably trust the browser a whole lot more. Same as how if Apple stopped providing service to China and quit leveraging slave-labor, I'd probably trust their products a lot more too.
I'm the creator of Piki, the Cornell Tech app mentioned in the article. Give it a try, if you want a pure discovery app, with a focus on likes/dislikes feedback https://piki.page.link/Rng5
> Hmm, in this false analogy game, what editor is aligned with korn shell?

vi (not vim), preferably running on OpenBSD :)
`Nothing is more unpredictable than the mob, nothing more obscure than public opinion, nothing more deceptive than the whole political system` - Marcus Tullius Cicero. 63 BC

Dave Chappelle and some other comedians like Joe Rogan are "too big to fail". But how many lesser voices get cancelled is the true hallmark of consistency and principles.

In the old days kings cancelled lesser voices by beheading them. Occasionally, the "lesser" voices rose up and beheaded kings (King Charless II, Louis the 16, the Romanovs).

Cancel culture is as old personkind (or is it peoplekind?).

It is just another blunt instrument of intimidation and bullying. The modern version is a performative art to get status by trying to wreck the lives of others without having the legal right to behead people.

Daphne ended up committing suicide but at least that was a self-inflicted death.

-

The mob even accused the comedian Bill Burr, who is married to a Black woman and has a daughter from her, of being a racist.

"...a white man having a non-white wife can sometimes be a sign of racism. So you shouldn't assume someone isn't racist just because they own a minority sex servant. They may very well have one because they're racist."

https://twitter.com/Clayburn/status/1371268469145079809

https://www.indy100.com/ents/bill-burr-wife-tweet-racism-gra...
> Is the level same-level-of-abstraction really part of the usual meaning of the term?

No. That's just a definition by the author. The languages might operate on the same or close level of abstraction, but that doesn't mean that all logical constructs of the source and the transpiled target have to map. Especially the authors conclusion that a "transpilation is therefore a two-way process where you could go back and forth between languages" is not a necessary feature of a transpiler.
I sure love it when my shell takes seconds to load on startup.
he was pissed! and, really didn't like terminal colors when you ran 'ls' (so I showed how to unalias ls)

At this point I don't want to learn any new tricks, either. I'm sticking with bash for the rest of my life.
كلمات اغنية حلوة هواي انور ابراهيم
I personally don't feel that sex work is worse than any other work, unless we (society) make it so. I could be entirely wrong, but would a poor, struggling woman trying to do three non-sex jobs to feed that same child be in a particularly better position?
A guy who wants a relationship may only have sex with a handful of women. While a guy who just wants sex can get into the hundreds. That's hundreds of experiences reinforcing that men only want sex compared to just a few saying the opposite. Samppling bias you could say.
No, we're not referring to it being blocked only in China. It was blocked on 4th June worldwide by all search engines that rely on Bing (DDG, Qwant, Ecosia, ...)

You can see them returning no results for "tank man" from the web archive: https://news.ycombinator.com/item?id=27398376
I don't think you necessarily make more as developer, have a look at the market and see what you can get.
Especially now that more companies are moving to remote you might be able to do better in either role.

Having said that as developer it will most certainly be less stressful so you might go that route just so you can free up more space to start writing now.
Sounds like your average bureaucracy then.
> Edit note: allocators are user space libraries (stdlib) and not part of the C spec. Use-after-free is extremely unsafe, however its completely valid C.

I'm not sure why you think this, but the C standard includes a whole section defining the behavior of the standard library functions, including malloc and free. And it includes this note as undefined behavior:

> The value of a pointer that refers to space deallocated by a call to the free or realloc function is used (7.20.3)

So it is undefined behavior to access memory passed to free, or IE use-after-free is undefined behavior if you're using the standard library.

> 2nd note: running all programs below give me the expected result, writes to pointers are live, regardless if they are freed. So please provide more concrete steps to reproduce your results.

I would check that you're compiling them with `-O2`, and also check the assembly output. However as someone linked, you can already see from the online compiler output that clearly gcc is capable of optimizing the assignment out. Here's my second program in the same compiler, notice how printf is called twice but the 30 assignment (which is what is supposed to set your magic number) is still completely gone: https://godbolt.org/z/9reErcbGK

Edit: Sorry, I previously included the wrong quote from the standard (it was about a double-free being UB, slightly different), I have the right one now. I got it from here if you want to look at it, it's a draft but practically the same as the actual one: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
Bitcoin Just Hit a New All Time High in US Dollars
You don't have to use W3Schools (I prefer MDN myself) but you can forgive them. They've gotten better over time: https://www.w3fools.com/
I was surprised to see Ben Franklin as the first milestone. As an American I knew of the famous kite flying story, but I assumed he was merely a wealthy hobbyist. I didn’t realize his experiments were important enough to be considered a milestone much less the first milestone.
Isn’t one of the major rationales for allowing this so cheaply for economic uses that it creates jobs and other spinoff economic activity?

I can see why the government wouldn’t be pleased if someone did nothing with it.

They expected not only rent payments, but payroll taxes, job creation, etc.
I worked in New Mexico in the 90s with a 'gravel' operation that was selling off the gravel left over from mining operations decades and decades before. Tall piles of just rock we loaded into trucks and sold.

At some point they discovered that the old timers left enough gold in the tailings piles that it made sense to use modern techniques to reclaim that already out of the ground gold before selling the gravel. That triggered a multi-year legal fight to 'stop them from raping the land through gold mining'. Not only did they want the 'mining operation' stopped, now they also wanted the current owners to 'properly' remediate ancient mines scattered through the property. Some of these mine were legitimately historical places where South American's were coming north to mine Turquoise and Silver several hundred years ago.

We ended up not only losing access to the tailings piles for gravel use, but were then required to clean up the mess left by mining operations that had not existed for a hundred years or more. It shaped the way I view most people that claim to want to save the environment to this day. There is rarely any middle ground anymore and has become and all or nothing platform.
Investors are using AI to now figure out if the CEO is making any sense, wow! AI is doing more and more now. AI investing. AI burger flip. AI art. I am sick and tired of hearing about how AI will improve our lives. What about human creativity in a complex world where we need to survive / pay rent / bills AND put food on the table and AI is taking all jobs away along with the creativity and connection that comes with humans spending time with other humans! whats next? AI meeting AI? a battle for who has a more precise prediction model ?- 2 cents.
Custom CRM Development
With a custom CRM, business tasks can be affordably expanded, while increasing efficiency and reducing risk.
I could not agree more. I don't mind hand wavy "technological breakthroughs" as long as the main point of the story is "when confronted with new crazy thing X, here's how humanity deals with it" and there's some clever thought put in. Maybe some interesting insights from the author. But the Three Body Problem.... ugh. So bad.

- As you say, the plot is terrible. Kerouac had a more coherent narrative. What story there was strained believability even for pulp sci fi.

- The characters are utterly devoid of humanity. I don't even know who's who half the time, and there is no continuity throughout the series.

- There are no clever "ah ha" moments where the author has thought of something "profound" in relation to the scenario they've crafted. It's tropes and painful lurches from one thing to another.

I don't get it. I finished it and I couldn't believe all the people telling me how great it was.
> Who are you to deny their grievances.

Someone who looks at them and sees that they are the majority religion in the Western world, and have politicians everywhere pushing their talking points and morals on everybody else.
This tends to be the first thing people say in response to "don't roll your own crypto". "OK, I won't design my own block ciphers". In reality, virtually all our cryptographic vulnerabilities come not from fatally damaged primitives but from they way they're hooked up together.

TLDR: The gate is there for a reason.
Earlier this week Bitcoin already hit ATH's in Euro and some other currencies.

Earlier this month already new ATH's in Total Market Cap in us Dollars.
How hard can it be to have individual conversations with employees

It can be very difficult when the management and executive classes tend to self-select for sociopathic traits.
Can install dash from ports collection. Should work fine as scripting shell in place of this one.
Great read - I am a believer in code quality as well. Unfortunately, code speed is incentivized over code quality pretty much always.

I'm going to be a little tongue and cheek, and a little real - I've learned to look at this as an opportunity rather than a threat.

Sure, Mr Product Manager, I'll deliver your project in an unrealistic time frame, knowing full well you won't listen to my feedback. But, uh oh, there are changes you want next quarter and they are not easy to implement bc the code is not extensible. Now we are seeing defects outside of the well-tested happy path, not good. I may or may not be on a different project by that time. At least I can spin that project as a "win" on my year-end review. Good luck!

And this new project is fuckin cluster, but that's a good thing bc gets who gets the job to fix it (this guy). Job security!

To all the developers that will inherit my mess - I should apologize but I won't bc I have been in your shoes. Think of it as a learning experience, or character building exercise. Stay positive! :)

^^ Agian, tongue and cheek. Don't like playing that game, it sucks, but it's in my best interest to play the game.
Perhaps it's just personal preference, but in what world is JS "infinitely nicer" than python?
> The macros inevitably become so confusing, pervasive and complex that the author winds up inventing his own undocumented mess of a language, unusable for anyone else.

This is not limited to macros, but any abstraction.

Let's step back and rewrite the quote:

> The abstractions inevitably become so confusing, pervasive and complex that the author winds up inventing his own undocumented mess of a language, unusable for anyone else.

The key fault that trips up so many talented programmers (if not all) at least some point during their career (and hopefully not continuously, though I certainly know a few cases) is confusing convenience with simple. Convenience is almost always more complex, not simpler. Macros happen to wear their complex hearts on their sleeves.

You can address any of these problems by _addressing the problems_ you succinctly listed: documentation and usability.

Take React for example. It's an abstraction, arguably a new "language", and requires ample documentation and usability concessions to be palatable. You could accomplish this with macros as well.

But like any abstraction, the real problems arise during maintenance, and thus it becomes a Software Engineering problem -- whatever that means. This is where Software Engineering as a poorly-defined pseudo-profession has failed to demarcate itself from simple programming: the quality, maintenance and longevity of living code bases.

The masses unfortunately still don't see the forest for the trees, so I agree that it's something we've never seemed to learn, if perhaps using a broader definition.
In Google's case the intention wasn't to use Alphabet as a brand. They don't even own the domain name, Twitter handle etc. for it. They didn't change their stock ticker name either. Google is way too successful and positive a brand to give it up.

Alphabet is a holding company, nothing more.
Covid-19 conspiracy theories thrive on social media platforms, EXCEPT Twitter
I'm the creator of Piki, the Cornell Tech app mentioned in the article. The interface is like a Tinder for music, and users dislike about 55% of the songs they are presented with, so the dislike button is an integral part of the recommendations. It's not there just to "feel good". Give it a try: https://piki.page.link/Rng5
Do you have statistics at hand?
IMO, the toy example in the article is too simple to show a good use of the pattern. The builder pattern is great if the builder methods configure complicated invariants and are not just setters. Otherwise, there's nothing wrong with making the struct public, as in

User { id, email, ..Default::default() }

What's Java-esque is having an irrational fear of using public fields for things that are just data containers, but that's in my experience rare in the Rust community.
What? Doesn't 20/20, 20/15 etc. refer to visual acuity (how much detail you can see from a certain distance)? Are there people who prefer anything but the highest possible visual acuity?
They used lead for everything but fuel :D
Thanks for taking the time to reply Walter, genuinely appreciate it!

> "Unfortunately, the dahk side of macros inevitably consumes the user. The macros inevitably become so confusing, pervasive and complex that the author winds up inventing his own undocumented mess of a language, unusable for anyone else."

Yes! Modern languages have all adopted this approach it seems, trading macros for proper compile-time expressions. Rust uses "#[feature]" I believe, pretty sure Zig and Nim has something for this as well.

I am very sparing even when using mixins/template mixins in D -- the second you do, it ratchets the debugging difficulty up to "11" and becomes am order of magnitude harder to reason about program state.

Great power, great responsibility. I'm an "avoid at all costs" kind of guy, unless you can really justify it.

If C++ didn't have macros (which invariably get abused, along with templates) I think I might not hate it so much. Let us pray that the "constexpr" idea they "borrowed" from you may slowly fix this a little over time ;)

I went through a phase earlier in my dev career where I thought "Metaprogramming is so powerful and cool!", and I've put that behind me now. I just want boring, easy-to-read + maintain, predictable code.

Ironically I used to poke fun at Java and .NET but I've come to appreciate the "stupidity". "Dumb" is easy to understand,
"dumb" is easy to maintain. "Clever" is bad.

> "My friend said "I can fix that" and fixed the bug and checked it in in two hours. The manager, astonished, asked him how he figured it out. He said "I didn't figure it out. I disassembled the object code using Walter's disassembler that turns it into assembler source code, found the bug, fixed it, and checked in the new asm source code!""

Ha!

I suppose while I'm at it, I ought to thank you for all the Digital Mars tools that myself and many others still use today:

https://www.digitalmars.com/ctg/ctg.html

The Digital Mars tools for working with PE/COFF files and libs/binaries are indispensable. I suppose they've helped many tens of thousands of people.
> However not all CPUs stall for subnormal data and if the CPU designers would have ensured that none of them stall, no such discussions would have been ever needed.

I don't really disagree (I've pushed hard for no subnormal stalls for years), but there are some timing and area tradeoffs that come with this that make it a somewhat hard sell for FPUs that aren't built entirely around FMA (there are tradeoffs even for designs that are purely FMA based, but they're a lot smaller).

Mainstream x86 designs _still_ have some subnormal stalls!
I tried zsh, but it was slower than bash in some cases and less convenient in others, so I switched to fish instead. It fixes some of the rough corners of most Bourne-derived shells, but also provides great user experience out of the box.