HNHacker News
TopNewBestAskShowJobs

rft

508 karma · joined December 29, 2017

submissionscomments
rft··on Microsoft Recall is now an explorer.exe dependency
Overall, if you are willing to deal with some annoyances, give it a try, it might cover your use cases.

SteamVR is playable, but not at Windows level and rough around the edges. I personally run an Index on a 4080 Super (previously 3080) via the SteamVR runtime. System details in case it matters: Arch Linux Zen kernel, X11 (i3), Nvidia drivers, SteamVR Beta, usually a recent Proton GE version. I remember playing Beat Saber, including modded [1], Until You Fall, Pistol Whip, Raw Data and After the Fall without issues. Non-steam applications outside Steam can also work, I have a launch script that sets up the env vars for Proton, should be easier via Lutris.

I see some problems however. VR itself is not as smooth as it should be, 100% playable, but not as smooth as I remember it ages ago on Windows or using a FOSS VR [4] stack (which has other issues). I don't really use SteamVR home, it sometimes takes a while to load. SteamVR window on the monitor has weird flickering issues, usually I can't get into its settings, likely i3 related. Firmware updates are mostly broken. No (I think) standby for the Lighthouses, I toggle them via Home Assistant and smart plugs.

Shout out to steamtinkerlaunch [2] for making certain settings easier to apply and ProtonDB [3] for tweaks if needed.

[1] https://github.com/geefr/beatsaber-linux-goodies [2] https://github.com/sonic2kk/steamtinkerlaunch [3] https://www.protondb.com/ [4] https://monado.freedesktop.org/ https://lvra.gitlab.io/

rft··on The costs of the i386 to x86-64 upgrade
To add another layer on top of these hacks, Windows has Address Windowing Extensions [1] that allows a 32bit process to use more than 4GB of RAM. Of course pointers are still 32bit, so you need to map the additional memory into and out of the virtual address space.

x86 and its history is full of things that look hacky, and might be, but are often there for backward compatibility. If your x86 PC still boots in BIOS mode, it comes up in 16bit real mode [2], ready to run DOS. It then moves through the decades into protected mode and lastly (for x64 systems) long mode.

[1] https://learn.microsoft.com/en-us/windows/win32/memory/addre... [2] https://wiki.osdev.org/Real_Mode

rft··on Pi-CI – A RasPi 5 emulator in a Docker image for creating and flashing configs
I had the same need and also cobbled something together to do it. This project looks far easier to use, so I will also likely switch.

Checking the Dockerfile this also uses qemu to run the actual ARM binaries, I really liked how easy it was to set this up back then. All I had to do was loop mount the RPi image and then chroot into it. Everything else was handled transparently by qemu. Of course, I didn't have nice things like resize, so I was limited to making small additions.

rft··on The YouTube like button glows when you say "smash that like button" [video]
I have noticed multiple YT content creators just casually mentioning things like "like and subscribe for the algorithm" and even "leave a comment for the algorithm", which people do, sometimes just saying "comment for the algorithm". One creator I remember did a "if you watched until the end comment 'boat'" or similar, which of course is again just baiting more comments. It also nudges recurring viewers who know that spiel to watch until the end, because they get to enjoy the dopamine from being one of the people who can comment the word. This increases watch time, which apparently is again one of the things the algorithm uses.

Maybe I have just become more attentive to these things or they have become more prevalent, but I notice this blatant optimization for the Algorithm(tm) more and more. I guess this is the meta you need to play in order to stand out/make it in the torrent of content that is YT or social media in general. I also see this as an example of Goodhart's law as creators try to optimize for reach and thus likes etc. while the original intention of the YT Algorithm(tm) was (or should have been) to serve you content you will enjoy.

rft··on Hackberry-Pi_Zero – A handheld Linux terminal using Raspberry Pi Zero 2W
I have that keyboard and gifted one to my parents. Our use case is the odd chance you need to input text or use a browser on a Smart TV. Works so much faster than the on screen keyboard. With many Smart TVs just being Android under the hood, it just works.

I find for server troubleshooting, I usually have no problem grabbing a random USB keyboard. The bigger problem is finding a screen at a convenient location and connecting that one. It often was easier to carry my server to the screen instead of the other way.

On the topic of niche input methods, I also have an "air mouse" [1] with a full keyboard on the back for my Kodi system or when connecting my desktop to the TV. I essentially never need to use it, but it has come in handy.

[1] https://www.amazon.de/gp/product/B0B1HKWFQV

rft··on Hackberry-Pi_Zero – A handheld Linux terminal using Raspberry Pi Zero 2W
This looks quite interesting, thanks for the link. It does seem to require a native viewer instead of having a web interface. I would really prefer just a website like the PiKVM. Might still get it.

I have to do an off-topic rant though. The marketing page you linked to does not really state what this device does. It has a nice look into the case and a lot of buzzwords, but nothing like a small section with "HDMI Input" or "USB keyboard emulation". Even the shop page is somewhat light on details, but it at least shows (in GIFs only) that it works as a display and has a USB port. If I wasn't given your comment as context, I would likely not have gotten the use case and closed the tab. Based on the form factor being similar to a Fire TV stick etc. I would have assumed you plug it into a Hotel TV or similar to work on that.

EDIT: Saw your edit now and I think it is kind of funny that the old HN thread is also mentioning the marketing.

rft··on Hackberry-Pi_Zero – A handheld Linux terminal using Raspberry Pi Zero 2W
I can confirm that getting a PiKVM has very much eliminated lugging around my server or a screen. Having some form of display input would be the one feature I would wish to add if given the choice. Not having HDMI-In, e.g. via capture card, makes sense in this form factor and power budget, but would make this an instant buy for me. I would really enjoy having a small, very portable device to debug things with.

I recently got linked to a CCTV tester [1] that at least handles the display part. Sadly it does not seem to have keyboard emulation. It might be possible to hack this in as this is an Android tablet at its core and the USB controller might support gadget mode.

[1] https://www.rsrteng.com/products/ipc-9800movtadhs-pro

rft··on PySkyWiFi: Free stupid wi-fi on long-haul flights
So that was the name of it! I only had vague recollections of me setting up PuTTY with a proxycommand involving some kind of compiled to .exe Perl script. Worked out in the end with a free VPS and train station wifi. As usual, I spent far longer setting this up than actually using it, but it was one of the many small things that got me started on my career path.

Thank you for the trip down memory lane!

rft··on Llama.ttf: A font which is also an LLM
Your comment reminded me of this great talk [1] (humor ofc). While it talks about asm.js, WASM is in may ways, IMO, the continuation of asm.js

[1] https://www.destroyallsoftware.com/talks/the-birth-and-death...

rft··on Llama.ttf: A font which is also an LLM
(Sadly) this is nothing new. Years ago I wrangled a (modified) bug in the font rendering of Firefox [1, 2016] into an exploit (for a research paper). Short version: the Graphite2 font rendering engine in FF had/has? a stack machine that can be used to execute simple programs during font rendering. It sounded insane to me back then, but I dug into it a bit. Turns out while rendering Roman based scripts is relatively straightforward [2], there are scripts that need heavy use of ligatures etc. to reproduce correctly [3]. Using a basic scripting (heh) engine for that does make some sense.

Whether this is good or bad, I have no opinion on. It is "just" another layer of complexity and attack surface at this point. We have programmable shaders, rowhammer, speculative execution bugs, data timing side channels, kernel level BPF scripting, prompt injection and much more. Throwing WASM based font rendering into the mix is just balancing more on top of the pile. After some years in the IT security area, I think there are so many easier ways to compromise systems than these arcane approaches. Grab the data you need from a public AWS bucket or social engineer your access, far easier and cheaper.

For what it's worth, I think embedded WASM is a better idea than rolling your own eco systems for scripting capabilities.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1248876

[2] I know, there are so many edge cases. I put this in the same do not touch bucket as time and names.

[3] https://scripts.sil.org/cms/scripts/page.php?id=cmplxrndexam...

rft··on Cyber Scarecrow
Concerning code signing: Azure has a somewhat new offering that allows you to sign code for Windows (SmartScreen compatible) without having an EV cert. It is called "Trusted Signing" [1], non-marketing docs [2]. The major gotcha is that currently you need to have a company or similar entity 3 years or older to get public trust. I tried it with a company younger than 3 years and was denied. You might have a company that fits that criteria or you might get lucky.

The major upside is the pricing: currently "free" [3] during testing, later about 10 USD/month. As there doesn't seem to be a revocation mechanism based on some docs I read, signed binaries might be valid even after a canceled subscription.

[1] https://azure.microsoft.com/en-us/products/trusted-signing

[2] https://learn.microsoft.com/en-us/azure/trusted-signing/quic...

[3] You need a CC and they will likely charge you at some point. Also I had to use some kind of business Azure/MS 365 account which costs about 5 USD/month. Not sure about the exact lingo, not an Azure/MS expert. The docs in [2] was enough for me to get through the process.

rft··on Airlines required to refund passengers for canceled, delayed flights
Just a word of caution for anyone booking their own train connection, this is usually only done if you book train and flight on the same ticket. The DB calls this Rail&Fly and essentially the train becomes a leg of the flight. So if/when the DB screws up, your "flight" is delayed and treated just like a delayed plane.

https://www.bahn.de/service/informationen-buchung/bahn-flug/...

rft··on The Wi-Fi only works when it's raining
To add another weird tech issue to this collection: The camera shy Raspberry Pi. A model of the RPi would reboot when photographed with a flash: https://www.bbc.com/news/technology-31294745 (2015)
rft··on Wireproxy: WireGuard client that exposes itself as a HTTP/SOCKS5 proxy
Neat! This is a great replacement for my SSH tunnels when I need a different IP.

Somewhat related tool: pproxy, can, among many other things, "convert" different tunnel protocols into each other. Also features routing capabilities. I used it to turn an SSH SOCKS5 into an HTTP proxy. https://github.com/moreati/pproxy

rft··on Florida House of Representatives approves bill to ban social media for kids < 16
Another example is some Korean games requiring essentially a Korean ID to play. A few years ago there was a game my guild was hyped about and we played the Korean version a bit. You more or less bought the identity of some Korean guy via a service that was explicitly setup for this. Worked surprisingly well and was pretty streamlined.
rft··on Why you've never been in a plane crash
Also see United Airlines Flight 232 https://en.wikipedia.org/wiki/United_Airlines_Flight_232 which suffered a loss of all hydraulics and thus control surfaces. The crew and a check airmen who was aboard as a passenger managed to somewhat control the plane using engine thrust and managed to steer the plane to an airport before making a crash landing. They saved more than half the people on the plane.

One of the harrowing details is this quote: "The crew contacted United Airlines maintenance personnel via radio, but were told that the possibility of a total loss of hydraulics in a DC-10 was considered so remote that no procedure was established for such an event."

rft··on Amazon Fined $35M in France over 'Overly Intrusive' Surveillance
Here in Germany we only have flat fines for standard traffic infractions. If you make it all the way into crime territory we have the concept of Tagessätze (lit. day fines). The court sentences you to X amount of Tagessätze. The actual fine per day is determined based on your income, usually equal to the amount you make after taxes per day. The judge is free to either estimate your income or can require you to declare it.
rft··on Flipper Zero: Multi-Tool Device for Geeks
Years ago I had some insight into the "crypto" behind a garage door opener. It was essentially a rolling code and the controller stored the counter for each paired remote and checked it. The package sent by the remote also included its current counter value. If the controller received a counter that was higher than expected, it just updated the stored value and accepted the request, assuming the actual "ciphertext" is correct ofc. The only constraint was that the sequence number must be larger than the stored value.

This also means if you manage to clone a remote, you can just abuse humans. If you opened the door with your clone, the next time the original remote sends its package the sequence number will be too low and the controller will ignore it. But what do you do if your remote didn't work? You press it again, this time the sequence number matches and things work as they should.

For cloning you need to reconstruct the initial seed for the PRNG that is used to create the ciphertext based on the sequence number. Based on how little resources these remotes tend to have, more based on cost than battery life etc, and that some vendors design their own crypto, this can actually work. If you know the algorithm and the seed is only 32 bit, you can easily brute force it.

rft··on Flipper Zero: Multi-Tool Device for Geeks
Seems like there is at least a bit of interest [1] to convert lirc definitions [2], which is great, because there are so many of them. There even is a definition for my about 30 years old hifi! A really nice hack I saw is to send the code via something that reads lirc and capture it with a flipper in learning mode [3].

[1] https://forum.flipper.net/t/is-possible-to-convert-irplus-fi...

[2] https://lirc.sourceforge.net/remotes/

[3] https://github.com/Lucaslhm/Flipper-IRDB/pull/294

rft··on Ten Simple IT Security Rules for Early-Stage Startups
While this seems weird, it actually somewhat qualifies as an insecure 4 eyes. Ofc the eng director can act without another party, but for anybody else this usually involves at least a short "sure, what are you trying to do?".

Google voice and other "non-traditional"/VoIP services are sometimes blocked by websites sadly.

P.S. dishonorable mention: Apple Business Manager uses SMS 2FA only, at least you can have multiple admin accounts

rft··on Ten Simple IT Security Rules for Early-Stage Startups
Same, I even put a Thunderbird "New Message" window on mine just to be extra "attractive". Had an extra keybind for that, just in case I need to take my laptop to a customer.

Overall the "buy treats for the office" rule helped to establish the habit even though I think we never followed through with it. We mostly just told newcomers that this is the rule and they locked their screen as expected. And ofc it turned "Hey, lock your screen!" into "Oh, you want to treat us?" which makes for a more cheerful way to remind people.

rft··on Raspberry Pi is manufacturing 70K Raspberry Pi 5s per week
I think the RPi is more of a jack of all trades, master of none. This also applies to performance. It bundles an impressive amount of partially niche, but overall well supported, features (Linux, USB3, gigabit ethernet, okish wifi & BT, HDMI with CEC, GPIO, camera, okish GPU) with a powerful enough CPU and enough RAM for an acceptable price.

If you want the traditional desktop experience or a higher workload server, the RPi is likely not going to win against an N100 SBC or mini PC. For many applications besides that the RPi fits the niche of powerful enough to run it, power efficient enough to not worry about it running all the time, cheap enough to not worry too much and common enough to be well supported. Things like single-purpose software packages/distributions are often better supported on an RPi, just because it has become the "standard". Sure, you might find hardware better suited for each use case, but it seems like the RPi can handle most of it and thus becomes the default choice.

As an example, I recently tried out an N100 mini PC to drive my living room TV instead of an RPi4. I liked the option of having a fully featured desktop with decent performance just in case (most importantly Firefox). Plus the N100 on paper has more video decoding options, either via HW decoders or just by virtue of handling more via software decoding. In practice, these advantages were irrelevant for my primary use case (watch movies, series & long-form YT videos). But, I lost out on "it just works" features. The RPi4 just boots into Kodi (via LibreELEC) and works flawlessly with HDMI CEC, the N100 does not have any CEC capability (missing HW feature). Sure, I can use an external USB dongle to get CEC support, but after buying that I am at a far higher price than for the RPi4 + SD card + good power supply + simple case.

Side note: the RPi4 also beat a Pine64+ for that use case, just because I couldn't get the board to play nice with LibreELEC. No CEC and no wifi, even after tinkering for far too long.

rft··on Why does holding a key fob to your head increase its range?
Thanks for the liquid antenna pointer, I had no idea this was actually tried! Apparently not only the navy thought about this, but there are idea floating around about using liquid metal for variable length antennas.

One of the links I found: https://www.mwrf.com/technologies/embedded/systems/article/2...

rft··on Ask HN: What apps have you created for your own use?
> CLI: I wanted to download songs from youtube, but they were often stitched as complete albums - so I wrote a youtube-cue generator that generates cuesheets that can then be used to split and tag the yt-dlp downloaded audio file. (https://github.com/captn3m0/youtube-cue)

Thanks for this! I need to do some testing, this might automate the last manual step of my own script for converting YT mixes into distinct tracks. The problem I faced is that often the timestamps are not in the description, but instead in a comment, sometimes not even the pinned/top voted comment. That is why I paste it in via stdin for now.

As this fits the thread topic, a short description of this script. I enjoy YT mixes and wanted to listen to them in my car. I can use an USB stick with media files and playlists which are displayed decently by the infotainment system. I wrote a script that takes in a YT URL (or anything supported by yt-dlp), downloads & converts it to mp3, splits the mp3 file based on a list of timestamps, recognizes (tries to anyway) the songs via SongRec [0], tags & names the files correctly and finally generates an M3U playlist in the format recognized by my car. I use song recognition instead of parsing out the names from the timestamped list as the format of Artist - Title is nearly always slightly different. It was easier to use SongRec instead and get everything I need for tagging with >90% hit rate.

The heavy lifting is done by calling out to yt-dlp, ffmpeg and SongRec. I just glued them together with Python. I like your approach of a do one thing well and might add youtube-cue to the toolset.

[0] https://github.com/marin-m/SongRec

rft··on Ask HN: What apps have you created for your own use?
Now that is a tool I never knew I needed, great idea! I get by with the compose key or just googling the Umlaut if I have not set it up.

I guess I have just nerdsniped myself into building a script/hack that can automatically edit the clipboard and/or selected text on button press. There goes my weekend, but thank you for building this part!

rft··on Spotify CFO cashes in £7.2M in shares after value surges on news of job cuts
In Germany, if you lay off many people you might need to inform the unemployment office beforehand. There are thresholds based on both the amount of people laid off and the size of the company.

This is not exactly a circuit breaker, but combined with other employment law this means laying off many people is quite a lot harder and takes longer.

German source with the thresholds: https://www.arbeitsagentur.de/unternehmen/personalfragen/pfl...

rft··on I tested four NVMe SSDs from four vendors – half lose FLUSH'd data on power loss (2022)
The current state is to use guest accounts [1]. If you use that branch instead of master and get a collection of accounts, you can run your own instance. For my personal use instance this is working fine with the initial set of accounts I put in. No idea how long this will work and/or when it is going to get merged, it is a moving target.

I think the token workaround you mentioned is the old way that no longer works, but I am not sure.

[1] https://github.com/zedeus/nitter/pull/985

rft··on Awesome Engineering Games
CC is the reason I can write some Lua, at least after the initial intro when I was fumbling around in the TES 3 editor. I went down that rabbit hole and build some far too complex one-off things. One of them even called out to a PHP backend for a shared database. I think I started hacking on a system that could propagate updates between CC nodes in a sort of mesh network (wireless CC networks) before just using the database backend. Luckily I lost interest before writing a whole network layer.
rft··on From airlines to ticket sellers, companies fight U.S. to keep junk fees
> So yea, it really isn't that simple in the USA.

German VAT is also not simple. Before we had a temporary (so another layer of madness) law change, you either paid 19% VAT or 7% VAT, depending on whether you ordered your food to go or sat down at a restaurant. So the same item, for the same person would be taxed at a different rate depending on whether that person walks out with the food or carries it to a table. The restaurants simply advertise a single price and eat the difference [1]. Or to be more precise: the different tax values are priced into the single price, potentially accounting for the rough split between dine-in/takeout orders.

Despite all of this madness, we see a single price at the menu, we can pay exactly that price, and for takeout it actually is not uncommon to actually pay exactly that price. No sales tax, mandatory surcharges or gratuity, just a single, final price.

As for differences in the income needs of the counties/municipalities: this is handled with taxes on the profit of companies based in that area [2]. So the consumer never sees the differences in taxes, accounting is pushed to companies. If McD wants to advertise a fixed price nationwide, their franchisees need to eat the difference.

I get that in the US the states are more like countries in the EU, but we still manage to have the same VAT in all of Germany while apparently US sales tax can vary on the city level.

[1] there are exceptions, e.g. explicit to-go foods are advertised as such [2] there are more ways for this, but this is, IMO, the most similar way to the local sales tax in the US

rft··on Awesome Engineering Games
Honorable mention: tech-focused Minecraft (Java!) mod packs (don't laugh), if that floats your boat
← PreviousPage 3 of 6Next →