michaelknigge / pcldumper

Java command line tool (and library as well) for dumping PCL printer data streams
Apache License 2.0
15 stars 3 forks source link

Newbie user's perspective for improving user friendliness of this project #1

Open joonas-fi opened 7 years ago

joonas-fi commented 7 years ago

First off, thank you so much for creating and publishing this tool! I was tasked at analyzing why a legacy system's PCL output sometimes produces better output than my customer's new software.. your tool is a lifesaver at debugging PCL streams, because as you know, PCL looks like utter garbage. :)

"New eyes" perspective here.. A couple suggestions:

Release the fat JARs

While the internal "pclbox" library is aimed at people who can code in Java, the audience of this CLI tool should not be assumed to know how dependencies in Java are loaded. Thank you for realizing this by planning to publish the "fat JAR" archives - IMHO they should be the primary target of this CLI. However, they are not found from the download link.

Discoverability of the download link

I might just be a bit AD/HD, but I had a hard time finding the download link. My eyes saw the badges at the top of README, but as soon as read "build:passing, codecov:94 % ..." I skipped that section - I didn't think the download link would be there as a badge. I was expecting to find it from the rest of the readme or as a release in Github. :)

pclbox missing from dependencies

Since I didn't find the fat JAR, and didn't want to download Java SDKs, Gradle etc., I thought it's easier to try to learn how the dependencies are satisfied when running Java apps.

When initially running your app, I got a stack trace with class load error referring to Commons-IO I think.

My first instinct was to download the deps you mentioned (Commons-IO, Commons-CLI) and place the JARs in the same directory. That worked, because the class load error did not refer to Commons-IO anymore.

However, what got me baffled was that now the class load error referred to pclbox. It confused me because I associated pclbox with this pcldumper CLI and I thought that the dependencies should have been satisfied. I nearly gave up before I realized that maybe pclbox is another dependency not mentioned under the "Dependencies" heading. After navigating to pclbox repo's bintray and downloading the dep it started working.

It makes sense now to have pclbox as another dependency, but perhaps it should be mentioned also as a dependency, because I had a really hard time getting this tool to work because I haven't a single clue how Java apps are deployed. :)

michaelknigge commented 7 years ago

Hello,

thank you for your suggestions. I'm currently quite busy, but I appreciate your suggestions and I'll throw an eye on them.

Releasing the fatJar is on my to do list. I'm far away from being a gradle expert and in the past I wasn't able to write a gradle file that also uloads the fatJar ;-) But I'll do my very best.

Anyway, I have to work on pcldumper because it currently does not work with Java 9 (because the class javax.xml.bind.DatatypeConverter isn't accessible any more)....

So I guess in the next 2-3 weeks I'll release a new version of pcldumper and pclbox.

Bye, Michael