HNHacker News
TopNewBestAskShowJobs

J-Kuhn

289 karma · joined November 11, 2016

submissionscomments
J-Kuhn··on Freenode commits suicide, is no longer a serious IRC network
Kafkaesque? Yes.

https://christine.website/blog/final-chapter-2021-05-20

https://christine.website/blog/epilogue-2021-05-26

J-Kuhn··on The End of Freenode
Yes, networks have a networking effect (duh).

First, its about discoverability - on many networks you can see in what channels someone is in by simply /whois'ing them - allowing you to find other channels you might be interested in.

Second, if you want to create your own channel - you will most likely choose a network where your target audience already is. Creating a channel there is usually easy - /join a channel that does not exist yet, and often register it with the services with /cs register.

Setting up your own IRC Network is not that hard - but you need a server you can run IRC on, pick one of the many IRCds, pick a services package (Atheme and Anope are the most popular). And then you need to administer that network. (Which often means NOT doing anything.)

Creating your own IRC Network can be fun, and you can learn a lot of interesting things. But it is also time consuming. Creating a channel on an existing network is usually 2 commands away.

J-Kuhn··on Freenode ops take control of 700 channels
Not to mention that the stuff is on top of hackernewes - anyone idling / currently on vacation / in coma can quickly figure out what is going on.
J-Kuhn··on Freenode ops take control of 700 channels
Whatsapp blocked telegram.me links at some point (I think when it was acquired by facebook, inciting an other mass exodus)
J-Kuhn··on Divisible by 7 (2016)
Yes.

A number in base $n$ is just $a*n^2+b*n^1+c$.

Because $n mod n-1 = 1$, you can replace every $n$ with $1$.

So $a*n^2+b*n^1+c mod n-1$ becomes $a+b+c mod n-1$

J-Kuhn··on NordVPN disables features when you turn off auto-renew
Not everyone can setup their own web/mail/vpn/whatever server.
J-Kuhn··on Remembering Windows 3.1 themes and user empowerment
In the old days, the solution was simple - block the UI.

But nowadays - a background thread will search for the stuff that should appear in the UI, and adds that directly when it found something.

You can solve the problem by changing the mouse icon to the hourglass, blocking the UI for just enough time to not get any accidental clicks, and update it.

As side effect, every update now takes some time - so you have to minimize the number of updates.

J-Kuhn··on Escaping VirtualBox 6.1: Part 1
Just a question:

Do the organizers know about the security vulnerability?

Where do they get the vulnerabilities from?

J-Kuhn··on [dead]
In Germany, we have a proverb that roughly translated says:

"Whose bread I eat, those song I sing."

J-Kuhn··on Backdoor in Zyxel Products
> 2020-12-02: Zyxel requests more information about how the vulnerability was discovered

Sorry, but how did you figure it out? Can we hide it better next time?

J-Kuhn··on Why software ends up complex
C++ did set a bad example with operator overloading.

    cout << "Hello World";
What the heck is that? Shift cout by "Hello World"?

It looks like they did that just because they can.

J-Kuhn··on Show HN: I created a URL shortener that can be entirely hosted on GitHub Pages
Just a CORS header.

Access-Control-Allow-Origin: star

J-Kuhn··on API design is stuck in the past
No comment that says something like "Use SOAP instead"?
J-Kuhn··on Show HN: Please-unsubscribe.com – fwd emails to unsubscribe from marketing
Afaik, there is no automated information flow to the provider. It kind of works, but differently than you said.

Let's say, you flag a mail on GMail as spam. GMail's filters will learn: both the spam filter for your inbox as well as a shared filter. If the shared filter learned that all mails from that provider are junk, then gmail may not accept any more mails from that provider.

But the provider is interested in his ability to send mails to gmail customers - because his own customers demand it. So, a good provider would just kick out that rouge customer who sends junk.

And that's where the fun begins: A big provider can deliver spam, if it's only a small percentage of his usual volume (too big to fail). And not every provider is cooperative. And the process is slow - some filter has to be fed a large amount of junk, so it finally rejects a large portion of of the valid mail.

A better way is: Get your provider to send an abuse mail to the origin. In my experience, it's still a fight against windmills, but every bit helps.

J-Kuhn··on How I talk to the victims of conspiracy theories
Let's take one of the older conspiracy theories: 9/11 was an inside job.

* "something that is known to have happened" - Yep, 9/11 did happen. And some people say they KNOW that it was an inside job.

* "especially something for which proof exists" - job of the CIA is to exactly prevent such a thing, they did not.

* "or about which there is information" - come on. I won't link conspiracy theory websites here.

So, in the end, your definition does not contradict that someone calls the 9/11 conspiracy theory a "fact".

The first point is debatable - but then you could apply the same logic to WW1 or any other history event.

Therefore, I don't like your definition of fact.

J-Kuhn··on Why I'm Tcl-Ish
If you want to automate stuff on windows with tcl, twapi is great. I prefer Tcl with twapi over AutoHotkey.
J-Kuhn··on Why I'm Tcl-Ish
If someone asks me of a small snippet that describes some fundamental thing about TCL, I will respond with this:

    set a puts
    $a "Hello World"
A command is just a list. Substitution is done before executing it. That's why [set] requires the variable name, not $variable.
J-Kuhn··on How to Get Fired Using Switch Statements and Statement Expressions (2016)
You make an API change.

The API change is communicated and approved by both parties.

You build the first thing.

Canary fails, because API has changed.

You change the other to match the new API.

Canary fails again, because it uses the most recent non-failed build.

???

Owner of the canary build is now shunned.

J-Kuhn··on Suicide Linux (2009)
Bug report: Does not honor the requirement to set --no-preserve-root by rm.
J-Kuhn··on Ask HN: How to do cross platform GUI?
Most modern browsers should consider http://127.0.0.1/ or http://[::1]/ as trustworthy.

See https://www.w3.org/TR/secure-contexts/#is-origin-trustworthy

J-Kuhn··on The Liskov Substitution Principle (2019)
Constructors are not inherited.

If you know you are constructing a Rectangle, then you use it's constructor. If you create a Square, you use that constructor.

But they are not inherited, and can have completely different semantics - accept different arguments or throw for for new reasons.

That having said, the Rectangle / Square example doesn't really work: Is `new Rectangle(42, 42)` a Square? (This brings us to factory methods...)

J-Kuhn··on State of Loom
And use a different executor.

But yeah, the magic is: All code is now implicitly async (except native calls) - as if all code always had async in it's signature. Just - there is no need to now add this to the signature.

J-Kuhn··on Java Feature Spotlight: Text Blocks
You have to pass `--enable-preview` to BOTH compiler and runtime.

If you think about it - the feature may change significantly or be even removed - it makes sense to only support a preview features in one java version.

Providing backward compatibility for preview features is simply not intended.

J-Kuhn··on The Wright Brothers: Pioneers of Patent Trolling
The definition of a patent troll is hard. While your definition is currently the common definition, I believe we have to look how we reached that definition.

The first question we have to ask is: How do we not like patents to be used?

> its impact on the state of American aviation was indisputably negative.

We don't want patents to be used in a way that deters further research and advancements in that field.

Can we determine if a way of use will do that in the future? Unfortunately, as we can't see into the future, we don't know.

So we use the next best thing: We try to find patterns that strongly suggest that someone is abusing a patent.

And the pattern that we found is: People who just buy patents (sometimes for just $1) and don't produce their own are more likely to abuse patents. And that's how we came to today's definition.

But for the past, we can answer the second question. And we should use this as definition if possible.

J-Kuhn··on The “mail is hard” myth
Tell their users "I'm sorry, but there is nothing we can do to send you the mail - please complain to Verizon."

If enough users complain, they might change their policies. Ehh, wait, we talk about Verizon here.

Don't bother.

J-Kuhn··on F() vs. F(void) in C vs. C++
Came here to say something that I suspect operator overloadíng. I read your comment, pressed refresh, and it was already fixed.
J-Kuhn··on Giistr – Search, filter and help on GitHub issues
Doesn't work for me. I have CraftBukket stared, and that repo was taken down by a DCMA request.

Now the site is broken for me.

J-Kuhn··on Tell HN: Google removing Gmail access from IFTTT
I'd say that this is nearly impossible.

We talk about two different data sets here: * The actual User data. * Data from third persons, including, but not limited to their e-mail address.

While a user can agree that their own data should be processed by a third party, the problem is that he cannot consent for other people.

And in my understanding (INAL), every part of the software where those third person information is transferred or processed needs to be part of that full assessment.

A limited API that does not give out any third persons data would have to somehow filter out all the information of all third partys.

J-Kuhn··on Implementing Impersonation
Can confirm that impersonation will open a hole. Found my first security bug 10 years ago in moodle[1]. It allowed students to impersonate admins with came with full access to the admin panel.

[1]: https://moodle.org/mod/forum/discuss.php?d=87972

J-Kuhn··on Time to look beyond Oracle's JDK
That's something nobody can be sure it won't happen.

OpenJDK is open source (GPL2 + classpath exception).

"Java" otoh is a trademark.

← PreviousPage 3 of 4Next →