this post was submitted on 22 Jan 2024
74 points (96.2% liked)

Programming Horror

239 readers
16 users here now

Welcome to Programming Horror!

This is a place to share strange or terrible code you come across.

For more general memes about programming there's also Programmer Humor.

Looking for mods. If youre interested in moderating the community feel free to dm @[email protected]

Rules

Credits

founded 1 year ago
MODERATORS
74
submitted 9 months ago* (last edited 9 months ago) by blotz to c/[email protected]
 
// At this point, I'd like to take a moment to speak to you about the Adobe PSD 
// PSD is not a good format. PSD is not even a bad format. Calling it such would be an
// insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having
// worked on this code for several weeks now, my hate for PSD has grown to a raging fire
// that burns with the fierce passion of a million suns.
// If there are two different ways of doing something, PSD will do both, in different
// places. It will then make up three more ways no sane human would think of, and do those
// too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide
// that *these* particular chunks should be aligned to four bytes, and that this alignement
// should *not* be included in the size? Other chunks in other places are either unaligned,
// or aligned with the alignment included in the size. Here, though, it is not included.
// Either one of these three behaviours would be fine. A sane format would pick one. PSD,
// of course, uses all three, and more.
// Trying to get data out of a PSD file is like trying to find something in the attic of
// your eccentric old uncle who died in a freak freshwater shark attack on his 58th
// birthday. That last detail may not be important for the purposes of the simile, but
// at this point I am spending a lot of time imagining amusing fates for the people
// responsible for this Rube Goldberg of a file format.
// Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this,
// I had to apply to them for permission to apply to them to have them consider sending
// me this sacred tome. This would have involved faxing them a copy of some document or
// other, probably signed in blood. I can only imagine that they make this process so
// difficult because they are intensely ashamed of having created this abomination. I
// was naturally not gullible enough to go through with this procedure, but if I had done
// so, I would have printed out every single page of the spec, and set them all on fire.
// Were it within my power, I would gather every single copy of those specs, and launch
// them on a spaceship directly into the sun.
//
// PSD is not my favourite file format.
all 5 comments
sorted by: hot top controversial new old
[–] [email protected] 18 points 9 months ago (1 children)

When they say writing code comments is important this is what they mean. This is how we programmers pass on important life lessons that save the next dev weeks of heart pain and hair loss.

[–] thedirtyknapkin 8 points 9 months ago

i mean shit, it's a legacy code issue. they made that format in the ninties to work with the limitations of 90s computers. since then they've just kept adding features and not starting over. it's the same reason the davinci resolve has better color tools and is way less crash prone than premiere. premiere can't do direct color manipulation, it does some kinda weird simplified math based on some kind of analogous curve or something like that. 90s computers simply couldn't handle the amount of color calculations needed to do it properly. resolve just uses your modern system to do the direct calculations. idk, i barely understand it and I've only ever met like 2 people that could tell me more about it...

[–] [email protected] 2 points 9 months ago

It appears that the original repo may be lost to time. But here is an archived copy:

http://web.archive.org/web/20151014114557/https://code.google.com/p/xee/source/browse/XeePhotoshopLoader.m#104