Hacker Newsnew | past | comments | ask | show | jobs | submit | mrln's commentslogin

This is not a window manager, so thanks for stating the obvious. You might not like wayland and that's fine with me, but if you decide to hate on it, you should at least know what you are hating on. There are good reasons to prefer a wayland compositor over X11. If you don't care about these reasons, that doesn't mean nobody should.


> This is not a window manager, so thanks for stating the obvious.

So what exactly is a "shell" ?


My attempt at a definition of a desktop shell would be: The collection of all the software that aids a compositor (or a window manager on X11) in providing a more complete desktop experience. Now that's kind of vague and probably also not quite correct, so a more concrete explanation would be: A program or collection of programs that gives you desktop notifications, a taskbar (with a system tray), volume controls and more stuff like that, maybe even a neat menu to configure most of this. Usually for standalone compositors/window managers you'd usually use a collection of tools like dunst, polybar, and the like, but with newer tools like quickshell, which was used here, it's reasonably easy to build a single tool which handles most of that. And that's what we're looking at here ^^


Yeah, yay works until it doesn't anymore, because the pacman library dependency it uses was updated but yay was not... and then you need to recompile yay manually. I mean, I'll still use it (or rather paru, which works basically the same way), but it's very annoying, when it happens every few months.


You can download a precompiled yay/paru from their Github pages btw.


I don't understand, yay updates itself. I've never once had this problem.


That's assuming you do system upgrades through paru/yay. However, you may not want to upgrade the packages you've obtained from the AUR and so you upgrade using pacman. That may cause the updated libalpm to become incompatible with the installed yay/paru.


yay used to be in the official Arch Linux repository for some time, wonder why it was removed.


Iirc it was to force the extra step necessary for the user to acknowledge that the AUR can bootstrap malware if used blindly.

This seems to be a relatively consistent discussion surrounding AUR helper development; for example, adding UX to incentivise users to read PKGBUILDs, lest the AUR becomes an attractive vector for skids.

No one wants the AUR to become NPM, and the thing that will incentivise that is uneducated users. Having the small barrier of not having helpers in the main repos is an effective way of accomplishing that.


https://wiki.archlinux.org/title/AUR_helpers

AUR helpers like yay are not supported officially. The other commenter sheds some light as to why.


Assume they mean having to recompile the AUR package they were trying to install using yay.

If users mental model is mostly "yay is like pacman but can also install packages from AUR the same way" wihout thinking deeper about the difference then I think it using it is very risky and that you should just stick to pacman + git/makepkg. Only consider helpers once that's become second nature and routine. Telling people to "just yay install" is doing them a disservice. An upgrade breaking the system isn't even that bad compared to getting infected with malware due to an old package you were using being orphaned and hijacked to spread malware or getting a bad copycat version due to a typo.

I think EndeavourOS is doing users a disservice if they provide sth like yay preinstalled and ready to use out of the box. It isn't installing packages from a shared repo: It's downloading code from arbitrary locations and running it on your machine in order to produce a package. Being able to read and understand shell script (PKGBUILD) is kind of a prerequisite to using it safely.


Well, if the AI really is that good, what's stopping the AI Company from charging just slightly less then the 90 saved engineers cost?


That's a fair point. Model prices can increase. This raises the next question.

Doesn't this mean that any company that depends on headcount growth (every SaaS), loses?

100 SWE -> 10 SWE, 100 slack/gmail/notion/zoom/etc. subscriptions become 10.

And now let's recurse.

These SaaS companies that use AI and dropped 90% of engineering headcount lose revenue because their customers also drop headcount.

Let's say AI costs 89% more than it did before, so the SaaS companies still get 10x productivity from the 10 engineers, but now all their customers headcount is 90% smaller too. So what now? Does every company make a pact to grow headcount ;)


Everyone will adjust pricing to cover losses ad infinitum


I'm pretty sure it reads your code, bro! Sus...


With the newest Python versions, most of the time I don't need typing imports!


Yeah post 3.10 you don't need Union, Optional, List, Duct, Tuple. Any still necessary when you want to be permissive, and I'm still hoping for an Unknown someday...


> hoping for an Unknown someday

Wouldn't that just be `object` in Python?


No, because the type checker should prevent you interacting with `Unknown` until you tie it down, but `object` is technically a valid type


Exactly, I want it to complain if I try to manipulate the fields/methods of an unknown object.


By default, Mypy warns you if try to reassign a method of any object[1]. It will also warn you when you access non-existent attributes[2]. So if you have a variable typed as `object`, the only attributes you can manipulate without the type checker nagging are `__doc__`, `__dict__`, `__module__`, and `__annotations__`. Since there are very few reasons to ever reassign or manipulate these attributes on an instance, I think the `object` type gets us pretty darn close to an "unknown" type in practice.

There was a proposal[3] for an unknown type in the Python typing repository, but it was rejected on the grounds that `object` is close enough.

[1]: https://mypy.readthedocs.io/en/stable/error_code_list.html#c...

[2]: https://mypy.readthedocs.io/en/stable/error_code_list.html#c...

[3]: https://github.com/python/typing/issues/1835


Thanks, I didn't have this context. I'll start using this!


In my opinion the sheer volume of "close enough" choices is what ruins Python's type system.

It's "close enough" to a usable type system that it's worth using, but it's full of so many edge cases and so many situations where they decided that it would be easier if they forced programmers to try and make reality match the type system rather than the type system match reality.

No wonder a lot of people in the comments here say they don't use it...


I think they can get away with the "close enough" solutions since Python's type annotations don't have any runtime contracts by default. Might be off-putting to people who are more familiar with statically typed languages (though not always, in my experience).


I would buy that argument more if Typescript didn't exist.

You can live with the "close enough" if you're writing a brand new greenfield project and you prevent anyone from ever checking in code mypy doesn't like and also don't use any libraries that mypy doesn't like (and also don't make web requests to APIs that return dictionary data that mypy doesn't like)

Retrofitting an existing project however is like eating glass.


That's what I use it for. If you type something as `object`, static type checkers can just narrow down the exact typing later.


> List, Duct, Tuple...

I'm aware this is just a typo but since a lot of the Python I write is in connection with Airflow I'm now in search of a way to embrace duct typing.


I am glad they improved this but I still like Optional[], and to a lesser extent, Union[]. It's much more readable to have Optional[str] compared to str | None.


I disagree with `Optional`. It can cause confusion in function signatures, since an argument typed as "optional" might still be required if there is no default value. Basically I think the name is bad, it should be `Nullable` or something.

I believe Python's own documentation also recommends the shorthand syntax over `Union`. Linters like Pylint and Ruff also warn if you use the imported `Union`/`Optional` types. The latter even auto-fixes it for you by switching to the shorthand syntax.


Option is a pretty common name for this, as is Maybe.[^1] Either way I think that ship is sailed in Python.

[^1]: https://en.wikipedia.org/wiki/Option_type


Probably because it is AI slop and no one ever read that...


The link is dead


It's not.

However this is easily "beaten" by using circle to search -> translate on your smart phone.


After "beating" it with a translator, take a hint and don't enter still.


Xenophobia: :(

Xenophobia, Japan: :)


I guess the trick will be less effective to the extent to which people try to work around it. But,

1) most people wouldn’t bother to translate something with a fake translation right above it

2) why do people want to go places they aren’t welcome? It is good to let the locals have some things…


I think they suggest that Mac and Linux are supported while Windows is not. But maybe I have issues with my eyes...


How do you even come to that conclusion? There's nothing on that page that screams "AI slop" to me.


The readme and the emojis seem heavily AI.


I hope people come to realize that this kind of stuff is a major turn-off right out of the gate.


Could be, I've seen a weird trend of using AI to write content when it doesn't make sense. Sure, using it to write a blog post about a topic is "slop" but I can see arguments for it. Using it to improve thoughts you have in your head, by making up details and add emojis however, I can't understand.

For example as a heavy FB Market place user I see a lot of stuff like:

[picture of an iPhone 12]

- iphone 14 - new battery - delivers to [enter your state here] - comes with [enter accessories it comes with]

Like they were too lazy to even fill in the brackets or ensure some level of accuracy. What's the point?


That's a problem that was solved in the 1980s with the introduction of "mail merge" functionality in word processors. Using an LLM to do this is like using a sledgehammer to swat a fly.


There's fuse-t, which uses a local network filesystem in the background, iirc.

Edit: but to be fair, that's mostly only relevant for unsupported network filesystems like sshfs...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: