HNHacker News
TopNewBestAskShowJobs

njkleiner

28 karma · joined March 16, 2020

submissionscomments
njkleiner··on Exploring Typst, a new typesetting system similar to LaTeX
Both are on the roadmap, apparently.

https://github.com/typst/typst/issues/188#issuecomment-14933...

njkleiner··on Ask HN: Higher order derivatives in everyday life?
I suppose it depends on how you define "everyday life", but in digital image processing, derivatives can be used as a relatively simple method for edge detection.

For example, the Sobel and Prewitt operators (1st derivative) and the Laplacian operator (2nd derivative) can be used as filter kernels to detect edges in images.

njkleiner··on Ask HN: Do You Use RSS?
I found this post because it showed up in a TUI Microsub[0] client that talks to a Microsub server[1] which is subscribed to one of the HN-to-RSS service's front page feed.

I use my RSS/feed reader pretty extensively as a central hub to collect "news" from a variety of sources, including from closed platforms such as YouTube via their semi-hidden RSS feed support. I like having a central place where things that may be of interest to me show up without me having to discover them actively or having to rely e.g. on the YouTube subscription interface.

I personally really like the concept of Microsub, because it allows you to have a single designated server takes care of fetching the feeds, normalizing the content and synchronizing state (e.g. read status, subscriptions, channel/folder organization) and you can then access that data from any client that supports the protocol. I specifically like Microsub, as opposed to some of the other "synchronization protocols" that are more or less supported by some services because it is an open protocol independent from any specific platform/implementation.

[0]: https://indieweb.org/Microsub-spec [1]: https://github.com/aaronpk/aperture

njkleiner··on Starring your repo does not give you permission to spam me
> That only applies if both the sender and receiver are in the EU.

I'm under the impression that GDPR Article 3 (2) does apply in the case at hand, which is marketing emails sent by a US company to an EU resident.

njkleiner··on Ask HN: What does 12:00 AM mean?
> For some reason people are a lot better with knowing 11:59pm is, vs 12:00AM.

You mean, people have a mental association like "Oh look it's 12:00 AM [= midnight], better get to bed now" because they see these times in specific contexts, and then use that as a jumping off point to extrapolate the meaning of AM/PM as a whole?

njkleiner··on Ask HN: What does 12:00 AM mean?
Okay, I'm genuinely confused now, can someone please explain this to me?

First of all, how is nobody taking about the fact that OP was scheduled for an exam that takes place... at midnight.

There are two possible cases here.

Some people are alleging that OP lives in the same place as the exam takes place -- which is not clear to me from the information available -- and use this as an excuse for saying "OP should adopt to local customs".

But that would imply the exam takes place on midnight in local time. Is that actually a thing? Like, is this normal? Why on earth would anyone assume that's the case in an ambiguous situation like this, I can see why you would assume it's at noon without giving it too much thought.

The second case is that OP not in the same place (e.g. the given time at midnight does not match OP's local time), but in this case I blame the institution for allowing people to attend exams remotely while not properly accommodating for time differences.

While 12:00 AM/PM may be technically valid time descriptions, I was under the impression that it was common (in places that use the 12 hour system) to instead write 12:00 noon/midnight specifically to avoid this.

From what I understand, Americans are confused by this too, so why are people so eager to blame Europeans, rather than the system?

Second, I don't understand people saying they use 11:59/12:01 AM/PM as a mnemonic. This makes no sense to me as 00:01 a valid time. How do the above times resolve anything, when all you do is increase/decrease the time, relative to the label, which is what makes it confusing in the first place.

I don't understand how I'm supposed to know which of AM/PM 00:01 refers to, unless I already know what AM/PM means.

Third, people making comparisons to reading an analog clock. When I read an analog clock, I get a time in a 12 hour window. Fair enough. But when I then translate it to 24h, what I do is use my knowledge of whether it is currently day or night to translate it. Which has nothing to do with memorizing which label is which. Analog clocks don't have AM/PM labels so how would this make any more sense?

njkleiner··on Starring your repo does not give you permission to spam me
> mild anti-social behavior

Interesting way of spelling "illegal misuse of personal information under GDPR".

njkleiner··on You Win, Broken Database Schemas
While on the topic of names, could we discuss the difference between given name(s) and middle names and the implications this has on anglocentric software/database design?

While middle names might be common in the anglosphere, in other countries (e.g. Germany) it is common to have multiple given names, which is not the same as having a single given (first) name followed by zero or more middle names.

Here is a simplified version of how it works in Germany:

Informally, people usually go by exactly one of the given names, but notably, this can be any one of the multiple given names, since these have equal status by law (this is different from going by your middle name, which have other legal implications, depending on the jurisdiction).

Using all given names is usually only required for official purposes (e.g. on a passport). Note that using a combination of more than one (but not all) of the given names or changing the order (without doing an official name change) is not allowed. A person can, of course, choose to use all given names in day to day life too.

This means that a person with the given names Foo Bar and the family name FizzBuzz may use any of the following names:

- Foo FizzBuzz

- Bar FizzBuzz

- Foo Bar FizzBuzz

Note that it is perfectly legal for this person to go by Bar FizzBuzz even though "Bar" is not their first name (of the given names).

Also note that changing your given names (other than their order) is not easily possible for most people (according to current law), so if you require someone to give you their full name (here Foo Bar FizzBuzz) for legal reasons, please also give the user the option to at least state a simplified version of their legal name for display purposes (such as any single one of their given names which may not be the first).

TL;DR

Do:

- Allow people to enter multiple given names, even if you also ask for middle names separately

- Consider that the same person may use a different single given name for different purposes (e.g. basic account details vs. name details in the shipping address)

Don't:

- Prompt for the full name (including all given/middle name, or the family name) unless you have to for legal reasons; if you do have to, at least let the user pick another name for display purposes, which may be derived from their full legal name in unexpected ways

- Omit any of the multiple given names because "middle names are optional" or "not part of the legal name"

- Forcibly abbreviate the remaining given names after the first given name

- Drop any part of a given or family name if the name consists of multiple components separated by a dash

njkleiner··on The new warrant: how US police mine Google for your location and search history
There is an open source iOS app called Overland[0] that can continuously track your location history in the background and upload the data to an arbitrary endpoint as GeoJSON.

The "protocol" consists of a single HTTP request and response, so you can easily write your own server software to store the data however you want, which is what I did.

If you don't want to write your own backend, you can also just use the server software[1] the author of the app uses, which is also open source.

[0]: https://github.com/aaronpk/Overland-iOS [1]: https://github.com/aaronpk/Compass

njkleiner··on “I saw that you spun up an Ubuntu image in Azure”
> It is weird that this is your "last straw".

Why? Could you point me to some other straws I've missed?

> Most likely you haven't used Ubuntu for a very long time.

It's true that Ubuntu has not been my primary OS for a while, perhaps I should've been more clear.

I _am_ still using it on various laptops and servers (and have been meaning to switch back to it for daily use), which is why I'm annoyed at the prospect of having to deal with finding an alternative.

njkleiner··on “I saw that you spun up an Ubuntu image in Azure”
Thanks for the suggestions!

> "Just works" type desktop: Don't use linux.

That's why I preferred Ubuntu, it felt like a good compromise between a Linux system and ease of use (or rather ease of setup).

> Just use macOS or something. There's lots of things that don't "just work" on Linux even today.

That's actually what I'm currently doing, for pretty much that exact reason.

That said, I really want to switch to Linux as my primary OS again, I guess I'll give Arch a try.

> The distros have less and less meaning nowadays.

That's a good point.

njkleiner··on “I saw that you spun up an Ubuntu image in Azure”
It's a real shame, Ubuntu used to be my go-to distro, but for me this is the last straw in the history of shady things Canonical has done.

One of the things I liked most about Ubuntu is that the installation process is incredibly easy and everything "just works". Does anyone know a good alternative?

I'd love to go all in on Alpine, but using it on the desktop doesn't exactly spark joy.

njkleiner··on Minimal safe Bash script template
> Do you have data to support python is more likely to exist in linux machines than bash?

That's not what I'm saying. I never claimed Python was more widely supported that Bash, in terms of this argument you should use neither, that's the whole point.

What I'm saying is that it does not make sense to use Bash over e.g. Python in favor of supporting a wider range of machines while at the same time limiting support to Bash environments when you could use POSIX instead which is a subset of Bash and therefore more widely supported than Bash and Python.

Do you have data to prove that POSIX shell less likely to be supported than Bash and Python respectively? Otherwise I don't see how my argument is invalid.

Of course Bash support is larger than Python support (that's what you seem to be saying), and therefore even a Bash-specific script is more portable. What I'm suggesting is that it's contradictory to stop there when you could simply drop the bashisms and go for full POSIX compliance for even more portability.

That said, if I'm misunderstanding you, please point out how so.

njkleiner··on Minimal safe Bash script template
If your argument for using the shell (as opposed to a real programming language such as Python) is portability, writing a shell script that is not POSIX compliant literally defeats the point.

Also, 100 lines of UX-related bloat hardly classifies as "minimal".

njkleiner··on Stored Procedures as a Back End
Related: https://sive.rs/pg
njkleiner··on “Facebook has taken the name of my open source project ”
DMCA takedowns seem to be quite popular these days, I'd love to see how this would play out here...
njkleiner··on Sourcehut's Second Year in Alpha
I imagine the builtin email support might be the single biggest selling point, if you're into that kind of workflow...

Also, the simplicity is certainly appreciated.

njkleiner··on Show HN: Mimestream, a native macOS email client for Gmail
Does it support sending from a custom domain connected to Gmail, like the web interface?
njkleiner··on Ask HN: Recommend a maths book for a teenager?
This might be a bit of a different take than the other comments here, but I highly enjoyed reading Things to Make and Do in the Fourth Dimension by Matt Parker when I first became interested in maths.
njkleiner··on Reuters killed their RSS feeds?
There actually is, kind of.

The IndieWeb[0] community has come up with a protocol called AutoAuth[1] that solves this exact problem.

It's only a rough draft at the moment and it is built upon the IndieAuth[2] protocol (which, in turn, is based on OAuth 2), but I think the way it works is highly fascinating.

Here[3] is a an overview of how it works.

[0]: https://indieweb.org/ [1]: https://indieweb.org/AutoAuth [2]: https://indieauth.spec.indieweb.org/ [3]: https://www.svenknebel.de/temp/autoauth.html

njkleiner··on Blogging Is Not Dead
They were never really supposed to be interoperable with pingback from what I can tell, see the reasons here[0].

You're right in the sense that it's a classic case of <insert XKCD standards comic here>, but FYI there is a pingback to Webmention converter now[1].

[0]: https://indieweb.org/Webmention-faq#Why_webmention_instead_o... [1]: https://webmention.io/#forwarding

njkleiner··on Blogging Is Not Dead
Not quite true, Webmentions are used extensively by the IndieWeb[0] community (which is where the Webmention spec was born).

It's unfortunate that the author linked to the Wikipedia page instead of the Webmention page on IndieWeb wiki[1], which I'd argue is the canonical point of reference, since it has a lot more information and various examples.

It's arguably a niche feature used by a niche community, but it doesn't have to stay that way! Adding Webmention support to your website is actually quite easy since there are free hosted services[2] that let you receive Webmentions to any URL on your (static) site without having to run any code yourself.

[0]: https://indieweb.org [1]: https://indieweb.org/Webmention [2]: https://webmention.io

njkleiner··on OAuth 2.0 Security Best Current Practice
Isn't that what PKCE is for?
njkleiner··on Why Top Posting Has Won (2018)
The site is down for me, here[0] is an archived copy.

[0]: https://web.archive.org/web/20200407075946/https://www.solip...

njkleiner··on I got my file from Clearview AI
> These are not leaked medical records. In a way these abilities are like a person saying "hmm isn't that the guy from that thing a while back?"

That's why I don't think there is much of a point in trying to prevent people (e.g. by law) from crawling and using data in this fashion.

I feel like the only reasonable solution here would be to force these companies to rebuild their databases by legally limiting the lifetime of such data.

That way people have a chance to remove themselves from the database by changing/deleting their online profiles without having to use legal measures like GDPR requests. People wouldn't even have to be aware of any individual database they might be part of; they would be removed from it automatically at some point.

Another benefit of this would be that the pure cost of constantly re-crawling a giant dataset could act as a limiting factor and therefore prevent abuse.