via: @memes@wetdry.world

https://wetdry.world/@memes/112717700557038278

the sqlite codebase is a gem.

tldr; mcaffee made a shit ton of sqlite files in the temp folder causing people to call the sqlite devs phone angrily. now they name all files etilqs to prevent this.

Text from the screenshot:

2006-10-31: The default prefix used to be “sqlite_”. But then Mcafee started using SQLite in their anti-virus product and it started putting files with the “sqlite” name in the c:/temp folder. This annoyed many windows users. Those users would then do a Google search for “sqlite”, find the telephone numbers of the developers and call to wake them up at night and complain. For this reason, the default name prefix is changed to be “sqlite” spelled backwards. So the temp files are still identified, but anybody smart enough to figure out the code is also likely smart enough to know that calling the developer will not help get rid of the file.

Code found at: https://github.com/sqlite/sqlite/blob/master/src/os.h#L65 (The line numbers in the screenshot and the code don’t match up)

159 points

Wasn’t there a story about people calling curl devs because of car issues?

For what it’s worth, I’m sure the SQLite devs could help somebody clean up their temp files. They just really shouldn’t have to.

permalink
report
reply
136 points

Are you talking about this: I have toyota corola?

permalink
report
parent
reply
47 points

Yes! Hahaha, it’s so good.

Number 2 needs to flick the little switch on the SD card.

permalink
report
parent
reply
18 points

and so the internet wisdom has solved the person’s problem. Alas they will never find out

permalink
report
parent
reply
4 points

Their issue is that the card has the physical lock switched on on the SD card?

permalink
report
parent
reply
76 points

Well

permalink
report
reply
50 points
*

Forgive my ignorance. SQLite is a database software. Why would McAffee create lots of database files?

[Edit:] I’m not asking why a program needs to store data. I’m asking why that necessitates many files. One database file (or one per table) should be enough, right?

permalink
report
reply
62 points

Many programs use SQLite internally and McAfee decided to store the database files in C:/Temp

permalink
report
parent
reply
2 points

No, these are sqlite temp files, not the database files. McAfee had no control over the temp files.

permalink
report
parent
reply
50 points

Sqlite is a great embedded database.
If you are storing lots and lots of information in a JSON file, CSV file, or coming up with your own serialisation… Chances are, sqlite is going to do it better.
I know loads of android apps use sqlite for storage. I’ve also managed to open quite a few programmes “proprietary” file format in sqlite.

permalink
report
parent
reply
62 points
*

A yes, the two genders of binary file formats: renamed sqlite file and renamed zip folder.

permalink
report
parent
reply
10 points

Don’t forget renamed and compressed xml + zip

permalink
report
parent
reply
1 point

Aren’t sqilte files themselves (like most other things) just fancy text files?

permalink
report
parent
reply
20 points

The program needs to store multiple temporary files (one per virus definition update, or scan results or whatever purpose).

It looks like they simply picked sqlite as a format because the data has a structured format and that way they leverage databases robustness, easiness to read and query the data.

The comment appears to be from 2006. Sqlite mightve had some limitations then that necessitated creating a new (temporary) database file as a subset of larger database for performance reasons or to allow multiple processes to read/write them and then consolidate data back into the single database.

permalink
report
parent
reply
8 points

Virus definitions?

permalink
report
parent
reply
2 points

Does sqlite create a file for every page in the table or what?

permalink
report
parent
reply
42 points

No, but developers are free to implement things in whatever crazy way they can dream up.

permalink
report
parent
reply
4 points

Nobody ever accused McTrellix of being efficient software 😆

permalink
report
parent
reply
4 points

Al sorts of applications would enjoy a database to log all sorts of stuff, store results, capture events, etc.

SQLite is great because it doesn’t necessitate another infra dependency as it is stored to file

permalink
report
parent
reply
34 points

John McAfee would be spinning like a rotisserie chicken in his grave. Or at least he would be if McAfee Software hadn’t already turned to shit long before his death.

So the temp files are still identified, but anybody smart enough to figure out the code is also likely smart enough to know that calling the developer will not help get rid of the file.

Don’t underestimate the stupidity of your average person.

permalink
report
reply
8 points

Was gonna say, this wouldn’t happen on John’s watch. /S

permalink
report
parent
reply
27 points

I love how the solution didn’t involve changing the prefix to “mcaffee_”. Now users don’t know who to blame. Great. That’s so nice of them.

permalink
report
reply
71 points
*

Then mcaffee_ would be appearing in unrelated sqlite-using applications

permalink
report
parent
reply
5 points

Oh, I thought that the temp files were named by the user. If that’s not the case, that these are not databases created specifically by McAfee in the temp directory, then I’m not sure what the appropriate solution should be. Obscuring the file type and how the file is used from users is still a bad practice.

permalink
report
parent
reply
37 points

Why would sqlite put references to an unrelated product in their codebase?

permalink
report
parent
reply
-1 points

The same reason that McAfee did?

permalink
report
parent
reply
29 points

McAfee wrote a program that used the Sqlite library for database storage.

When going about its data storage business for McAfee’s program, the Sqlite library was storing files in C:\temp with prefixes like sqlite_3726371.

Users see that and get angry, and bug the Sqlite developers.

Now probably when initialising the Sqlite library McAfee could have given it the location of a directory to keep it’s temp files. Then they could have been tucked away somewhere along with the rest of the McAfee code base and be more easily recognised as belonging to them, but they didn’t.

So because of a bit of careless programming on McAfee’s part, Sqlite developers were getting the heat because the files were easily recognisable as belonging to them.

Because the Sqlite developers don’t have control of what McAfee was doing, the most expedient way to solve the problem was to obfuscate the name a bit.

permalink
report
parent
reply
5 points

McAfee didn’t, sqlite produces that name on its own. Its McAfee that stored them weirdly

permalink
report
parent
reply
2 points

the solution is not on the mcafee side but on sqlite

permalink
report
parent
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 2K

    Monthly active users

  • 861

    Posts

  • 14K

    Comments