• 259 Posts
  • 361 Comments
Joined 2 years ago
cake
Cake day: July 1st, 2024

help-circle




  • Thanks! I did not realize there were different compression levels. So I discovered optipng. If I scan to PBM, that can be fed into optipng set for max compression:

    $ convert sample_scan.pbm sample_IM.png; # ImageMagick for comparison
    $ optipng -out sample_optipng_default.png sample_scan.pbm; # run with defaults (moderate effort, -o2)
    $ optipng --strip all -o7 -out sample_optipng_min.png sample_scan.pbm; # max effort (smallest result)
    $ pdfjam --a4paper -o sample_optipng_min.pdf sample_optipng_min.png
    $ cjb2 -lossless sample_scan.pbm sample_lossless.djvu; # DjVu for comparison
    $ du -h …
    24K     sample_lossless.djvu
    68K     sample_optipng_min.png
    68K     sample_optipng_default.png
    72K     sample_optipng_min.pdf
    80K     sample_IM.png
    

    The tightest PNG compression w/metadata stripped (or even just the optipng default) is much smaller than ImageMagick’s output. The PDF produced by pdfjam is bigger than the png it contains (rightfully so). So I’m pleased with this. I’ll replace ImageMagic with optipng. And if a scanned doc is just 1 page, I won’t even bother with pdfjam and just keep the png.

    I thought PNG was inherently lossless but the pngquant tool proves there is a lossy compression algo. Although I suppose anything can be lossy with image processing done independently. I did not fiddle with pngquant because it seems to only be relevant to color reduction, which makes no sense on a bitonal image.

    DjVu is a clear winner. ⅓ the size and still lossless. But there is no LaTeX pkg for DjVu so the smaller size obviously comes with a big trade off. But then we must consider that a DjVu file can be directly converted to PDF (LaTeX importable) using ddjvu. So we have:

    $ ddjvu -format=pdf -quality=150 sample_lossless.djvu sample_ddjvu_lossless.pdf; # 150→highest possible quality
    $ pdfimages -all sample_ddjvu_lossless.pdf innards; # because we want to see what’s inside that thing
    $ du -h …
    24K     sample_lossless.djvu
    44K     sample_ddjvu_lossless.pdf
    44K     innards-000.ccitt
    4.0K    innards-000.params
    
    $ cat innards-000.params; # to get an idea of what the CCITT is (fax or whatever)
    -4 -P -X 2464 -B -M
    

    The PDF size (from DjVu) is still smaller than the smallest PNG. And we can see that ddjvu did not do anything foolish like stuff a jpg in the PDF. It’s not fun to work with CCITT files, but I suppose that would be rare. In the end, DjVu seems like a winner for archiving because ddjvu can always make a PDF that is still smaller than a PNG, and LaTeX can work with that.




  • The bugs host and the reportbugs host would have to be considered separately. The bugs host is strictly for viewing text, just like the other onion hosts. The reportbugs host could be abused, but because the Debian project is non-transparent, makes no announcement, we can only guess what’s going on when they silently take a spontaneous action. Only after they express what action they took, and why, can we analyze whether it was sensible and how to move forward. Certainly it would be possible to deploy an onion host that accepts bug reports, and then put the traffic through an appropriate process, such as spamassassin scoring.




  • Banning an account means his whole content is deleted (that’s how it was done since the 90s)

    Lemmy did not exist in the 90s. When a usenet account or email account ceased to exist for any reason, the content on news servers and mailing lists was separate. Software can be crudely designed (web-based in particular), or it can be well designed.

    Saying “(that’s how it was done since the 90s)” implies a conventional wisdom fallacy. It’s irrelevent how it was done in whatever span of time. Tech was often designed better before the 90s. Advancements are obviously made but I see design approaches worsening.

    Most importantly, the tool /can/ be smarter. A good tool might remove all content as a starting point, then a spamassassin-like process could run that works out likely ham, which could then be either reinstated or flagged for human review, depending on resource constraints (both human and machine). A blunt remove all is important to have but crude and reckless if it’s the only option.

    Spammers do write some random content to pretend they are not bots, again a fact.

    And? Intent doesn’t matter. The end game is still about separating spam from ham. Your claim just supports the view that there is some ham to save.





  • Could you please cite your source?

    It’s wholly anecdote from decades of experience. AFAIK, there have been no peer reviewed scientific studies about this. But there should be. It would be interesting to research why it is that testers and bug report contributors are generally widely regarded as needy and demanding of favors. That’s not Debian specific. It’s FOSS wide.

    The public perception is that devs are the sole contributors and testers are perceived as tasking the devs for their own personal gain. It impacts software quality because I often encounter bug reports that are very old when searching for prior reports of bugs I discover.

    A project that effectively promotes good quality makes it very easy to submit bug reports anonymously, without imposing much of an obsticle, so that bug submissions are not disouraged and so everyone has good awareness of the bug history. Debian has been good on this, which is why Debian is a relatively high-quality project. But they are slipping amid the fight against spam and bots.

    Where are they saying this?

    IRC

    Are they actually treating connections from Tor exit nodes or Torbrowser differently?

    Yes. It is no longer possible to submit bugs over Tor, and bugs.debian.org quietly drops packets if the user’s user agent is not what they want.















  • I don’t even have Internet at home. I use it in public spaces. There are moments when I had a quasi permanent connection but it was a measured rate service and I still would not keep an always-on machine anyway.

    power usage concerns can be mitigated by running irc on an old phone.

    Interesting thought but I suppose during moments when I have a somewhat persistent uplink, I might rather try to run ZNC on an openwrt router, assuming that’s possible.

    But I must also say the question is not just about me. It’s for a club and that club meets in an IRC chat room. It would not be ideal to impose on all members of the club a need to have a persistent uplink and an always-on machine. The club should establish itself on a server that supports chathistory and MemoServ so that every member can be accommodated.


  • Could work but seems dicey. A nick need not be registered to use IRC. Although the chathistory spec says it’s possible to get msg history for a nick, it makes no mention of nick registration. IIRC, users can use someone else’s registered nick while they are offline, no? So either it opens the door to users grabbing the DMs of others or the spec is an incomplete spec.

    Even if that’s sorted, the recipient must be aware of chathistory and then know to proactively run the command to check for msgs – IIUC. And some clients (like irssi) don’t even have the chathistory capability. I must send a quoted string to the server to use chathistory.

    Contrast that with MemoServ, where only the sender needs to know how to send msgs and the recipient can be oblivious. MemoServ only accepts msgs for registered nicks. The recipient signs on and automatically they get hailed and msgs delivered.

    So I probably want both. CHATHISTORY for getting a channel log and MemoServ for sending DMs with a degree of confidence that it will work.


  • I appreciate the tip. I connected to them in the past and did not realise they had a memoserv. ATM they seem offline, or at least their onion is. I do this:

    $ socat -T9999999 -s TCP4-LISTEN:16999,ignoreeof SOCKS4A:127.0.0.1:vrw7zcuarwx4oeju3iikiz3jffrvuijsysyznqf53mxizxrebomfnrid.onion:6667,socksport=9050,ignoreeof
    $ irssi
    

    Then I /connect to local port 16999 with notls_verify, and get:

    -!- Irssi: Looking up 127.0.0.1
    -!- Irssi: Connecting to 127.0.0.1 [127.0.0.1] port 16999
    Waiting for CAP LS response…
    -!- Irssi: Connection to 127.0.0.1 established
    -!- Irssi: Looking up 127.0.0.1
    -!- Irssi: Reconnecting to 127.0.0.1 [127.0.0.1] port 16999 - use /RMRECONNS to abort
    -!- Irssi: Unable to connect server 127.0.0.1 port 16999 [Connection refused]

    That used to work.

    (edit) it worked again for a moment, but it’s not reliable.