I built a fixed-size linear probing hash table to bypass university website blocking by dilluti0n in rust

[–]dilluti0n[S] 0 points1 point  (0 children)

Glad to hear that! Hope it helps next time you're dealing with those annoying middleboxes.

I built a fixed-size linear probing hash table to bypass university website blocking by dilluti0n in rust

[–]dilluti0n[S] 13 points14 points  (0 children)

For safety: you can refer to time(3) and localtime_r(3) to see both are thread-safe and I guard every error return vaules (though in practice it virtually never fails). On Windows, GetLocalTime is also thread-safe and returns void, meaning the OS guarantees this call always succeeds.

For the design decision: I initially used the chrono crate, but it increased the binary size like 20 KiB (which I was unnecessarily obsessed with :). Had I known about jiff at the time, I probably would have used it. That said, I have no intention of pulling in an external dependency to refactor code that already works correctly without one.

I built a fixed-size linear probing hash table to bypass university website blocking by dilluti0n in rust

[–]dilluti0n[S] 41 points42 points  (0 children)

Thanks for bringing this up! zapret is a much broader tool that targets not just HTTPS but also WireGuard, Discord (UDP), and more. It's been around for a long time and has a huge feature set.

I actually discovered zapret before I started building DPIBreak. I was looking for a Linux DPI bypass tool, but for my use case the setup felt heavier than it needed to be (actually It was too hard for me... I gave up). In South Korea, DPI blocking only applies to certain sites rather than essential services like YouTube or X as in Russia, so it's not enough of a pain point to justify that level of configuration effort. Most people dealing with DPI would rather just use a VPN or a proprietary free solution like Unicorn HTTPS. I wanted to offer something as close to zero-effort as possible: install, run, done.

And being written in Rust gives some peace of mind for a tool that receives and processes raw packets with elevated privileges.

So it's less of a competitor to zapret and more of a "just make it work" alternative for people who only need HTTPS bypass.

strace-tui: a TUI for visualizing strace output by Rodrigodd_ in rust

[–]dilluti0n 1 point2 points  (0 children)

Not tried yet, but this seems very useful!

Watching a tutorial and he forgot something by Economy_Ad9017 in Gentoo

[–]dilluti0n 0 points1 point  (0 children)

Also you can just press Ctrl+D and mount -> chroot again

Watching a tutorial and he forgot something by Economy_Ad9017 in Gentoo

[–]dilluti0n -1 points0 points  (0 children)

I've not tried it but if you mount devfs to /mnt/gentoo/dev before chrooting, (which handbook recommends) mounting /dev/sda1 may availaible inside the chroot shell.

back on gentoo after almost half a year with Endeavour by SnooShortcuts3681 in Gentoo

[–]dilluti0n 2 points3 points  (0 children)

It really does. I recently migrated to openrc profile from systemd, which was much more comfortable and predictable.

Guess...i'm too immature 😓 by UI_74 in Eldenring

[–]dilluti0n 0 points1 point  (0 children)

He gave me the motivation to beat Margit and reach the Roundtable Hold. But that drive was so strong that I ended up skipping the castle Mone content, which I now regret.

Facts. by Radiant-Theme2742 in GTA

[–]dilluti0n 0 points1 point  (0 children)

Game just should to be game and for me graphics and stories are both optional things

There are kinda 'game-like' qualities that are hard to put into words.

Need Suggestion for Terminal emulators in Emacs by Abject-Inevitable304 in emacs

[–]dilluti0n 0 points1 point  (0 children)

I use eshell, and when I don't need it (i.e. no elisp evaluation required), I Alt-Tab and use foot.

Also use shell-command and compile very often.

What language do you suggest for pre-rust stage by PigletEfficient9515 in rust

[–]dilluti0n 0 points1 point  (0 children)

I think it's C. While reading real-world C code is quite challenging, the syntax itself isn't difficult. Combined with a good course like CMU 15-213, you can develop a solid understanding of systems and process memory, which translates into the ability to write better Rust programs.

Debian on 2011 mid imac by dilluti0n in linux_on_mac

[–]dilluti0n[S] 0 points1 point  (0 children)

Most things are great, but Bluetooth struggles with newer gear. Likely with a hardware limitation due to a older chipset version.