691
top 50 comments
sorted by: hot top controversial new old
[-] joyjoy@lemm.ee 99 points 1 year ago

There are 3 types of files. Renamed txt, renamed zip, and exe

[-] Toribor@corndog.social 53 points 1 year ago* (last edited 1 year ago)

I'd argue with this, but it seems like image and video file extensions have become a lawless zone with no rules so I don't even think they count.

[-] Hauskrampf@ttrpg.network 30 points 1 year ago

Looking at you, .webp

[-] gamma@programming.dev 18 points 1 year ago* (last edited 1 year ago)

Video files are just a bunch of zip files in a trenchcoat.

[-] fibojoly@sh.itjust.works 8 points 1 year ago* (last edited 1 year ago)

Back in the day, when bandwidth was precious and porn sites would parcel a video into 10 second extracts, one per page, you could zip a bunch of these mpeg files together into an uncompressed zip, then rename it .mpeg and read it in VLC as a single video. Amazing stuff.

[-] gazter@aussie.zone 5 points 1 year ago

What's it called when you logically expect something to work, but are totally surprised that it actually does?

[-] fibojoly@sh.itjust.works 6 points 1 year ago

Sounds an awful lot like a normal day at work as a dev.

[-] cultpony@lemmy.blahaj.zone 17 points 1 year ago
[-] GlitchyDigiBun@lemmy.dbzer0.com 9 points 1 year ago

It's a folder that you put files into, but acts as a file itself. Not at all like zip.

[-] Natanael@slrpnk.net 4 points 1 year ago

Tar.gz is pretty much like zip. Technically tar mimics a file system more closely but like who makes use of that?

[-] AVincentInSpace@pawb.social 7 points 1 year ago* (last edited 1 year ago)

Tar mimics a filesystem more closely? Tf??????

TAR stands for Tape ARchive. It's called that because it's designed to be written to (and read from) non-seekable magnetic tape, meaning it's written linearly. The metadata for each file (name, mtime etc.) immediately precedes its contents. There is no global table of contents like you'd find on an actual filesystem. In fact, most implementations of tar don't even put the separate files on gzip boundaries meaning you can't decompress any given file without decompressing all of the files before it. With a tape backup system, you don't care, but with a filesystem you absolutely do.

PKZIP mimics the traditional filesystem structure much more closely. The table of contents is at the end instead of the beginning, which is a bit strange as filesystems go, but it is a table of contents consisting of a list of filenames and offsets into the file where they can be found. Each file in a zip archive is compressed separately, meaning you can pull out any given file from a ZIP archive without any prior state, and you can even use different compression algorithms on a per-file basis (few programs make use of this). For obvious reasons, the ZIP format prioritizes storage space over modification speed (the table of contents is a single centralized list and files must be contiguous), meaning if you tried to use it as a filesystem it would utterly suck -- but you can very readily find software that will let you read, edit, and delete files in-place as though it were a folder without rewriting the entire archive. That's not really possible with a .tar file.

You could make the argument that tar is able to more closely mimic a POSIX filesystem since it captures the UNIX permission bits and ZIP doesn't (ustar was designed for UNIX and pkzip was designed for DOS) but that's not a great metric.

load more comments (13 replies)
[-] lemann@lemmy.one 88 points 1 year ago

Ah, good ol' Microsoft Office. Taken advantage of their documents being a renamed .zip format to send forbidden attachments to myself via email lol

On the flip side, there's stuff like the Audacity app, that saves each audio project as an SQLite database 😳

[-] Hexagon@feddit.it 52 points 1 year ago

Also .jar files. And good ol' winamp skins. And CBZ comics. And EPUB books. And Mozilla extensions. And APK apps. And...

[-] neo@lemmy.comfysnug.space 9 points 1 year ago

cbz is literally just a renamed zip

load more comments (2 replies)
[-] beeb@lemm.ee 29 points 1 year ago

an SQLite database

Genius! Why bother importing and exporting

[-] xigoi@lemmy.sdf.org 21 points 1 year ago

Minetest (an open-source Minecraft-like game) uses SQLite to save worlds.

[-] lemann@lemmy.one 8 points 1 year ago

Mineclone2 is an absolute masterpiece of a game for Minetest IMO

[-] xigoi@lemmy.sdf.org 9 points 1 year ago

I prefer games that embrace the difference from Minecraft instead of trying to emulate it. My favorite is MeseCraft.

load more comments (1 replies)
load more comments (1 replies)
[-] tsonfeir@lemm.ee 24 points 1 year ago

SQLite is amazing. Shush.

[-] mogoh@lemmy.ml 18 points 1 year ago

that saves each audio project as an SQLite database 😳

Is this a problem? I thought this would be a normal use case for SQLite.

[-] fiah@discuss.tchncs.de 17 points 1 year ago

doesn't sqlite explicitly encourage this? I recall claims about storing blobs in a sqlite db having better performance than trying to do your own file operations

[-] MNByChoice@midwest.social 8 points 1 year ago* (last edited 1 year ago)

Thanks for the hint. I had to look that up. (The linked page is worth a read and has lots of details and caveats.)

The scope is narrow, and well documented. Be very wary of over generalizing.

The measurements in this article were made during the week of 2017-06-05 using a version of SQLite in between 3.19.2 and 3.20.0. You may expect future versions of SQLite to perform even better.

https://www.sqlite.org/fasterthanfs.html

SQLite reads and writes small blobs (for example, thumbnail images) 35% faster¹ than the same blobs can be read from or written to individual files on disk using fread() or fwrite().

Furthermore, a single SQLite database holding 10-kilobyte blobs uses about 20% less disk space than storing the blobs in individual files.)

Edit 5: consolidated my edits.

[-] OrangeXarot@sh.itjust.works 8 points 1 year ago
load more comments (1 replies)
[-] space@lemmy.dbzer0.com 63 points 1 year ago

Also renamed xml, renamed json and renamed sqlite.

[-] TrustingZebra@lemmy.one 19 points 1 year ago

Those sound fancy, I just use renamed txt files.

[-] xtremeownage@lemmyonline.com 9 points 1 year ago

Amateurs.

I have evolved from using file extensions, and instead, don't use any extension!

[-] H4mi@lemm.ee 18 points 1 year ago

I don’t even use a file system on my storage drives. I just write the file contents raw and try to memorize where.

[-] ArmoredThirteen@lemmy.ml 10 points 1 year ago

Sounds tedious, I've just been keeping everything in memory so I don't have to worry about where it is.

load more comments (3 replies)
load more comments (6 replies)
[-] dan@upvote.au 8 points 1 year ago* (last edited 1 year ago)

SQLite explicitly encourages using it as an on-disk binary format. The format is well-documented and well-supported, backwards compatible (there's been no major version changes since 2004), and the developers have promised to support it at least until the year 2050. It has quick seek times if your data is properly indexed, the SQLite library is distributed as a single C file that you can embed directly into your app, and it's probably the most tested library in the world, with something like 500x more test code than library code.

Unless you're a developer that really understands the intricacies of designing a binary data storage format, it's usually far better to just use SQLite.

load more comments (3 replies)
[-] observantTrapezium@lemmy.ca 39 points 1 year ago

Nothing wrong with that... Most people don't need to reinvent the wheel, and choosing a filename extension meaningful to the particular use case is better then leaving it as .zip or .db or whatever.

[-] CoderKat@lemm.ee 5 points 1 year ago

Totally depends on what the use case is. The biggest problem is that you basically always have to compress and uncompress the file when transferring it. It makes for a good storage format, but a bad format for passing around in ways that need to be constantly read and written.

Plus often we're talking plain text files being zipped and those plain text formats need to be parsed as well. I've written code for systems where we had to do annoying migrations because the serialized format is just so inefficient that it adds up eventually.

[-] AI_toothbrush@lemmy.zip 23 points 1 year ago

When i discovered as a little kid that apk files are actually zips i felt like a detective.

[-] HiddenLayer5@lemmy.ml 13 points 1 year ago
[-] gamma@programming.dev 13 points 1 year ago
[-] dan@upvote.au 5 points 1 year ago

They both have their use cases. Zstandard is for compression of a stream of data (or a single file), while 7-Zip is actually two parts: A directory structure (like tar) plus a compression algorithm (like LZMA which it uses by default) in a single app.

7-Zip is actually adding zstd support: https://sourceforge.net/p/sevenzip/feature-requests/1580/

load more comments (3 replies)
load more comments (8 replies)
load more comments
view more: next ›
this post was submitted on 13 Sep 2023
691 points (97.7% liked)

Programmer Humor

32050 readers
1539 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS