Thu Nov 21 23:25:52 2024
EVENTS
 FREE
SOFTWARE
INSTITUTE

POLITICS
JOBS
MEMBERS'
CORNER

MAILING
LIST

NYLXS Mailing Lists and Archives
NYLXS Members have a lot to say and share but we don't keep many secrets. Join the Hangout Mailing List and say your peice.

DATE 2018-08-01

HANGOUT

2024-11-21 | 2024-10-21 | 2024-09-21 | 2024-08-21 | 2024-07-21 | 2024-06-21 | 2024-05-21 | 2024-04-21 | 2024-03-21 | 2024-02-21 | 2024-01-21 | 2023-12-21 | 2023-11-21 | 2023-10-21 | 2023-09-21 | 2023-08-21 | 2023-07-21 | 2023-06-21 | 2023-05-21 | 2023-04-21 | 2023-03-21 | 2023-02-21 | 2023-01-21 | 2022-12-21 | 2022-11-21 | 2022-10-21 | 2022-09-21 | 2022-08-21 | 2022-07-21 | 2022-06-21 | 2022-05-21 | 2022-04-21 | 2022-03-21 | 2022-02-21 | 2022-01-21 | 2021-12-21 | 2021-11-21 | 2021-10-21 | 2021-09-21 | 2021-08-21 | 2021-07-21 | 2021-06-21 | 2021-05-21 | 2021-04-21 | 2021-03-21 | 2021-02-21 | 2021-01-21 | 2020-12-21 | 2020-11-21 | 2020-10-21 | 2020-09-21 | 2020-08-21 | 2020-07-21 | 2020-06-21 | 2020-05-21 | 2020-04-21 | 2020-03-21 | 2020-02-21 | 2020-01-21 | 2019-12-21 | 2019-11-21 | 2019-10-21 | 2019-09-21 | 2019-08-21 | 2019-07-21 | 2019-06-21 | 2019-05-21 | 2019-04-21 | 2019-03-21 | 2019-02-21 | 2019-01-21 | 2018-12-21 | 2018-11-21 | 2018-10-21 | 2018-09-21 | 2018-08-21 | 2018-07-21 | 2018-06-21 | 2018-05-21 | 2018-04-21 | 2018-03-21 | 2018-02-21 | 2018-01-21 | 2017-12-21 | 2017-11-21 | 2017-10-21 | 2017-09-21 | 2017-08-21 | 2017-07-21 | 2017-06-21 | 2017-05-21 | 2017-04-21 | 2017-03-21 | 2017-02-21 | 2017-01-21 | 2016-12-21 | 2016-11-21 | 2016-10-21 | 2016-09-21 | 2016-08-21 | 2016-07-21 | 2016-06-21 | 2016-05-21 | 2016-04-21 | 2016-03-21 | 2016-02-21 | 2016-01-21 | 2015-12-21 | 2015-11-21 | 2015-10-21 | 2015-09-21 | 2015-08-21 | 2015-07-21 | 2015-06-21 | 2015-05-21 | 2015-04-21 | 2015-03-21 | 2015-02-21 | 2015-01-21 | 2014-12-21 | 2014-11-21 | 2014-10-21 | 2014-09-21 | 2014-08-21 | 2014-07-21 | 2014-06-21 | 2014-05-21 | 2014-04-21 | 2014-03-21 | 2014-02-21 | 2014-01-21 | 2013-12-21 | 2013-11-21 | 2013-10-21 | 2013-09-21 | 2013-08-21 | 2013-07-21 | 2013-06-21 | 2013-05-21 | 2013-04-21 | 2013-03-21 | 2013-02-21 | 2013-01-21 | 2012-12-21 | 2012-11-21 | 2012-10-21 | 2012-09-21 | 2012-08-21 | 2012-07-21 | 2012-06-21 | 2012-05-21 | 2012-04-21 | 2012-03-21 | 2012-02-21 | 2012-01-21 | 2011-12-21 | 2011-11-21 | 2011-10-21 | 2011-09-21 | 2011-08-21 | 2011-07-21 | 2011-06-21 | 2011-05-21 | 2011-04-21 | 2011-03-21 | 2011-02-21 | 2011-01-21 | 2010-12-21 | 2010-11-21 | 2010-10-21 | 2010-09-21 | 2010-08-21 | 2010-07-21 | 2010-06-21 | 2010-05-21 | 2010-04-21 | 2010-03-21 | 2010-02-21 | 2010-01-21 | 2009-12-21 | 2009-11-21 | 2009-10-21 | 2009-09-21 | 2009-08-21 | 2009-07-21 | 2009-06-21 | 2009-05-21 | 2009-04-21 | 2009-03-21 | 2009-02-21 | 2009-01-21 | 2008-12-21 | 2008-11-21 | 2008-10-21 | 2008-09-21 | 2008-08-21 | 2008-07-21 | 2008-06-21 | 2008-05-21 | 2008-04-21 | 2008-03-21 | 2008-02-21 | 2008-01-21 | 2007-12-21 | 2007-11-21 | 2007-10-21 | 2007-09-21 | 2007-08-21 | 2007-07-21 | 2007-06-21 | 2007-05-21 | 2007-04-21 | 2007-03-21 | 2007-02-21 | 2007-01-21 | 2006-12-21 | 2006-11-21 | 2006-10-21 | 2006-09-21 | 2006-08-21 | 2006-07-21 | 2006-06-21 | 2006-05-21 | 2006-04-21 | 2006-03-21 | 2006-02-21 | 2006-01-21 | 2005-12-21 | 2005-11-21 | 2005-10-21 | 2005-09-21 | 2005-08-21 | 2005-07-21 | 2005-06-21 | 2005-05-21 | 2005-04-21 | 2005-03-21 | 2005-02-21 | 2005-01-21 | 2004-12-21 | 2004-11-21 | 2004-10-21 | 2004-09-21 | 2004-08-21 | 2004-07-21 | 2004-06-21 | 2004-05-21 | 2004-04-21 | 2004-03-21 | 2004-02-21 | 2004-01-21 | 2003-12-21 | 2003-11-21 | 2003-10-21 | 2003-09-21 | 2003-08-21 | 2003-07-21 | 2003-06-21 | 2003-05-21 | 2003-04-21 | 2003-03-21 | 2003-02-21 | 2003-01-21 | 2002-12-21 | 2002-11-21 | 2002-10-21 | 2002-09-21 | 2002-08-21 | 2002-07-21 | 2002-06-21 | 2002-05-21 | 2002-04-21 | 2002-03-21 | 2002-02-21 | 2002-01-21 | 2001-12-21 | 2001-11-21 | 2001-10-21 | 2001-09-21 | 2001-08-21 | 2001-07-21 | 2001-06-21 | 2001-05-21 | 2001-04-21 | 2001-03-21 | 2001-02-21 | 2001-01-21 | 2000-12-21 | 2000-11-21 | 2000-10-21 | 2000-09-21 | 2000-08-21 | 2000-07-21 | 2000-06-21 | 2000-05-21 | 2000-04-21 | 2000-03-21 | 2000-02-21 | 2000-01-21 | 1999-12-21

Key: Value:

Key: Value:

MESSAGE
DATE 2018-08-01
FROM Cosmin Truta
SUBJECT Re: [Hangout - NYLXS] [png-mng-implement] Why is it that png files
Hello, Ruben,

I'm sorry for your bad experience. Here is what happened:

Ruben Safir wrote:
> http://www.mrbrklyn.com/brooklyn/images/wall_art_river_and_metropolitian_avenue_williamsburg_2006_00578.png
> http://www.mrbrklyn.com/brooklyn/images/ornimental_building_kent_st_2006_00557.png
> [...]
> IDAT: invalid distance too far back

Both of these PNG files are broken, most likely produced by a faulty
encoder. In a few days, I hope to provide you with a special build of
OptiPNG to fix them, which I may later continue to implement into a
proper OptiPNG recovery feature.

It is also important to mention that the libpng is correct. Some
applications (like Gimp) refuse to load the images, others (like
Chrome) shows them just fine. They're all correct, in spite of their
differences. As odd as it may seem.

Here is why:

It's not even a PNG problem, but a problem in the zlib-compressed
datastream (RFC-1950), which the PNG format is enclosing. See the
message: "invalid distance too far back" is an error produced by the
zlib implementation. (Again: not by libpng.) Admittedly, not
user-friendly, and yet, perhaps frustratingly, entirely correct.

The PNG specification (and zlib, and deflate, etc.) have strict rules
for error detection, but no rules for error recovery. The same is true
about JPEG, GIF, TIFF, and maybe any other image codec out there, for
all I know. Error recovery is up to the PNG-supporting applications,
it's entirely their freedom. A web browser may choose to set up the
zlib decoder in a way that allows faulty zlib datastreams to be
silently accepted, because the implementors of that web browser may
consider it a useful behaviour for their users. Conversely, an image
converter may choose to detect those errors, because the implementors
of that converter may consider a useful behaviour to let the users
know if something is wrong in the image file. The libpng
implementation is set up, by default, to be strict, and, as a
consequence, implementations that do not override that setting will
fail with your images.

And then, there is a third category: applications like OptiPNG,
specifically designed to both signal the errors, and to recover from
them. It is impossible, in general, to know how to recover from every
conceivable kind of error. But for your specific case, the recovery is
obvious. Not easy to implement (which is why common applications don't
currently do it), but easy to understand, at least from a "historical"
point of view.

The explanation is as follows:

Long ago (more than 10 years ago, IIRC around the year 2004), there
was a bug in the libpng encoder that existed for a short period of
time, that produced zlib streams with an incorrect window size. By
incorrect, I mean smaller than they should be. They can be larger than
they should, that's ok; but smaller, that's not ok. Your images have a
small window size, so they are not ok. The pngcheck program indicates
an 8KB window, when in fact it should be 32KB.

The recovery consists in making the 32KB window, always, because that
is the maximum, then decode, and re-encode. That's easy to do. Also
easy to explain: use a larger array, problem solved.

But then you have a problem with spec compliance. You may now have
out-of-spec images (like yours), without knowing that they're
out-of-spec, because your larger zlib deflate window accepted them.
Who knows that's not data corruption, or some other evil attack? Well,
we know: we had a bug, long ago, which was fixed, also long ago, but a
few unlucky users ended up with corrupted images that need fixing.

Now: in order to fix, first you need to know the need to fix. In order
to know the need to fix, you need the original zlib window size, which
should cause the zlib error. You should recognize this zlib error, in
order to know what to recover. (The zlib API does not make this task
easy, which is unfortunate.) Then, in order to recover, you need to
rewind your zlib stream (or even the entire PNG stream), then grow the
zlib window size to the maximum 32KB, and then restart the decoder.
Then decode, then re-encode... Fixed!

This is doable, but tedious, and simple libpng-based applications are
neither required to do it, not customarily designed/implemented to do
it.

I encourage you to file an OptiPNG feature request for this sort of
error recovery.
https://sourceforge.net/p/optipng/feature-requests/

Sincerely,
Cosmin

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
png-mng-implement mailing list
png-mng-implement-at-lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
_______________________________________________
Hangout mailing list
Hangout-at-nylxs.com
http://lists.mrbrklyn.com/mailman/listinfo/hangout

  1. 2018-08-01 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] [ruben-at-www2.mrbrklyn.com: Why is it that png
  2. 2018-08-01 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [conspire] PNG troubles
  3. 2018-08-01 From: "Free Software Foundation" <info-at-fsf.org> Subject: [Hangout - NYLXS] Free Software Supporter Issue 124, August 2018
  4. 2018-08-01 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Firefox rebellion
  5. 2018-08-01 Cosmin Truta <ctruta-at-gmail.com> Re: [Hangout - NYLXS] [png-mng-implement] Why is it that png files
  6. 2018-08-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] In casew your interested - fish is very hot
  7. 2018-08-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Stop the Hollywood's greedy grad of copyrighted
  8. 2018-08-02 ruben safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Fwd: Re: Systemd is the best reason to run
  9. 2018-08-02 ruben safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Fwd: Re: Slackware's future
  10. 2018-08-02 ruben safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Fwd: Slackware's future
  11. 2018-08-03 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Things on the internet worth preserving
  12. 2018-08-06 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Fwd: Re: [png-mng-implement] Why is it that png
  13. 2018-08-06 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] [Perlweekly] #367 - 7 years, 6 editors, 367 issues,
  14. 2018-08-06 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] VIM articles
  15. 2018-08-08 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Hangout - NYLXS] Researcher and the Stack Exchange
  16. 2018-08-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] The return of the Non-systemd user - use the
  17. 2018-08-06 Congresswoman Yvette Clarke <info-at-ny09yc.congressnewsletter.net> Subject: [Hangout - NYLXS] May I share some news with you?
  18. 2018-08-10 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] this weekend until Sunday only - Yellow
  19. 2018-08-06 From: "Free Software Foundation" <info-at-fsf.org> Subject: [Hangout - NYLXS] Respects Your Freedom certification program
  20. 2018-08-12 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] 60 minutes is investigating the Subway and they
  21. 2018-08-14 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] AI in healthcare meeting
  22. 2018-08-14 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Hangout - NYLXS] Admin work for NYC
  23. 2018-08-13 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #368 - The Perl Conference in Glasgow
  24. 2018-08-14 From: "IEEE The Institute Alert" <reply-at-media.ieee.org> Subject: [Hangout - NYLXS] Parents of Generation Alpha Say They Trust AI to
  25. 2018-08-14 Ruben Safir <mrbrklyn-at-panix.com> Re: [Hangout - NYLXS] Linux engineer
  26. 2018-08-16 From: "IEEE Spectrum Tech Alert" <reply-at-media.ieee.org> Subject: [Hangout - NYLXS] Engineers Say "No Thanks" to Silicon Valley
  27. 2018-08-18 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] you won't believe your eyes
  28. 2018-08-19 From: "Ruben.Safir" <ruben.safir-at-my.liu.edu> Subject: [Hangout - NYLXS] Socialism succeeds again
  29. 2018-08-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Living history
  30. 2018-08-20 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #369 - Twiki - LCplot - Perl Conf
  31. 2018-08-20 From: "Deutsch, Chaim" <CDeutsch-at-council.nyc.gov> Subject: [Hangout - NYLXS] THE DEUTSCH REPORT: News From Councilmember Chaim
  32. 2018-08-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Nothing like a kill switch
  33. 2018-08-23 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] encryption fails to protect Cohen - and why this
  34. 2018-08-26 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #370 - TPCiG - Sweet Memory
  35. 2018-08-23 From: "American Museum of Natural History" <learn-at-amnh.org> Subject: [Hangout - NYLXS] There's Still Time to Register for Fall Session 1!
  36. 2018-08-23 From: "IEEE Spectrum Tech Alert" <reply-at-media.ieee.org> Subject: [Hangout - NYLXS] A Twist in Graphene Could Make for Tunable
  37. 2018-08-27 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Microkernel and Security
  38. 2018-08-27 Ruben Safir <mrbrklyn-at-panix.com> Re: [Hangout - NYLXS] Microkernel and Security
  39. 2018-08-27 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Selling your privacy - Federal lobbying
  40. 2018-08-27 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Look the Timesfound some real news to publish --
  41. 2018-08-27 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Hangout - NYLXS] Key NYC Truck route might collapse - the BQE
  42. 2018-08-27 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] NYC to become a tolled city for the MTA
  43. 2018-08-27 Ruben Safir <ruben.safir-at-my.liu.edu> Subject: [Hangout - NYLXS] Fwd: Introduction to Python for deep-learning --
  44. 2018-08-28 From: "Donald Robertson, III, FSF" <licensing-at-fsf.org> Subject: [Hangout - NYLXS] Sign up for the FSF's next seminar on GPL
  45. 2018-08-30 IEEE Engineering in Medicine and Biology Society <noreply-at-embs.org> Subject: [Hangout - NYLXS] IEEE Micro and Nanotechnology in Medicine

NYLXS are Do'ers and the first step of Doing is Joining! Join NYLXS and make a difference in your community today!