HNHacker News
TopNewBestAskShowJobs

ValdikSS

1,446 karma · joined December 29, 2014

submissionscomments
ValdikSS··on The lost joy of music piracy
There's Android client as well: https://play.google.com/store/apps/details?id=com.companynam...
ValdikSS··on The lost joy of music piracy

    - https://dieordiy2.blogspot.com/
    - https://dustedmagazine.tumblr.com/
    - Last.FM Recommendations based on your bands
    - Mixtapes and radio mixes, there are countless
ValdikSS··on The lost joy of music piracy
Yes, that's true, but the core reason there are private p2p sites is because you're most likely to get a DMCA violation letter from the watchdog company via your ISP or to you directly in the West.

Even if it may be not a punishable offense, that still freaks out people, and they choose not to seed from home or use public websites which are scraped by DMCA watchdogs.

I don't see much point in contributing to closed silos (even if I'm present on the majority of invite-only music trackers and occasionally contribute there) because I have ThePirateBay and RuTracker account: it's the same, but it's open for everyone and google-able.

Some private trackers disallow accessing them via VPN, which I find super strange. They want to access the website with your residential connection, but they allow seeding via VPN (which many do, because see above).

Other private tracker which I used to be on had a timeout on account life time. If you don't log in once in a while (6 months AFAIR), your account will be suspended, even if you're seeding all the content in the torrent client all this time.

ValdikSS··on The lost joy of music piracy
Public p2p sharing is pretty much dead in the West.

Only Russian Rutracker is still going strong, but everything other is either stagnating or defunct.

I have a p2p sharing websites bookmarks which I collected about 5 years ago, 60% of them are dead now.

Private (invite-only) West sharing websites are still alive though, but are supported mostly by beefy enthusiasts who seed everything via a seedbox elsewhere, not in their home country on their residential connection.

Rutracker went the other way: they organized donation collection to buy the HDDs to the 'saviours' group, a one-time investment compared to the datacenter server cost. In RU/UA, people usually seed from home.

ValdikSS··on Briar is in maintenance mode
Do you use VPN? This is a common misconfiguration of a server-side NAT related to too long or too short NAT timeouts combined with "act like a blackhole if we don't know anything about this connection".
ValdikSS··on An update on residential proxies and the scraper situation
My forum got scraped so hard that the ISP blackholed the IPv4 several times a week.

I've ended up putting only IPv6 on the domain. It's running this way for 2 years already.

ValdikSS··on X402, a static blog monetization excercise
>Nothing discernible happens. No errors or network activity in the dev tools.

I guess it expects any 'WEB3' browser extension to be installed. Anything that supports Ethereum should work: Metamask, Enkrypt, Rainbow, …

ValdikSS··on X402, a static blog monetization excercise
I did not get it how it could be used for a _static blog_.

>…the paywall fetches the content behind the scenes, and since our response is JSON rather than HTML it has nothing to render in place, so it navigates to an in-memory object URL created from the response. The protocol itself is pay per use, so every time you hit an API - you will be charged.

So it can't be used to 'unlock' a paid article forever? You can only read it once, and if you closed the tab, you need to pay again?

ValdikSS··on OpenPrinter
Just buy used from this list

https://notes.valdikss.org.ru/printers/#Cheap%20used%20laser...

ValdikSS··on OpenPrinter
Several Chinese companies have their own domestic laser printers, claiming of in-house components and development (Cumtenn, ZoneWin), and one company does inkjet printers in addition to lasers (Deli Printer).

https://www.delioa.com/products/a4-inkjet-printer/

ZoneWin, a laser printer company, made a clone of both HP LaserJet 1020 and LaserJet M1005, which reuse most of the original/compatible parts (Q2612A cartridge). They claim it's 100% domestic parts only.

https://www.rtmworld.com/news/new-chinese-made-printer-uses-...

ValdikSS··on PostgreSQL and the OOM killer: Why we use strict memory overcommit
My guess would be: it's because memory management before MGLRU was really not good and required different userspace solutions and tinkering. You either get killed with OOM (no swap) or got into thrashing (swap).

And now, with PSI + MGLRU, situation is much better, but there are still missing features/subsystems which would be nice to have. For example there's no simple way to lock memory mlockall-style to ensure that rarely used daemon would not face long no-cache-latency upon accessing the first time after long idle time.

ValdikSS··on IsChinaByEmoji – A way for browser to detect if a user is from China

    - /** Determine if the current device is from mainland China using Emojis
    - * If the *Taiwan flag* characters cannot be displayed in color (rendered as black and white letters or not rendered at all), it indicates a device more likely to be from mainland China.
    - * To avoid false positives, *smiley face* will be used as a comparison:
    - * If the device cannot even render regular Emojis in color (such as Linux without colored Emoji fonts,
    - * a browser with fingerprint protection enabled), it returns null to indicate that it cannot determine the source, rather than falsely reporting true. */
ValdikSS··on Why Switzerland has 25 gbit internet and America doesn't
You know the author has a fast internet connection when the photos are 6 MB PNG each.
ValdikSS··on How to ask for help from people who don't know you
Many have different definition of 'help' where they expect the job to be done for them, and not just a help in a form of advice.

That's flaweed though.

ValdikSS··on Show HN: A lightweight CLI tool to track and purge temporary packages in Linux
Oh, for a several sessions? Yes, this sounds useful.

I usually just switch to systemd-nspawn --ephemeral containers derived from my host rootfs for such cases, not to pollute the rootfs at all.

ValdikSS··on Show HN: A lightweight CLI tool to track and purge temporary packages in Linux
>A few hours later:

>You don't remember what you installed.

There's no such issue with dnf, it has `dnf history` which, well, does what your utility do.

See what you've installed with `dnf history info ...`, undo with `dnf history undo ...`.

ValdikSS··on How We Made IPFS Content Publishing 10x Faster
1. IPFS has addressable content

The main drawback of BitTorrent v1 file hashing scheme inside the .torrent file is that it makes a virtual stream of the directory you want to share, splits that stream into blocks, and hash it altogether. That means that each file inside the torrent is unique, even if your directory have very common files, each is which exist in BitTorrent network per se.

IPFS solves this issue by just hashing the contents of the file. The "directory" of the files is a list of each individual file. If somebody has created a directory of 100 mp3 files and you happen to have one of it and added it into your IPFS daemon, you will be serving this file even if you've downloaded it from elsewhere (not from this "directory").

2. IPFS has both immutable and mutable files and directories

In BitTorrent, if you want to update your torrent file (in Russian we use «раздача» (bittorrent "upload"/"seeding"), a very precise word for bittorrent which doesn't have direct equivalent in English, so I'll stick to "torrent file), all the swarm needs to be switched to the updated version due to #1.

This means you have split swarm: the majority of people still seed the old version of torrent, and the minority seed the new version. Because of non-content addressation, all the old, already exising files in new .torrent file are treated as "new", and the old swarm can't seed them.

In IPFS, you can either create new immutable directory with all the old files and 1 new file, and all the old files would be seeded by the existing peers, or you can create mutable directory, and you can just modify it to your like without the need to update the link.

---

Both of these issues are solved in BitTorrent v2 more or less, but it's still not very popular, even if the specification is from 2017.

IPFS however is much more featureful than that. It allows to build decentralized distributed (serverless) websites and services, with user data and such.

There used to be a ZeroNet project which directly aimed at decentralized distributed web services, and is was very cool, there were many blogs, forums, boards. It all could be implemented in IPFS, but I saw only very simple text editors over IPFS and such, much simpler applications than it was in ZeroNet.

BitTorrent had their own version of distributed websites, Maelstrom: https://www.ctrl.blog/entry/bittorrent-maelstrom.html

ValdikSS··on How We Made IPFS Content Publishing 10x Faster
IPFS (at least initially) was designed to be a BitTorrent replacement, a new version of it, which you can use not only with a special software, but also via HTTP and also directly inside the browser.

It basically works as BitTorrent, but also provides HTTP access to the files.

In fact, many pirate websites use IPFS in one way or another (either directly, by serving the downloads over one of the public gateway, or indirectly, for internal needs).

ValdikSS··on How We Made IPFS Content Publishing 10x Faster
Also used it several times for almost-live video broadcasts, served over cloudflare ipfs gateway while it was working.

It used HLS with .ts files, in a special way which circumvented cloudflare protection against .mp4 and .ts files, or something along the lines. Don't remember the details, but it was a cheap way to deliver your stream to any video player using standard protocols only.

ValdikSS··on How We Made IPFS Content Publishing 10x Faster
I use it for about 5 years, to publish javascript file (proxy auto-configuration) and serve the contents over different gateways.

It is a huge server traffic saver.

Used to use it to host different static websites on custom domains while Cloudflare's gateway was working, stopped using it for this purpose since its sunset in 2024.

Neocities used to publish their websites over IPFS, this feature got broken (for years) and finally got removed: https://github.com/neocities/neocities/issues/352

ValdikSS··on A native graphical shell for SSH
The interface design reminded me of yunohost a bit.
ValdikSS··on 1-Bit Pixel Art Emojis
If anyone interested in experimenting with dithering/halftoning algorithms in postscript, take a look at https://printserver.ink/blog/ghostscript-halftone/

You can implement it in PostScript, and there are many examples (with the PostScript code) in PDF specification (pages 303-307): https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/p...

ValdikSS··on Old Computer Challenge
OLPC (one laptop per child) had Open Firmware, a Forth bootloader/firmware

https://lwn.net/Articles/209301/

ValdikSS··on Linux on Older Hardware: The Complete Revival Guide
See my comment above.
ValdikSS··on Linux on Older Hardware: The Complete Revival Guide
For HDD, it also needs to be tuned. In its default configuration, MGLRU 'just' manages multiple generations of working sets, but there's a min_ttl_ms tunable which tries hard to prevent file cache from being reclaimed, which is not enabled by default.

https://docs.kernel.org/admin-guide/mm/multigen_lru.html#thr...

You'd want to set it to 300 or 500, or even 1000 for the HDDs. Around 100-200 for SSDs/EMMCs helps as well.

And for anonymous pages swapping, you'd want to do that on zram (compressed swap in RAM). It also make wonders. You don't want to touch the (old) disk for that.

Here's my old article (before MGLRU): https://notes.valdikss.org.ru/linux-for-old-pc-from-2007/en/

ValdikSS··on Linux on Older Hardware: The Complete Revival Guide
And not a word about MGLRU and its settings. It has the biggest impact on performance on lower-end PCs, especially with low amount of RAM and slow HDD.

Here's a post from "le9" patch user which was created by ChromeOS developers much before MGLRU, but exploits the similar idea: keeping the essential file cache in RAM for as long as possible. It's usually night and day on low-end machines.

    - https://www.phoronix.com/forums/forum/software/general-linux-open-source/1267300-le9-strives-to-make-linux-very-usable-on-systems-with-small-amounts-of-ram?p=1267789#post1267789
    - https://www.phoronix.com/forums/forum/software/general-linux-open-source/1267300-le9-strives-to-make-linux-very-usable-on-systems-with-small-amounts-of-ram?p=1268100#post1268100
ValdikSS··on Libre Barcode Project

    - https://fuglede.github.io/llama.ttf/
    - https://github.com/bjia56/translate.ttf
    - https://github.com/hsfzxjy/handwriter.ttf
Harfbuzz now has WASM interpreter for a shaper. You can make pretty much arbitrary programs in fonts now.

https://www.youtube.com/watch?v=Ms1Drb9Vw9M

ValdikSS··on Libre Barcode Project
In the dark ages, when printers were PostScript and more powerful (and expensive) than the computers which printed on them, you added fonts by installing additional hardware modules, similar to a game console cartridge.
ValdikSS··on Is it time for a new Embedded Linux build system?
It is not exactly well documented, dpkg-buildpackage (debhelper) has cross-compilation wrappers for autoconf, cmake, qmake, meson, ninja, ant, perl/python, maven, gradle, bmake, golang, probably others.

Here'a s quick start for a C++ application compilation with libncurses6 and libtinfo6 dependencies as an example. `apt build-dep` will install armhf library dependencies and native other build dependencies.

    # Adding armhf architecture support to existing system
    dpkg --add-architecture armhf
    apt update
    # Installing cross-compiler for armhf
    apt install crossbuild-essential-armhf

    mkdir nload; cd nload
    apt source nload
    cd nload-0.7.4

    # Download build dependencies for nload package, for armhf
    apt build-dep -aarmhf nload
    apt install libstdc++6:armhf # build-dep misses this one

    # Cross-compiling for armhf, get .deb package for armhf
    dpkg-buildpackage -a armhf -Pcross
That's it. You get nload_0.7.4-2_armhf.deb without the need to compile libtinfo6, libncurses6 armhf first.

Here's all manual process which involves tinkering with your running system, but there are 'proper' compilation tools like sbuild which bootstrap the (container) OS, configure it for cross-compiling, and do all the required steps from a clear start, with just a `sbuild --host=armhf` call more or less.

ValdikSS··on PR spam today looks like email spam in the early 2000s
They do, that's a relatively recent feature: https://docs.github.com/en/repositories/managing-your-reposi...
← PreviousPage 5 of 14Next →