How Hackerman would create an image just by typing 0 and 1 – a deep dive to GIF

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • vim-afterimage

    afterimage.vim: edit binary files by converting them to text equivalents

  • There's a cute plugin[0] for Vim which converts any image to XPM, which is a similar format that Vim has syntax-coloring for. You can edit the text, and then on save, it will get converted back to the original format. I've used it a few times to quickly preview an image or edit a favicon. It's more of party trick than seriously useful, though.

    [0]https://github.com/tpope/vim-afterimage

  • whats-in-a-gif

    Guide to understanding the GIF file format

  • One great resource for GIF-related explorations is Matthew Flickinger's "What's In A GIF" project:

    * https://www.matthewflickinger.com/lab/whatsinagif/index.html

    The original version is apparently from ~2005 and is used as the basis of the giflib docs referenced by the original article[0]. (The giflib docs do expand on the content of the original, so are still worth reading.)

    But Matthew Flickinger's original version has continued to be updated as recently as 2022[1] and now includes two helpful browser-based GIF tools:

    * GIF Explorer: https://www.matthewflickinger.com/lab/whatsinagif/gif_explor...

    * GIF Encoder: https://www.matthewflickinger.com/lab/whatsinagif/gif_encode...

    GIF Explorer displays the "interpreted" bytes of any GIF file in an almost "literate" style and has an UI/UX which I'd be really interested to see used in a generic reverse-engineering/binary viewer tool.

    GIF Encoder enables you to create an image in the browser & see how it is GIF encoded.

    I have a rant about how modern GIF usage could be so much better than it is (and still be within the original specification) but instead of subjecting you to that I'll subject you to this project of mine instead: https://audiogif.rancidbacon.com

    [0] https://giflib.sourceforge.net/whatsinagif/index.html

    [1] https://github.com/MrFlick/whats-in-a-gif

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • giferly

    GIF 89a decoder written in Erlang

  • I absolutely love the "What's In A GIF" series. It's what inspired me to write my own GIF decoder while learning Erlang at the same time: https://github.com/avik-das/giferly

    The first time around, I struggled a lot with decoding errors. Many years later, after being a more experienced developer, I wrote the LZW decompression with unit tests. Doing so forced me to think about each edge case, and fix issues without breaking existing functionality. Very quickly, I was able to open pretty much any GIF file I threw at it!

  • linux

    Linux kernel source tree (by lkl)

  • Okay, so of interest but maybe not applicable to my usecase. Thanks:)

    Yeah, it remains to be seen how complex the actual format/code is. Would need to balance the difficulty of recreating it (which I assume to be quite high) against difficulty of extracting kernel code... although https://github.com/lkl/linux exists so for all I know maybe it's easy¯\_(ツ)_/¯

    And yes, if I needed to actually write a "tar2ext4" tool today - like, start working in the morning and have it done by EOD - I would absolutely use... actually probably a loopback device rather than a true ramdisk, but yeah. But that requires root access and fiddling with loopback config, which seems excessive for what is, ultimately, just another archive format (from a certain point of view). And honestly some of it is just that it sounds fun to get my hands dirty with filesystem code in userspace:)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • SexyVim

    1 project | dev.to | 30 Apr 2024
  • Why Neovim is My Text Editor of Choice

    2 projects | dev.to | 23 Apr 2024
  • Accessible syntax highlighting colour schemes for developers

    2 projects | dev.to | 19 Apr 2024
  • Vim Gets Xdg_config_home Support

    1 project | news.ycombinator.com | 14 Apr 2024
  • Shape Typing in Python

    5 projects | news.ycombinator.com | 13 Apr 2024