HNHacker News
TopNewBestAskShowJobs

tschumacher

213 karma · joined December 25, 2022

submissionscomments
tschumacher··on Mullvad exit IPs are surprisingly identifying
Great find by the author and I have no trouble believing this is an oversight by Mullvad. Kind of shocking that something this simple slips by them but I could see myself missing it.

Putting aside the IP correlation across multiple servers, at first I wondered why even keep the user IP stable on one server. But I think it makes sense because as the author states other VPNs usually have only one IP per server so they are essentially simulating that. The advantages for the user are, if they find a server that works for accessing some service they can connect to that server again and it will work again because they get the same IP.

The IP correlation across multiple servers they should fix though with something like rand.seed(user_pub_key + server_id)

tschumacher··on Keep Android Open
Google has been clear that installing apps through sideloading and from other app stores will continue to work as long as the developer went through the verification process to get their app signed.

Source: https://android-developers.googleblog.com/2025/08/elevating-...

tschumacher··on Google confirms 'high-friction' sideloading flow is coming to Android
I know in some people's eyes saying this will make me a Google shill but this reminds me of the manifest v3 thing. What makes it to the top of HN is mostly clickbait a las "Google is cracking down on ad blockers" or in this case "Google is preventing side loading". These articles don't link to primary sources (Google) and they (intentionally?) miss all nuance.
tschumacher··on Can I start using Wayland in 2026?
I looked into this lately - Discord needs to use the Global Shortcuts Portal to do it properly but how is unclear. Discord is based on Electron which is based on Chromium. Chromium has support and Electron kind of has support since https://github.com/electron/electron/pull/45171 but this seems to be rather unknown and unused. Although somewhere in this API chain keyup events are lost, meaning that only "normal" shortcuts would work but no push-to-talk. There are multiple options for Discord to implement this: implement Global Shortcuts Portal directly, go via Electron global shortcuts API, hook into Chromium shortcuts API, maybe others - with the caveat that some of those don't support keyup events. Vesktop devs are currently stuck in same dilemma: https://github.com/Vencord/Vesktop/issues/18
tschumacher··on Is Mozilla trying hard to kill itself?
Can someone explain how banning ad blockers from Firefox would bring in money for Mozilla? I can see how it would bring in money for other actors such as news outlets, YouTube, etc., but Mozilla doesn't have a big website where they are showing ads.
tschumacher··on Syntax highlighting is a waste of an information channel (2020)
My coworker recently showed me this plugin [1] that fades out all Rust code that is unrelated to the variable under the cursor. Think of it as a more powerful version of the "click to highlight all appearances" you can do in most IDEs but it actually does information flow analysis on the code.

[1]: https://github.com/willcrichton/flowistry

tschumacher··on I am a programmer, not a rubber-stamp that approves Copilot generated code
Yes, this is it. The idea that LLMs somehow write this deceptive code that magically looks right but isn't is just silly. Why would that be the case? If someone finds they are good at writing code (hard to define of course but take a "measure" like long term maintainability for example) but they fail to catch bad code in review it is just an issue with their skill. Reviewing code can be trained just as writing code can be. A good first step might be to ask oneself: "how would I have approached this".
tschumacher··on Trying to teach in the age of the AI homework machine
I'm kind of happy that I did my maths courses just about before LLMs did become available. The math homework was the only thing in my CS studies where I sat sometimes 6+ hours on the weekly exercises and I always allocated one day for them. I sometimes felt really tempted to look stuff up and also rarely found an answer on Metroid Mathplanet forums. But it's really hard to Google math exercises and if the teachers are motivated enough to write new slightly altered questions each year they are practically impossible to Google. With LLMs I'm sure that I would have looked up a lot more. In the end getting 90% of the points and really struggling for it was rewarding and taught me a lot - although I'll probably never need these skills.
tschumacher··on I Built My Own Audio Player
I built my own web app to listen to full albums while allowing me to take breaks and switch devices. I really like to listen to albums from front to back but I found that at least YouTube Music doesn't remember playback position and you can't just switch devices without pulling up the album again on the other device and finding the position where you left off. My web app lets me paste a URL that is then downloaded to the server using yt-dlp and can be streamed from there. It always remembers playback position so I can listen from the phone in my car and then continue on the laptop at work from where I left off. It also works great for adding mixes from other sources such as NTS Radio - one of my favorites.
tschumacher··on I Don't Have Spotify
Songwhip allowed artists to claim and customize their page for a fee. Back then I looked into why Songwhip closed but couldn't find a definitive answer. I found a Reddit post where the original creator shared their site many years ago, so it looks like Songwhip started as a personal project. When it closed down though that decision was made by Sony. So it seems like the original creator got bought out by Sony and then Sony decided to close the service. Just speculation though.
tschumacher··on I Don't Have Spotify
> Can’t confirm

Try this link https://tidal.com/browse/track/18835695/u, for me it shows a list of links to other services: https://imgur.com/a/MEsaIZw

tschumacher··on I Don't Have Spotify
I miss Songwhip as well. We used to have a bot in our music sharing Discord channel that looks for links to any streaming platform and convert them to Songwhip links via the Songwhip API. The good thing about Tidal is that, like Songwhip, it provides you with a list of links to various streaming platforms when you're not logged in.
tschumacher··on Ask HN: Who wants to be hired? (August 2024)
Location: Darmstadt, Germany

Remote: Either on-site or remote is fine

Willing to relocate: No

Technologies: Python, C++, Rust, Javascript, Linux, SQL, Git, and more

Resume (only in German): https://tschumacher.net/Tim%20Schumacher%20Lebenslauf.pdf

Email: see resume

I'm graduating with a Master's degree in Computer Science at the end of September and am looking for a SWE role to start around then or later. I've been programming long before university and worked as a part-time developer for a year during high school. My GitHub (https://github.com/timakro) features several projects that are actively used and contributed to by others. For many years, I've contributed to https://github.com/ddnet/ddnet, where I learned to work on a large code base with a team.

tschumacher··on Ryanair – when every page is a dark pattern
Unfortunately Ryanair left Frankfurt Airport. They consistently offered flights an order of magnitude cheaper than other airlines and I could reach Frankfurt airport directly by bus for free with my student ticket. This was the ideal way to go on vacation for me. I don't mind clicking "no thanks" a few times when it saves me 500 euros.
tschumacher··on Zed on Linux Is Here
Interesting. I expected it to be near instant without syntax highlighting but it's still slow.
tschumacher··on Zed on Linux Is Here
I'm pretty sure this is syntax highlighting. It's a known issue to be slow for large files in Vim because it is synchronous. Try starting Vim with syntax highlighting off:

    vim -c 'syn off'
tschumacher··on Getting the World Record in Hatetris (2022)
I also burned myself on an overambitious machine learning project in the past. I had and still have little practical experience but I think I learned a common beginner lesson. Existing ML architectures apply worse to new problems than we think. The only sane way to ML is to reproduce something that works and then make small incremental changes.
tschumacher··on Start all of your commands with a comma (2009)
I got this from an old HN comment I can't find anymore. I have this in my .bashrc:

  alias dotfiles='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
And I init my dotfiles into a fresh home directory like this:

  git clone --bare gitolite3@example.com:dotfiles $HOME/.dotfiles
  git --git-dir=$HOME/.dotfiles --work-tree=$HOME config status.showUntrackedFiles no
  git --git-dir=$HOME/.dotfiles --work-tree=$HOME reset --hard
tschumacher··on Aggregating all cinema showtimes in Germany with Clojure
Congrats for building such a great site. I'm curious where OP is pulling the data from. I particularly like the Citydome [1] in Darmstadt, which is often showing movies in original language.

[1]: https://allekinos.de/?city=Darmstadt&cinema=Citydome

tschumacher··on Quantum Algorithms for Lattice Problems
Some post-quantum signatures like CRYSTALS-Dilithium are based on lattices. Makes me think that quantum key distribution (what I've been working on for the past 6 months) has a chance to actually become useful instead of being only of interest to academics and to a few companies that sell overpriced solutions to paranoids.
tschumacher··on A deep dive into email deliverability in 2024
I have the same gripe and in response published the notes to set up my self hosted email on my blog a few months ago [1]. It's really not that hard but yet we constantly see this topic on HN. I understand there are people who've set it up properly and still have their mail end up in spam. Maybe we're just lucky. But there's no need to write long pieces about this going into detail what this tech giant and that tech giant do. All you can do is set up DMARC, DKIM and SPF - that's it.

EDIT: Admittedly this post is also about bulk sending where other metrics like unsubscribe links and spaminess matter. But for the self hosted crew it really just comes down to DMARC, DKIM and SPF.

[1] https://tschumacher.net/self-host-email/

tschumacher··on Writing Gnome Apps with Swift
I wonder where the pulse is with current GTK app development. I've noticed some of the newer core apps are in Rust like the new camera app and the image viewer, also the public transport app railway (not a core app afaik).
tschumacher··on Two nights of broken sleep can make people feel years older, finds study
My sleep is very irregular but I always get enough. I tend to have trouble falling asleep but once I'm asleep nothing can wake me up. Some days I sleep until noon or I have to get up early but then take a nap later. I wonder if all the bad consequences that are associated with "broken" sleep apply to irregular but plenty sleep as well.
tschumacher··on Game of Life, simulating itself, infinitely zoomable
Yes, this is inconsistent. When you zoom in 10 levels and then zoom out 10 levels again, pretty much all cells you see will be dead. But if you continue to zoom out further than 10 levels, you will see some mix of live and dead cells again.

Zooming in is easily defined: when you zoom into an on-state OTCA metapixel, you can check which pixels that make up the metapixel are on and which are off [1]. Same deal for zooming into an off-state OTCA metapixel. The reason you are seeing mostly dead pixels is that most pixels inside an OTCA metapixel are off, so the chance of hitting a pixel that is on is slim.

Zooming out is more tricky: when zooming out of an on-state pixel, that pixel could be at many possible positions inside an on-state or off-state OTCA metapixel. In their blog post the author says that they randomly select from the possible options in a way that adds "diversity" [2]. I think this could be improved to align with the statistics of zooming in.

[1]: https://conwaylife.com/wiki/OTCA_metapixel [2]: https://blog.oimo.io/2023/04/10/life-universe-en/#fnref5

tschumacher··on JIT WireGuard
My implicit suggestion was that clients make a GraphQL request not only before the first connection but before every connection. The gateway server can insert the keys into the kernel in response to an explicit GraphQL request instead of in response to some complicated packet sniffing.
tschumacher··on JIT WireGuard
Sounds like a whole lot of effort to avoid a GraphQL request each time a flyctl client wants to connect.
tschumacher··on An app can be a home-cooked meal (2020)
Loved your comment. Sometimes we can get lost in the technology but that can be fun in itself.
tschumacher··on Browsers are the most likely disruptor of the mobile duopoly
Just out of curiosity because you might know: does the deviceorientation event (without absolute) work on iOS? Because I've just used it for a toy website of mine and have no iPhone to test.
tschumacher··on Show HN: Intuitive nutrition information
Similarly, 1 cup unsalted peanuts is listed as having 10x the calories of 1 cup peanuts. The latter probably refers to peanuts in their skins while the former refers only to the nuts which would be packed much denser. A photo of the food could help here.
tschumacher··on Outlook/Hotmail is no longer blocking my mail server
In my experience rspamd has >99% accuracy which is enough for my personal email account. I don't doubt that Google does better though.
Page 1 of 2Next →