

Ask HN: Rate my app: PNGSquash - meese_
http://github.com/msanders/PNGSquash

======
miles
After running PNGSquash on a directory containing 10 PNGs totaling 456KB
(which had already been optimized with pngcrush from the command line), it
shrunk them to 432KB using the smallest squash level. The processing time was
around 4m20s on a MacBook Pro with 3GB RAM.

A similar tool is ImageOptim <http://pornel.net/imageoptim/en> , an open souce
GUI for the following PNG / JPG optimizers: AdvPNG, OptiPNG, PngCrush,
JpegOptim, jpegtran, and optionally PNGOUT.

Just curious about PNGOUT - did you get permission to bundle it with your app?
Their license <http://www.advsys.net/ken/utils.htm#pngoutkziplicense> seems
pretty restrictive: "Redistributing, repackaging, or reusing the PNGOUT or
KZIP executable is prohibited without the express consent of Ardfry Imaging,
LLC, and a formal business agreement."

~~~
meese_
_The processing time was around 4m20s on a MacBook Pro with 3GB RAM._

Is this good or bad? One possible speedup I could use is to compress more than
one image at a time, although the progress indicator would probably have to
become asynchronous.

 _Just curious about PNGOUT - did you get permission to bundle it with your
app? Their license<http://www.advsys.net/ken/utils.htm#pngoutkziplicense>
seems pretty restrictive: "Redistributing, repackaging, or reusing the PNGOUT
or KZIP executable is prohibited without the express consent of Ardfry
Imaging, LLC, and a formal business agreement._

No I didn't, thanks for pointing this out. I'll remove it for now; didn't
realize their license had that restriction. That's pretty lame :\\.

~~~
weaksauce
Could you not take the ffmpegX route and have the people download the pngout
on their own? If they do not download it you can still make the program work
without pngout but for the people that want the smallest filesize they can
take the additional steps to download it and put it in the correct location.

Also, I think that having it finish quicker is >> correctly indicated
timeline.

~~~
derefr
Alternately, just pop up a confirmation dialog stating "I hereby confirm that
I am requesting of my own volition to download PNGOUT to aid the functionality
of this program," and then download it automatically.

~~~
fatdog789
The license clearly specifies that "reusing" is itself not allowed without
permission, so that doesn't change anything...his program still uses pngout
without permission, and it's his (the programmmer's) use that is at issue
here, not the end user.

------
chaosmachine
Nice app. I use pngout from the command line, so this might save me some
typing.

Feature suggestion: Tell me which of the 4 compressors gave the best result.

Also, since the point of testing 4 png compressors is to get the smallest size
possible, why not use "smallest" as the default setting?

~~~
meese_
_Feature suggestion: Tell me which of the 4 compressors gave the best result._

This is a good idea, but I can't technically do this currently. The
compressors are run one after another (it's essentially like "pngcrush infile
outfile && optipng outfile && advpng outfile && pngout outfile"), so there is
no real "best result", it just gets a bit smaller each time.

 _Also, since the point of testing 4 png compressors is to get the smallest
size possible, why not use "smallest" as the default setting?_

That's a good point, I've just committed the change :)

Thanks for the suggestions!

~~~
fhars
Have you tested that the sequence is optimal? What if pngcrush changes the
image in a way that will make on of the later steps miss it's most promising
optimization? Oh the joys of combinatorial explosion...

------
mcastner
I compared ImageOptim and PNGSquash and PNGSquash made both files about 4KB
smaller than ImageOptim did, both were using the highest optimization settings
for smallest file size. I had PNGOUT installed too.

I like PNGSquash and I think I'll use it to optimize all my images. The only
features I'd like included that ImageOptim does have are the ability to drag a
folder into the window, so I don't have to pick out the pngs from a project
I'm working on, and an auto-updater. Growl support would be nice as well.

For an auto-updater framework I like Sparkle a lot:
<http://sparkle.andymatuschak.org/>

Also, I agree with weaksauce's comment, you could just have the user download
and install pngout separately, just tell them to drag it to /usr/bin and look
in that folder for it, that's the usual location for it anyways. ImageOptim
does this already.

------
ido
Can we get something that works on linux or windows?

Although I guess I can just chain the 4 compressors myself on the command
line...

~~~
csytan
Try using the <http://smush.it/> web app.

~~~
chuboy
Give punypng a try as well... and make the world more puny.

<http://www.gracepointafterfive.com/punypng>

------
jasonkester
I'd love to, but I can't:

\- You linked me to a source control repository instead of a product page.

\- There's a download button, but it seems to want to give me source code.

\- reading comments here, it seems that the source is actually only compilable
on a Mac.

In short, you have not produced an App. Even if I wanted to use your product,
and had the right system to use it on, I couldn't.

If you want this to be software the people use, you'll need to register a
domain name and build a site for it. That site will need to describe what it
does (which, incidentally, your github description fails to do), and provide
me with a prominent Download button that links to an installer or at least an
executable.

Once you do that, please post it back here, and I'll be happy to give you
feedback.

~~~
miles
_You linked me to a source control repository instead of a product page._

Have you never downloaded apps from SourceForge, Google Code, GitHub, etc?
It's really not that unusual or difficult.

 _There's a download button, but it seems to want to give me source code._

No, the download button gives you PNGSquash.tar.gz, which contains
PNGSquash.app, the application, not source code. Since you are opening it on
an operating system other than OS X, it opens like a directory when double
clicked. <http://en.wikipedia.org/wiki/APP_(file_format)>

_reading comments here, it seems that the source is actually only compilable
on a Mac._

Yes, it is a Mac app - at the top of the page it says "Description: A PNG
compressor app for OS X." And no, it does not require compiling if you
download the binary (the huge "Download" link next to the logo).

 _In short, you have not produced an App._

Yes he has. Witness all of the comments from folks who have used it.

 _Even if I wanted to use your product, and had the right system to use it on,
I couldn't._

You could learn to do it in a few seconds:
[http://guides.macrumors.com/Installing_Applications_in_Mac_O...](http://guides.macrumors.com/Installing_Applications_in_Mac_OS_X#Application_Bundles)

 _That site will need to describe what it does (which, incidentally, your
github description fails to do)_

Again, at the very top of the page: "Description: A PNG compressor app for OS
X."

 _provide me with a prominent Download button that links to an installer or at
least an executable._

That is already the case.

~~~
jasonkester
Try not to blame the messenger. He asked to have his application reviewed, so
I reviewed it. That was my customer experience trying to download and install
his product.

Here, for a counterexample, is the homepage for a different open source
software product:

[http://www.mozilla.com/en-
US/firefox/firefox.html?from=getfi...](http://www.mozilla.com/en-
US/firefox/firefox.html?from=getfirefox)

You'll notice some key differences. That page describes exactly what the
software does and how it will benefit me as a user. It includes a prominent
link to an installer right off the page.

That's what the public face of a software product should look like. That's the
message I was trying to convey to the original poster. Dropping potential
users off at Github is a dead-end for most of them. An explanation as to why
can be found here:

[http://www.kalzumeus.com/2009/03/07/how-to-successfully-
comp...](http://www.kalzumeus.com/2009/03/07/how-to-successfully-compete-with-
open-source-software/)

