Hacker News new | past | comments | ask | show | jobs | submit login
File Format Posters (github.com/corkami)
320 points by dcschelt on April 7, 2017 | hide | past | favorite | 45 comments



Reminds me of the MPEG-2 transport stream poster: http://in.tek.com/poster/mpeg-poster-dvb

If he runs out of file formats, he could move on to protocols...


[flagged]


It's a German guy, and the name is for boys and girls. Here's a video by him: http://www.youtube.com/watch?feature=player_embedded&v=vg7LP...

Angle


Ah, you're right


French :) The accent is quite recognizable.


Whew, thank Bayes!


This is offtopic recreational outrage


"Recreational outrage" is my new favorite phrase :)


Does it matter? I mean, come on guys, let's be reasonable. Mankind needs to stop getting so upset about generic language that is male. Unlike other languages, English doesn't have good neutral pronouns that are used colloquially. Know what I mean man?


they/them/their


Really doesn't work too well in the singular.


They're just fine in the singular. I thought this too for a while, but was kindly corrected, so I'm paying it forward :)


edit: I just noticed the author has a link to order prints from him/her, that's definitely the more polite option: http://www.redbubble.com/people/ange4771

It also seems to be less expensive than options like Office Depot, too.

Does anybody have any suggestions on how to get these printed as full-sized posters?


From the readme in the parent directory: http://prints.corkami.com/


Funny enough, I edited my comment at just about the same time you posted this comment :-)


I'm sure there's other options but I've used Office Depot to do this in the past. Submit online and they mail it to you.


I did not know Office Depot did prints, thanks!


They have a very fancy version of the PE one on there too. It may be necessary for me to own it.


Most print/copy shops have wide format printers.


> https://github.com/corkami/pics/blob/master/binary/CryptoMod...

This one is great. Nothing as using crypto wrong so that it becomes useless.


I'm a big fan of these posters! I even made something similar to show the format of the Tor consensus [0]

[0] http://jordan-wright.com/blog/images/blog/how_tor_works/cons...


Nice! What tool, and technique, did you use to create this?


back before 2000, it really was important to know file formats. we didn't use libraries. we looked up the formats in books and implemented fresh code every time. I prided myself on having memorized most of the .wav header, enough that i didn't need a reference. Then, I learned .fig. Then, I worked on understanding .jpg.

Nowadays, with widespread APIs, the file formats' significance is almost irrelevant! In theory, only a single person in the world needs to know any file format. Everyone else can use a library they've written.

my how the world changes :)


There are different tasks, not everywhere the libraries could be applicable - because of different constraints, like, memory consumption, performance, etc.

For example, For many years I developed and maintained several libraries for high performance media type detection - libraries aren't applicable there. Similarly is for Dara extraction - sometimes you need to have tradeoffs between performance and other parameters, while libraries are optimized for average case.


I'm constantly surprised by how often I still need to look up file formats, and having a resource like this is a great starting point. Some examples from my recent experience for which using a library would be overkill / more effort: examining a .bmp file to figure out why the alpha channel got dropped during resizing; extracting meta-data (top-left pixel alpha value) from a .png file; fixing a failed library-call attempt to change the aspect ratio of an image; working out the version of an ancient document file so I could find an application to read it. We shouldn't become so dependent on libraries that this kind of simple manipulation forces us to install huge libraries and learn complex APIs for simple tasks, or else we collapse hopelessly into despair. Especially when a simple Python script and a one-page file description can allow us to do the job in a few seconds.


And that is why you, sir, are the guy who knows the file formats. I look forward to repurposing your scripts for manipulating .pwn files.


If only that were true. Yet as far as I can determine there is no available Java library which allows for full reading and writing of the JPEG/EXIF file format. There are a number of Java libraries which allow for reading and encoding JPEG image data but none of them offer complete support for the metadata.

The JPEG/EXIF format itself is a mess, just a completely horrible design. It's one of those old-school file formats like MS Word .doc which isn't so much of a "format" as modern programmers commonly understand the term but more like a straight dump of memory chunks into a file. That's not so bad if you're programming in C but surprisingly difficult in higher-level safe languages like Java.


It was surprising to me how few unique implementations there are of JPEG at all. Dig deep enough into most open source image libraries for almost any language, and eventually you'll find IJG libjpeg or one of its descendants.


For metadata, did you check Tika?


I tried that but it's pretty buggy. Writing some metadata just fails silently with no indication of what went wrong.


It isn't a format's fault if a language can't manipulate memory properly.


I think you missed the point. First, we should have learned by now that using an unsafe language like C to read data from an untrusted source directly into memory is really stupid. Just look at the security vulnerabilities that have been found in applications like ImageMagick.

Second, the JPEG/EXIF format is just needlessly complex regardless of language. Instead of marking metadata locations using something sensible like delimiters it's essentially a whole file system within the file with directories and directory entries. The values of some directory entries aren't storied there directly but instead pointed to by a byte offset value. So if you want to insert another entry you have to recalculate all the offsets! Even using C it's easy to screw that up and corrupt the whole file.


The only image format I can read is XPM :/

https://en.wikipedia.org/wiki/X_PixMap


What! I always thought .SWF was for "ShockWave Flash", not Small Web Format. Ha, a bit late to learn though.


In all reality, it was originally named after Shockwave Flash, but the extension meaning was retcon'd to Small Web Format to avoid confusion with Shockwave.


This is excellent, thanks a lot for sharing!


Thank you so much. I need to write a program that creates png files from arbitrary data so this will certainly come in handy!


It would be awesome to have a file poster of itself. For when one day we run out of electricity and hand-translate bits.


We have two of these prints up in our office. I highly recommend them, even if just as decoration.


Great stuff but the font is comical.


Does anyone know what font is used in the main code in the following image?

https://raw.githubusercontent.com/corkami/pics/master/binary...


Well, it looks to be heavily influenced by XKCD (both the font and the overall concept) so yes, literally comical :)


Awesome! Where can I buy the book?


> gif.png

This made me chuckle.


Very cool


Wow! These are pretty cool.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: