fiddyschmitt
fiddyschmitt on Hacker News
Nice write-up! I wrote
https://github.com/fiddyschmitt/SimpleKVM which makes the process easy on Windows.
As others have mentioned, you can use a cheap USB switch if you don't have an in-built KVM.
DDC/CI is quite interesting. Most OEMs seem to implement it just fine. But some (like LG) need special handling.
Posted by
fiddyschmitt on Tuesday November 11, 2025 @07:16PM
from the show-hn dept.
https://github.com/fiddyschmitt/File-Tunnel/wiki/Use-a-remote-internet-connection
I've just finished a major upgrade to enable tunneling over more file systems: https://github.com/fiddyschmitt/File-Tunnel/wikiThe most popular feature request was to tunnel over S3 buckets. I was surprised it worked. The latency is high (3 seconds) but the bandwidth is high enough to stream a 1080p video from YouTube. Overall, it has similar performance to internet through geosynchronous...
Yes exactly. One file in each direction made arbitration easier.
In the future I will implement a single file to handle both directions.
Hi Andrew, there's just one writer (which can tunnel multiple TCP connections).
Arbitration was indeed one of the trickiest bits. Originally I pre-reallocated the full file size (10 MB). Then used an integer at the beginning of the file to signal to the other side that a block was ready. The other side repeatedly read that int, and read the corresponding part of the file. But writing twice (once for the data, once for the int) had a significant performance impact.
In the end, what worked best was not pre-allocating the file. Rather letting the file grow whenever the writer writes to it. The reader knows when data is available by doing a PeekChar() in a tight loop. It's surprisingly fast, and accurately reflects the state of the file.
Hi Bawolff! Yes that's a great combo. I guess File Tunnel provides a couple of things that makes the tunnel maintenance a bit easier.
1. It gracefully supports each side of the tunnel turning on and off.
2. It accepts any number of clients, and forwards them through the tunnel.
3. It recycles the shared file.
Thanks J :) Absolutely! I did try various flags to optimise performance. For CreateFile (which in .NET is wrapped by the FileStream class) I tried FILE_WRITE_THROUGH (which is FileOptions.WriteThrough in .NET), and found it impacted performance quite a lot.
The key to high performance as you rightly pointed out was preventing flushing. In the end, what worked best was reducing the number of writes to disk (which is the bottleneck). I did that by buffering 10-50 ms worth of TCP data, coupled with only flushing explicitly (using a large buffer so that neither BinaryWriter or FileStream flush automatically).
Nice! It's so good when you can cobble together various tools to achieve something like that.
Posted by
fiddyschmitt on Monday June 03, 2024 @07:17AM
from the show-hn dept.
https://github.com/fiddyschmitt/File-Tunnel
Firewalls typically block network protocols, yet permit access to file servers.A file tunnel can be used to enable a client to reach a server.
Posted by
fiddyschmitt on Sunday June 02, 2024 @07:39AM
from the show-hn dept.
https://github.com/fiddyschmitt/File-Tunnel
This program can be used to tunnel TCP connections through a file.People have used it for interesting things:- Bridging connections which would otherwise be blocked by a firewall- Tunneling through RDP (similar to an SSH tunnel)- Exposing a localhost web server to othersKey features I put effort into:1. The shared file is restarted every 10 MB, so it doesn't grow indefinitely.2. Optimisations...
Thanks! Even just one instance running on Windows can be used for a Windows+Linux setup
Yes I know exactly what you mean - I've experienced the same. I haven't tried a mechanical one before. I'll have to try it out
Yep HDMI works well. It also works on DisplayPort, DisplayPort Mini, VGA and DVI.
Yes Barrier is very nice. I would use it except for the fact that my work laptop is VPN'd and therefore on a different network to my home LAN.
I think it should. When you do the setup it asks you to unplug and replug the device, and choose it out of the list. So it should trigger the change.
If you only have two PCs, you only need to run the program on one of them.
When it detects a USB device being plugged in, it changes the monitor input to this computer. When a USB device is removed, it changes the monitor input to the other computer.
Love it.
Unfortunately I can't install it on my work computer due to policy & VPN.
The benefit of SimpleKVM is that I just have to run it on my home PC, and I can switch between work and home.
oooh, not sure. I suspect Thunderbolt has very specific requirements, and switches would be consequently expensive.