Live data from Hacker News

"I think you will all appreciate this person's commenting style"

jwz.livejournal.com

11–20 of 91 posts

Re: "I think you will all appreciate this person's commenting style"

#11
Whilst I enjoy jwz's writings, please follow the hacker news guidelines which can be found at http://ycombinator.com/newsguidelines.html

In particular: Please submit the original source. If a blog post reports on something they found on another site, submit the latter. The original source is https://code.google.com/p/xee/source/browse/XeePhotoshopLoad...

Also: Please use the original title, unless it is misleading or linkbait.

Re: "I think you will all appreciate this person's commenting style"

#12
post #11

Whilst I enjoy jwz's writings, please follow the hacker news guidelines which can be found at http://ycombinator.com/newsguidelines.html In particular: Please submit the original source. If a blog post reports on something they found on another site, submit the latter. The original source is https://code.google.com/p/xee/source/browse/XeePhotoshopLoad... Also: Please use the original title, unless it is misleading or…

In this case, I suspect jwz's commentary and re-post of it is as much "the story" as the rant in the original source.

Re: "I think you will all appreciate this person's commenting style"

#13
post #2

PSD was never intended to be a data interchange format: it is the serialization format of a single program that has more individual unrelated features that actual people rely on than almost any other piece of software and has maintained striking amounts of backwards compatibility and almost unbroken forwards compatibility during its over two decades of existence. This product's "file format" needs to be critiqued in…

This is true, but there are container formats just as old like .mov that are quite nice to work with. (While your still sniggering, keep in mind that .mov has a lot in common with MPEG4.) Whenever I need to write a binary serialization format, I usually copy .mov's tree of structs format, it's ridiculously fast, extensible, and keeps people away from C++ terrible stream operators/Java's BinaryReaderWhateverFactoryErr…

do you have a description of the ".mov tree of structs format"

Re: "I think you will all appreciate this person's commenting style"

#14

Earlier quoted context omitted.

This is true, but there are container formats just as old like .mov that are quite nice to work with. (While your still sniggering, keep in mind that .mov has a lot in common with MPEG4.) Whenever I need to write a binary serialization format, I usually copy .mov's tree of structs format, it's ridiculously fast, extensible, and keeps people away from C++ terrible stream operators/Java's BinaryReaderWhateverFactoryErr…

do you have a description of the ".mov tree of structs format"

Simple version (in pseudo-C): struct Atom { uint32 length; uchar type[4]; uchar data[length - 8]; };

The file is a single atom that has other atoms (and random parameters and such) in its data field. You end up with a big tree of atoms which can be parsed as needed. Super simple format -- like the parent, I use atom trees all the time for serialization.

Re: "I think you will all appreciate this person's commenting style"

#15
post #2

PSD was never intended to be a data interchange format: it is the serialization format of a single program that has more individual unrelated features that actual people rely on than almost any other piece of software and has maintained striking amounts of backwards compatibility and almost unbroken forwards compatibility during its over two decades of existence. This product's "file format" needs to be critiqued in…

Further points:

1) The specs are now much more publicly accessible than they used to be, and frankly the spec does a fairly reasonable job describing a tricky format relatively compactly. It requires a fair bit of knowledge of Photoshop to read and understand, but it’s mostly fairly explicit. Much better than many other proprietary document formats.

2) For someone with relatively extensive knowledge of photoshop, the format is fairly comprehensible, albeit complicated. The biggest part of the problem here is, as you say, that Photoshop just has a ton of features to support, so that becoming enough of a Photoshop expert to understand it all is a difficult undertaking by itself.

3) The code this comment is taken from only interacts with a small fraction of PSD features, and is frankly pretty awful code: hacky, ad-hoc, not modular at all, etc.

All that said, if someone was to redesign PSD format today, I’m sure it would be organized quite a bit differently, and would have much better re-use of a smaller number of features. (The same goes for Photoshop itself.)

Re: "I think you will all appreciate this person's commenting style"

#16

Earlier quoted context omitted.

This is true, but there are container formats just as old like .mov that are quite nice to work with. (While your still sniggering, keep in mind that .mov has a lot in common with MPEG4.) Whenever I need to write a binary serialization format, I usually copy .mov's tree of structs format, it's ridiculously fast, extensible, and keeps people away from C++ terrible stream operators/Java's BinaryReaderWhateverFactoryErr…

do you have a description of the ".mov tree of structs format"

Here you go: http://atomicparsley.sourceforge.net/mpeg-4files.html

Nearly everything inherits from a basic struct that is 8 bytes per atom: { length of self + children, quasi-human readable 4 char code describing contents }

Practically speaking, in C/C++, you can stride by length and switch() on the ftype, using it to cast the read-in data to whatever class/struct you desire.

All of this while being so brutally dumb that you can rewrite it over and over again in about 10 lines of code in most languages.

Re: "I think you will all appreciate this person's commenting style"

#17
post #11

Whilst I enjoy jwz's writings, please follow the hacker news guidelines which can be found at http://ycombinator.com/newsguidelines.html In particular: Please submit the original source. If a blog post reports on something they found on another site, submit the latter. The original source is https://code.google.com/p/xee/source/browse/XeePhotoshopLoad... Also: Please use the original title, unless it is misleading or…

Later on the list of guidelines:

"Don't abuse the text field in the submission form to add commentary to links. The text field is for starting discussions. If you're submitting a link, put it in the url field. If you want to add initial commentary on the link, write a blog post about it and submit that instead."

Re: "I think you will all appreciate this person's commenting style"

#19
post #17
post #11

Whilst I enjoy jwz's writings, please follow the hacker news guidelines which can be found at http://ycombinator.com/newsguidelines.html In particular: Please submit the original source. If a blog post reports on something they found on another site, submit the latter. The original source is https://code.google.com/p/xee/source/browse/XeePhotoshopLoad... Also: Please use the original title, unless it is misleading or…

Later on the list of guidelines: "Don't abuse the text field in the submission form to add commentary to links. The text field is for starting discussions. If you're submitting a link, put it in the url field. If you want to add initial commentary on the link, write a blog post about it and submit that instead."

[deleted]

Re: "I think you will all appreciate this person's commenting style"

#20
post #11

Whilst I enjoy jwz's writings, please follow the hacker news guidelines which can be found at http://ycombinator.com/newsguidelines.html In particular: Please submit the original source. If a blog post reports on something they found on another site, submit the latter. The original source is https://code.google.com/p/xee/source/browse/XeePhotoshopLoad... Also: Please use the original title, unless it is misleading or…

Hmm. Here's something else I found at those guidelines you linked, there:

> Please don't submit comments complaining that a submission is inappropriate for the site. If you think something is spam or offtopic, flag it by going to its page and clicking on the "flag" link. (Not all users will see this; there is a karma threshold.) If you flag something, please don't also comment that you did.

Post reply on HN