skysight-inc/HackerNews huggingface dataset:
The whole desktop computing idea for "most people" isn't really going to have a revival. There are specific niches within desktop computing (business people running excel, software developers running shells/IDEs/editors, gamers, home users, graphics designers, scientists, etc etc) and these niches seem to have very little in common. The "non-gamer home user" is all but dead. That's not a niche that will go anywhere, and if they use a linux-y OS it's not going to be anything other than ChromeOS.

Linux has made strides recently in several of these niches, most notably perhaps software developers are using Linux more, and in graphics/video we see people doing more Blender and perhaps not waiting for the next workstation Macs.

The biggest one in the bunch by far is regular business users doing word processing, spread sheets, SharePoint, video calls, emails. I no longer think desktop linux (in the traditional sense, i.e. Gnome/KDE) will take any chunk of this, within coming decades.

If anything, the whole concept of desktop will be abstracted away into a thin client in some cloud where your same programs and documents are available no matter your device. But one thing is 100% clear: for 99% of business users, that client will connect to a Microsoft service, nothing else.
I'm very glad it was helpful to you!
Stuff I Learnt in 2022
I like async/await, but I haven't seen any language do it well. Doing it well would involve:

1) Not crashing-and-burning on simple "Hello World" level use-cases (e.g. working in a Python terminal, a 3-liner script, etc.)

2) Giving actual performance gains in typical cases

3) Allowing code to change in both directions, quickly and easily

4) Integrate well into other parts of the language (e.g. list comprehensions or iterators / generators in Python, or multiprocessing)

I also don't like the amount of verbosity added. I can describe a system which would do all-of-the-above, but I don't think I could have independently invented it. It's based on using JS and Python async / await for a while, and understanding where things were done wrong.

On a mile-high level, I'm also ultimately not sure this is the right model. We:

- Created cooperative multitasking (e.g. in Windows 3.1 and earlies)

- Found pre-emptive multitasking worked better, in part since people were bad at deciding when to release control

- Re-invented cooperative multitasking within apps with async / await

I think there is a more dynamic, higher-level programming model where I describe what needs to be done. Just-in-time profiling and optimization, decides what to do synchronously versus asynchronously versus in a new process versus e.g. on a GPU. An operation like:

[functional_function(x) for x in l]

Ought to sit on CPU synchronously if l is small and f is fast, in their own process asynchronously if they are medium, and on a GPU if they are massive and slow.
Interviews are a two way street. They crashed and burned on your interview. Unless they can explain that they are paying 25% more to compensate for 25% more time, why would you work for them?

I had a similar situation interviewing with one of Musk’s companies a while back. Who would want to work 80 hour weeks to make a 40 hour a week salary? The answer should be no one. You did great.
I have always taken "the year of Linux on the Desktop" to mean the year when a non-technical person can easily acquire a computer that does everything they need or desire a computer to do, and runs an entirely open-source OS with Linux at its core.

The literal reading of "Linux runs on a desktop computer" is one that has been fulfilled since Torvalds first released it. It is one that has been fulfilled since before the phrase "The Year Of Linux On The Desktop" became a thing. There have been people making a Linux machine running one "friendly" distro or another their daily driver for most of Linux' existence. But if your non-technical relative goes out to buy a new computer, they're gonna either buy a Windows machine or a Mac. They're probably never heard of Linux unless you've talked to them about it. Where's the ads on their favorite shows and sites telling them about Linux? Where's the prominent computer manufacturer without an exclusivity deal with Microsoft trumpeting how their free OS makes for a better product?

Given how many people's computing needs now seem to be served entirely by an Android phone, then perhaps we have passed the Year of Linux on the Palmtop without anyone noticing because they are still focused on computers with multitasking, windowed OSs, designed for large screens. Is the proprietary part of Android small enough for it to count as "Linux" to you?

When your non-technical relative can go into Office Depot, browse the shelves, find an assortment of computers all proudly declaring they run Linux, and take it home and run everything they are buying a computer to run, then it is TYOTLD. Linux runs in a lot of places now, and that's great! But if you walk into a random house that owns a computer, you're probably not gonna find Linux on it, and thus it is not TYOTLD, despite you having run it as your daily driver desktop for the past ten years.
Ask HN: Authors exploring the near-term implications of generative AI?
first order effects like students cheating on essays. I would like to read anyone exploring a wider range of effects (in fiction or otherwise) of generative AI. Any recommendations?
Thanks, today I learned something!
If you write naughty words you receive a telling off via email...

"Our system has detected content that might be inappropriate...we request you to remove such content."

I was sent this moments after signing up and entering one single word starting with F.
ditto.. KeePassXC + contemporary cloud store
28 September 1665
Word Painting
Vendoring is an option, but if you place some trust in your registry a lockfile is totally fine.
Install Linux. Find out that WiFi doesn't work. Manually transfer files to compile WiFi driver via usb. Compile WiFi driver. WiFi works. Boot a few weeks later. WiFi no longer works. Driver built without being signed. Kernel now requires signed drivers. Work out how to sign and trust driver. Boot a few weeks later, WiFi no longer works. Kernel has upgraded again. Signed driver not in the right place. Disable security on driver checking. Put laptop in draw forever.

Even though I am capable of fixing all of these things I just don't have the energy. If I want Linux I'll just use WSL or a VM.
> The native bias here is crazy. Most users just don't care and can't tell if they are on something that's native vs a web view.

They can. You just don't know how to listen. "It's slow to open", "it's janky", "it stutters when it scrolls", "I tap/click and nothing happens" etc.

Does this happen with native apps? You betcha. It is significantly more prevalent with web because web has never been and never will be an app platform. It's core is to display text and images, and it can barely manage that.
Why shouldn't the goalposts move? One's decision to use GNU/Linux does not occur in a vacuum.

Windows and macOS continually improve and add features, and our expectations shift accordingly.
No, they only need to prove themselves for the first job, unless that job doesn't last long. Work experience trumps a degree every time.
Any good resources that do it the right way?
Thanks for sharing my post, memorable! I've really enjoyed the conversation here around this topic.
I use - and pay for - BitWarden.

It does all the things you ask for. With the paid version I can share passwords with my spouse for relatively unimportant things (like Netflix) in a reasonably secure manner.

I could self host and run it myself. But I'm not a multi-person team with decades of security engineering experience. So I gladly let someone else take on that burden.
"My history with Forth & stack machines" at https://yosefk.com/blog/my-history-with-forth-stack-machines... hits HN every year or more - https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu... .

The most relevant parts are:

> We thought about making our own CPU. The person with the overall responsibility for the hardware design gently told me that I was out of my mind. CPUs have register files and pipeline and pipeline stalls and dependency detection to avoid those stalls and it's too complicated.

> And then I asked, how about a stack machine? No register file. Just a 3-stage pipeline – fetch, decode, execute. No problem with register dependencies, always pop inputs from the top of the stack, push the result.

> He said it sounded easy enough alright, we could do that. "It's just like my RPN calculator. How would you program it?" "In Forth!" ...

> It was among the most painful programming experiences in my life. ...

> Speaking of which. I started to miss a C compiler. I downloaded LLVM. (7000 files plus a huge precompiled gcc binary. 1 hour to build from scratch. So?) I wrote a working back-end for the stack machine within a week. Generating horrible code. Someone else wrote an optimizing back-end in about two months.

> After a while, the optimizing back-end's code wasn't any worse than my hand-coded Forth.
Once upon a time - corporate environment - budget for learning - I've sent the title of the book and the link - intention to supporting the author.

The PDF was available on the 1st page of Google. At the end we did not complete the purchase - person responsible for shopping sent me pirated copy.

(I hear what you say)
Pretty cool flashback :) But to nitpick a bit: the ternary operator doesn't instruct the compiler to use a conditional move instruction, from the compiler's point of view, it's just a condition, no difference to a regular if statement.

E.g. see:

https://www.godbolt.org/z/sYPd4onfT

...any reasonably "modern" C compiler should generate the same code for both functions.

(also I wonder if an even better image quality could be achieved by generating a copper list next to the image data which updates the color palette mid-image?)
The story anthropomorphizes death as a dragon (dracomorphizes?). I'm pointing out that it is doing so to an essential mechanism of biological evolution. That gives evolution a moral valence, per the story.

In general, it should be clear that to cut a species off from a primary source of biological evolution would not usually be beneficial to that species' survival prospects. Maybe that is no longer true of Homo sapiens, but I doubt it.
Apparently has been for 5 hours.
Can you give a bit more detail on the burning bit? Just want to know if there's anything missing in particular from the 1.5 release besides the docs.
Sure proton is great and it does a good job on my steam deck.

But to me the fact that the games are not natively supporting Linux and are instead needing a tool like Proton still means that Linux is not ideal for gaming. Just like Mac is not.

It has nothing to do with the OS itself and everything to do with developer support.

I love my steam deck but I also strongly believe that going with Linux was a short cited decision on Valves part to try to protect themselves from Microsoft. Many (most, all?) of us here are technical enough to understand at least on some level what proton does and what native actually is. But most users are not and that is where the problems come up.

When a game pushes an update that breaks support on the steam deck most users will go to complain to the developers. But the developer was not involved in supporting Linux and rightly so they don't test every update on it.

That is not the right path here.

I strongly believe that to claim that an OS can be good for something it must be targeted by the developers of whatever that thing is and run natively (or at the very least if it is prepackaged with something like proton, it is still distributed by the developers for that OS)

And yes I fully realize this is a chicken and the egg problem with linux and gaming.
Go to college and get a Computing Science degree.
the way we did before massive corporate social walled gardens

people keep a blog and you subscribe to the blog feed.

bonus point: it's completely free, you don't even need to give away your personal data and be forced to watch ads.

but it's 2023, realistically if Twitter dies these people will open a fediverse account that you can follow.
There has to be a term for it, if you waited long enough it will bound to happen assuming the possibility of it happening is not zero. You can say the same about next year will be the year of Nuclear Fusion or curing cancer.

And it is funny 20 years later there are people who still dont understand why Linux failed to takeover desktop.

I will quote Benedict Evans [1] who seems to be the only few with a decent understanding of Tech and Business.

>"the ideology of (one extremely narrow concept of) freedom works very well for small groups of true believers, but people didn’t move servers to Linux because of freedom - they adopted it because it was a better product."

[1] https://twitter.com/benedictevans/status/1425904537727086594
Termux is still around and mostly works the same:

https://github.com/termux/termux-app

You just have to install it directly from the APK or via f-Droid.

I use it on Android 13 for simple mobile development and it works great.

For me, Termux is a killer app that makes my Android phone a general purpose pocket computer.
Note worthy: what is the meaning of money? (Graeber,  2011)
This is a great way to understand complex, new-fangled technologies. Ask "what manual process does this speed up"?
If you have a Mac use keychain. I never understood why Mac users use external tools.. I mean really? Why? Perhaps if you manage a team at work ok.. but single user subscriptions?

For Linux and windows i would use keepassx.
> TikTok, a Chinese app, is not allowed to show you such content in China and must instead show pro-work, pro-family messaging.

Proof of this?
Piano With Johnny has good contemporary classes, building up improv skills gradually
Bitwarden does all my password and OTP management. Works on any browser and operating system, it's open source and audited. All the services I use have 2FA enabled, and I try to avoid SMS second factor as much as possible.

My email and Bitwarden itself are secured by two Yubikeys, one is always on my person on my keychain, the other is physically stored away from my house. I have an AirTag on my keychain because losing your keys is a pain in the butt.

This is a cheap yet very secure system for most people that care about security but are not persecuted by police or government agencies.
> I get it that all the folks here want everything 100% right 100% of the time, but dang, I can't believe folks are so upset about it not being a PlayStation 1.

It's not about everything being 100% right 100% of the time. It's about the title being complete bait.

It's not about doing AoC on a PlayStation, let alone on a PS1, which is the most reasonable assumption from reading the title. It's about doing AoC in Dreams.
Always amuses me when I see tests spin up a http server, just to call a function.
That last sentence is paramount. I always remind people going into interviews that they are just as much interviewing their employer as vice versa. Not only does it encourage smartly using that "do you have any questions for us" moment at the end, but it can also help a lot with confidence.
>2. That graph shows that (real) wages are basically flat for each group the last ten years of the graph while productivity has almost inexorably climbed

Are we looking at the same graphs here? In the last 10 years of the graph, I see that both productivity gains and wages were leveling out.
Which begs the question if we should not use Linux, considering the number of US contributions and the US being involved in countless illegal wars.

The whole thing is absurd. Clownworld!
>In particular the "social democracy" strains of socialism as opposed to those advocating central planning or anarchist organization.

Yes; Most people get hung up on terminology and/or specific interpretations but i am convinced this is the natural order of things for the Human species. The balance without going to extremes is what is important.
I am trying to learn Greek as my 3rd language, because I have moved here for work. But from my first encounters at shops, I have lot to learn.

You guys are speaking too fast
Same. Hard stop at 40 hours. I have a family today, I have more important things to do.

I wish everyone had the ability to not be afraid of their employer, it's liberating.
The black and white artwork is everywhere these days. Does the style have a name?
Is it really a “success” as a business owner to make less than the median wage and have to put capital at risk? No serious investor would settle for less than average return and not have a risk premium.
I rarely use IRC any more and I used to run some small IRC servers. Most moved to Discord but I refuse to use such platforms for their abuse of retaining both text and voice transcription chat history forever. Discord voice transcription can run silently in any public or private channel and nobody can prove otherwise. This was not impossible on IRC but far less likely. Public channels were recorded with publicly visible bots that had permission to be in the channel. Some IRCD's had modules that would allow a NetAdmin to monitor private chats but that can be mitigated with clients that support OTR.

Nowadays if I need to spin up a chat with people I know I just give them a shell function that utilizes a self-hosted instance of devzat.

# uncensored chat using self hosted https://github.com/quackduck/devzat.git
# add to .bashrc or /etc/profile.d/functions.sh on a VM somewhere
function chat()
{
# make us a temporary nickname
Name=$(base64 /dev/urandom | tr -d '/+' | dd bs=12 count=1 2>/dev/null)
# make us a temporary throw away ssh key. key is our ID.
ssh-keygen -q -t rsa -b 2048 -N "" -C "${Name}" -f ~/.ssh/.chat_"${Name}"
# add +ssh-rsa in the event client restricts weaker ciphers
ssh -i ~/.ssh/.chat_"${Name}" -p 22 -4 -o "HostkeyAlgorithms +ssh-rsa" -o "PubkeyAcceptedKeyTypes +ssh-rsa" "${Name}"@23.239.0.70
rm -vf ~/.ssh/.chat_"${Name}" ~/.ssh/.chat_"${Name}".pub
}

If things go sideways I just nuke that instance and what little chat history the daemon had is gone.
Yeah, the blame only matters in the sense of where to demand a fix. Whether or not to put up with the struggle is largely independent of that.
I used LastPass for 13 years. Now I use Roboform.

It just works.
1password everywhere. Employer pays for it, and I have a separate vault for personal and work credentials, meaning I don't have any work credentials on personal devices and work has no claim over my personal credentials. Works on my iPad, MacBook, windows workstation and android phone seamlessly.

My only complaint is that it doesn't let me use a yubikey as a primary method of authentication on windows - all my other devices have biometric authentication.
I tried 22.04LTS and 22.10 Ubuntu

It turns out there are two versions of the AX411. It's the "killer" version that's not supported unless I either:

- recompile the kernel to tell Linux that when it sees the ID for this card, use the driver for the standard card. That has been claimed to work.

- recompile the kernel to enable an experimental feature

This is 22.10 Ubuntu. You can see that the PCI device ID of 0x7af0/1692 is rejected by iwlwifi.

# dmesg | grep iwlwifi
[ 4.753725] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[ 4.755454] iwlwifi: No config found for PCI dev 7af0/1692, rev=0x430, rfid=0x3010d000
[ 4.755471] iwlwifi: probe of 0000:00:14.3 failed with error -22

One frustrating thing was that all the information in the forums was wrong. People (like you!) will tell me that something will work when it won't. This doesn't help the Linux community get new useres. I had to read the source and figure out what was going on.

After spending a couple of hours on this for a client, I realized I was insane and bought a $20 older, supported WiFi M2 card for this box. These machines will be installed by a client and I didn't want to have to specify a custom kernel build, too. I wanted to specify Unbunto LTS and have the software ready-to-install.

You mentioned that "preinstalled" Linux has fewer problems. Not so. I bought a dell rack-mount server with Linux pre-installed, and that machine couldn't wake from sleep either. It would go to sleep and need to be hard reset to wake up again.
Gray hair has resulted in a lot of grudges. I've even had a couple of folks just come out and say it.

I know that my generation (and the one before) have caused many issues, but I'm not your typical "OK boomer."
IMO Linux Desktops can be the best option for both for a certain type of developer¹ and for extremely unskilled users².

¹ e.g. web, system development, backend, admin. KDE Plasma is both extremely usable and customizable. I haven't missed anything in comparison with Windows and Mac systems (in fact I always miss stuff when using the other systems).

² I switched my parents to Ubuntu a while back and it has been a surprisingly good decision (90% less support call about weird popup windows, missing icons, etc.) Linux comes with it's own challenges, but compared to 10 years ago most of the stuff just works now
Two concepts that I never really understood until I encountered them together: functional programming and recursion.

When I first encountered recursive functions when I began learning programming I had a really hard time understanding what the function would do and how it would play out as it called itself. I couldn't think through the recursion and imagine what would happen. Nor did I really understand how to usefully apply one to a situation. I would either use a loop or a recursive function that utilized lots of external state to work.

When I later encountered functional programming, having learned programming with OOP languages, it was a real mind-bender. I finally started to understand it but when I encountered the need for recursion in FP, it really threw me for a loop. How the hell was I supposed to do this without external state? So it was that restriction that really let me understand how to create a recursive function that could return something useful with nothing more than the initial input. This new understanding also gave me a better appreciation of functional programming and the idea of pure functions.
Why bother about what other people think? I never got this need to take other people's views into consideration when forming your own needs or wants. Do what you want to do for yourself, not for others. As you get older you quickly discover that outside your own direct family that others are pretty much irrelevant and not worth listening to. Trust your own intuition when making decisions and live by them.
Stanford’s War on Social Life
I'm late to this discussion, sorry.

But at the risk of loss of respect, I'll wait for Rust2ShinyNewLanguage to solve this.

All I know is I hope I'm smart enough to understand ShinyNewLanguage's compiler. Or maybe even build it.

I've got several projects that could use some additional Boxes of structures, and borrow instead of move, and maybe a few more complex reference counting mechanics.

Rust forced me to understand what that meant. That's good for building a better engineer.

But it's not fun to work with.

I hope the next experience is better. Sorry Rustaceans.
The only tube I have is a glow tube (VR75). I hooked it up to a variac and demonstrate it occasionally. I'd love to work with dekatrons (my initials are DEK) but they are high voltage which scares me. And learning about the history of all the various tubes is a great way to understand modern physics.
Aren’t you using 1Password for generating one time passwords? Or do you deliberately want to keep them out of it?
I report 40h. I might be 35h at my computer. That might be 20h of productive work. No one ever questioned my work output neither in quality or quantity.

The idea of the 40h work week isn't to be productive 40h, no one can do that in creative work. The idea is you are available 40h. If you are at a healthy workplace, then no one around you works more than 40h either.