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

I use Linking. It's quite good and actually being developed.

https://linkding.link/


This looks very interesting. Thank you for the link.

It doesn't support Safari as far as I can see. An extension for Safari (especially on IOS), is quite important. This is perhaps only for me, because my general workflow tends to be quickly scanning a couple of articles that I would want to read later, and I would like to easily bookmark them from Safari.

Secondly, its self-hosted only. This is perhaps not so bad - it just means I have to put some thought into where I would host it.

But again, thank you so much for linking linkding :). I am definately quite interested in trying it out.


You might be missing a German pun there. Dunno if the thing was built by Germans, but the d you missed in the name makes it look like it might be: LinkDing means LinkTHing in English, not "Linking".


See this for an explanation - https://github.com/satwikkansal/wtfpython?tab=readme-ov-file...

> all([]) returns True since the iterable is empty.


I get why but I’ll never not see this as a counterintuitive footgun.

Edit: yes I get why. The logic is there. But my brain just can’t help but see the inverse: eg.

    passed = all(test_results)
I hit a case where I actually test nothing and have no results. Did I pass?

Because in my brain I’m always framing things with how a loop can be run zero times. A collection of zero elements is not a case I usually have to manually cover.

Edit again: did all of that confuse you? Because I was completely backwards and wrong. It’s time to clock out for the day.


True is the identity of that particular monoid.

In other words: if you want all(a++b) == all(a) and all(b) to be true for all lists a,b, then then all([]) needs to be true.

Vice versa for any/or/False


>I hit a case where I actually test nothing and have no results. Did I pass?

All your tests passed. After all, none failed, right?

https://en.wikipedia.org/wiki/Vacuous_truth


All the tests also failed, because none passed. Both are true but most people only find out all the zero tests passed because that's the question asked.

If someone wants to consider running zero tests a failure they need to pose the right question for their context.


There are no "falsy" elements in an empty list, so `all([])` is `True` based on the description and "equivalent code" in the docs * [0].

[0]: https://docs.python.org/3/library/functions.html#all

* The official docs are pretty good, people should read them more often!


It's a consequence of enforcing logical consistency. You can't get around that (but if you want to suggest other behaviour and justify it, I'd be interested).


This is a frustratingly common reply to "why is this example unintuitive" across software.

Just because the problem may be higher up the chain, even up to the design of the system, doesn't mean it isn't a problem that has real consequences.

E.g. in this case, one possible solution is to not have the concept of "falsy" and "truthy", forcing 'all' to take a mapping closure (which may necessitate other changes, to the point where you now have essentially a completely different language).

It's useful to call these things out every time they trip us up, if not to fix them, then to avoid them next time somebody starts from scratch.


Okay, I'll respond because you made an interesting point, but you've also pissed me off. Let's follow this through: for a start, just because it's an intuitive doesn't mean it's wrong. However, you made me think that may be we can force at compile time that all() must take a non-empty list of Booleans where we can be sure that the problem domain should never have empty lists. I think with modern typing we can do this with dependent types (but I'm not an expert on this, but you have raised an interesting possibility, thanks).

However there are domain cases where empty lists still make sense, so you're still going to have to account for them in a rational way, and that means logically consistent, and I guarantee we will be back to what you don't like. But that's ok.

Now where you've pissed me off is this bit

> n this case, one possible solution is to not have the concept of "falsy" and "truthy"

and

> forcing 'all' to take a mapping closure

Perhaps you could un-piss me off by explaining what the bloody hell those two are supposed to mean – pretend I'm a language designer that interested in your idea (which actually I am) – what are you asking me to implement?


The poster is basically proposing something like always doing:

  def all(lis: List[T], mapf: Callable [[T], bool]) -> bool:
    for e in (mapf(l) for l in lis):
       if e is False: return False
    return True
At least that's my take on avoiding Truthy and Falsy via a mapping closure (or function?). But I don't see it solving OPs issue here when lis is empty... So maybe I'm missing something too.


>Just because the problem may be higher up the chain, even up to the design of the system

But it isn't in the system design. It's in the fundamental nature of logic itself.


Since an empty list has no elements, there’s nothing to contradict the condition.


> I hit a case where I actually test nothing and have no results. Did I pass?

equally, can you reasonably say you failed?


Also if you didn't want to do a hx-confirm, you could pop up a separate modal on button press. And then when the delete is pressed in the modal use a hx-target to update the specific row.


There are a lot of words the author used to simply say, "I'm going to start my pet project, which I also believe is going to fail very soon for a number of reasons"

Not much actual good content here.


Ugh, go post your negativity somewhere else. Awful comment.


There are a lot of words you used to simply say "I didn't find much actual good content there."

Not much of a contribution to the discussion here.



God I hate XKCD so much. It's a blight on the internet. I just get unreasonably angry whenever I see a link posted. This is just me venting.


Do you hate specificly the comic, or that people often post it, where it is not contributing to the discussion?



Yes, the tl;dr of this article seems to be:

> I do not expect ANYTHING to come from this project. I do not expect to finish this project.

So... good luck with that. :)


Goes without saying, its a browser, browsers are never finished. unless you discarded html/js and started from scratch... but then you'd have no data for the browser and what would be the point of that.


"Goes without saying, its a browser, browsers are never finished. "

But they can be working enough, to be useful. Meaning they can display correctly the pages you want to see.

So the best independent effort of a working browser I know of, is ladybird. And Kling knows how to build browsers, so toying around with a browser from scratch on your own will be a learning experience. But I guess you might learn more, by contributing to a project that stands a real chance to become a working browser.


http://www.amishbhadeshia.co.uk

Blog about tech banking and consulting


Thank you for this. I had no idea this series existed! It's exactly the level of info I want when picking up a new topic!

And bonus is my local library stocks many of them!


They are an invaluable resource just don't get too caught up in trying to understand everything they present, they are introductions and about giving you the tools needed to pursue the study of the field, not about giving you a full education. They only take a night or two to read and the bibliographies are within the scope of the introduction they provide, they don't load you down with books that are beyond the knowledge of the sort who would be reading such a book.


HTMX has a complimentary framework like alpinejs called Hyperscript [0]. (On second thought not exactly like alpine..)

[0]: https://hyperscript.org/


also

    @net use Z: \\administrators
Would achieve the same effect :)


The real image loads faster for me than the fake one. So I just click the first picture and it's correct.


Is that by using that radarr watchlist integration?


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

Search: