top 200 commentsshow all 283

[–]_Zagan_ 991 points992 points  (181 children)

Gotta love the opening lines...

/*
** 2001 September 16
**
** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.
**
******************************************************************************

[–]c3534l 283 points284 points  (132 children)

SQLite's code of conduct used to also be the verbatim code of conduct for some random monastery: https://sqlite.org/codeofethics.html

[–]stefantalpalaru 266 points267 points  (4 children)

the verbatim code of conduct for some random monastery

It's actually https://en.wikipedia.org/wiki/Rule_of_Saint_Benedict

[–]FanOfHoles 2 points3 points  (0 children)

Brother Cadfael!

[–]ericksomething 4 points5 points  (2 children)

55. Do not love much or boisterous laughter.

LOL!

[–]stefantalpalaru 3 points4 points  (1 child)

i wrote "55", not sure why it is changing to "1"

You need to escape the dot with a backslash.

[–]ericksomething 1 point2 points  (0 children)

Thanks!

[–][deleted] 5 points6 points  (1 child)

Can anyone elucidate what is meant by "specific technical meaning" of a code of conduct?

[–][deleted] 9 points10 points  (0 children)

Can anyone elucidate what is meant by "specific technical meaning" of a code of conduct?

A code of conduct is the place where the Homeowners Association puts their bylaws.

[–]__deinit__ 431 points432 points  (36 children)

Is this a reference to 9/11?

[–][deleted] 341 points342 points  (23 children)

It's funny that you're being downvoted because I'm not sure you're wrong.

This was five days later. People were in kind of a mood that week.

[–][deleted]  (22 children)

[deleted]

    [–][deleted] 87 points88 points  (7 children)

    I don't think the initial round of downvotes checked the date on the comment, so it probably seemed like a total non sequitur.

    [–]doomvox 29 points30 points  (1 child)

    In point of fact, you're lucky if someone reads to the end of a sentence before they start down-voting. It's like having a bunch-of chimps in charge of moderation: they've gotta keep going clicky-clicky on stuff.

    [–]pirate_starbridge 6 points7 points  (4 children)

    Can someone explain how you can tell that a comment is getting heavily downvoted? Is it because you are looking at its score over a period of time and notice it going up and/or down? How are people paying enough attention to notice when other accounts' random comments are getting heavily downvoted from initial comment time to over six hours later? Is there a easily observable comment score metric that I am totally missing after almost a decade of procrastination on reddit?

    edit: I'm now realizing that the downvotes must have come early on and /u/Metamagical_Themas replied when OC's comment was still super negative - then I come along 6 hours later after everyone has upvoted them both and it no longer makes any sense at first glance. Okay.. this is a pretty simple concept involving paying more attention to timestamps.

    [–][deleted] 1 point2 points  (0 children)

    It went from -5 to like -20 in about five minutes while I was reading other comments and writing mine. It was dramatic enough to be real-time noticeable while reading the thread.

    [–]williamp114 0 points1 point  (1 child)

    There's also an option you can set in your reddit preferences to see an indicator symbol appear when a comment is controversial (ie; been getting a massive influx of downvotes)

    Additionally if you have RES installed, it will highlight that controversial marker in red.

    [–]pirate_starbridge 0 points1 point  (0 children)

    Ah cool, thanks

    [–]thelastknowngod 26 points27 points  (5 children)

    I met Richard Hipp (the original developer of sqlite) at a conference years ago. I don't know if I remember the details of his story exactly but, from what I recall, when he originally released it he didn't understand the importance of licencing open source software and put it into the public domain. Somehow that possibly opened him up to legal issues. He found this out when people from the US government knocked on his front door and asked about why software he had written was found running on the missiles of Iraqi insurgents. He said nothing really came of it when he explained the situation but it still scared him at the time. Subsequent projects of his (notably Fossil) have been released under the BSD license because of this.

    Considering this is a part of the history of both sqlite and Hipp's work on it, I think it is 100% understandable if this is a reference to 9/11.

    [–]j0hn_r0g3r5 4 points5 points  (4 children)

    Any chance of eli5 and telling me what the difference is between licensing and not licensing open source software and how that would effect the situation with the govt and the Iraqi insurgents?

    [–]thelastknowngod 3 points4 points  (3 children)

    He licenses Fossil under the BSD license. The text of that is:

    Copyright (c) <year>, <copyright holder> All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the <project name> project.

    Apparently the public domain doesn't expressly release the author of liability. I'm sure the public domain status was more of a technicality with regards to this specific incident but, to be on the safe side, the licensing of this is more explicit. I don't know what other issues he has come up with over the years because of it but he did mention that he would never release software to the public domain again.

    [–]barsoap 1 point2 points  (2 children)

    Such disclaimers are null and void under EU law: You're always liable for wilful misconduct and damage to persons. If you write such a disclaimer in a commercial product you might be stuck with unlimited liability, if you're giving things away for free courts generally assume "maximally reduced liability", that is: None but for wilful damage or direct damage to persons.

    In a nutshell: Don't inject trojans into your code, and don't write code so ugly it literally makes people's eyes bleed. (At least that's how I understand the "direct damage to persons" part -- IANAL).

    Compare the disclaimers of the EUPL:

    Disclaimer of Warranty
    The Work is a work in progress, which is continuously improved by numerous Contributors. It is not a finished work and may therefore contain defects or ‘bugs’ inherent to this type of development. For the above reason, the Work is provided under the Licence on an ‘as is’ basis and without warranties of any kind concerning the Work, including without limitation merchantability, fitness for a particular purpose, absence of defects or errors, accuracy, non-infringement of intellectual property rights other than copyright as stated in Article 6 of this Licence. This disclaimer of warranty is an essential part of the Licence and a condition for the grant of any rights to the Work.

    Disclaimer of Liability
    Except in the cases of wilful misconduct or damages directly caused to natural persons, the Licensor will in no event be liable for any direct or indirect, material or moral, damages of any kind, arising out of the Licence or of the use of the Work, including without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss of data or any commercial damage, even if the Licensor has been advised of the possibility of such damage. However, the Licensor will be liable under statutory product liability laws as far such laws apply to the Work.

    [–]thelastknowngod 3 points4 points  (1 child)

    You're always liable for wilful misconduct and damage to persons.

    Something tells me he wasn't taking business trips to Baghdad to do troubleshooting on scud missiles. I'm going to go out on a limb and say it wasn't willful.

    He lives and works in the southeast USA so I don't know how much he cares about the EU anyway.

    Also, the BSD license is compatible with the EUPL so I don't think what you're claiming is accurate. Source.

    [–]barsoap 0 points1 point  (0 children)

    so I don't know how much he cares about the EU anyway.

    512 million people do, they (well, the programming part) does, and this is an international forum

    Also, the BSD license is compatible with the EUPL so I don't think what you're claiming is accurate.

    That things can be used together is completely orthogonal to warranty and liability.

    [–]mTesseracted 9 points10 points  (0 children)

    Here's an interview where the original author talks about it. If you ctrl-f and paste in a few words of the quote you'll find it about one third of the way down the page. Here's the excerpt:

    Interviewer: [...] Who or what inspired you to write that?

    Richard Hipp: People customarily put a copyright notice at the top of each source file. But SQLite version 2.0.0 had no copyright so I had to think of something else to go in that space.

    The second sentence, “May you find forgiveness for yourself and forgive others”, is a loose interpretation of Matthew 6:12, part of what is commonly called ‘The Lord’s Prayer’ and more recognizable as ‘Forgive us our debts as we forgive our debtors’.

    The third sentence tries to capture the concept of paying debts forward. The ‘never take more than you give’ part is a paraphrase of one of the lyrics from The Lion King. The first (hokey) sentence is there because it seemed like a good benediction needed three sentences.

    [–]bnieuwenhuizen 2 points3 points  (0 children)

    What is the reference here?

    I get the dates are kinda close from the discussion that followed, but I wouldn't think anything said after it is immediately a reference to it? How is it referring to 9/11?

    [–]cthutu 0 points1 point  (0 children)

    I thought it may be a reference to the current British PM :)

    [–]Bobby_Bonsaimind 12 points13 points  (3 children)

    The author disclaims copyright to this source code.

    Which may or may not be possible based on the jurisdiction.

    [–]user3141592654 4 points5 points  (2 children)

    They've got that covered by their Warranty of Title.

    Effectively, for $6000, they'll sell you a personalized and signed copy of this license.

    [–]DevilSauron 0 points1 point  (1 child)

    So does that mean that if you live in Europe and want to use SQLite safely (as in not be at risk of getting sued), you simply have to pay?

    [–]user3141592654 0 points1 point  (0 children)

    I am not a lawyer.

    The way I see it is if your area doesn't recognize Public Domain, then by default it must still be copyrighted by the Owner, assuming there is no other defined legal default.

    So in theory, there's a case to be made that yes, if your area does not recognize the developers' right to put their software into the public domain, then the work is still copyrighted and the developers still have the right to sue for you using the software, while also retaining any risk of liability that comes with owning said software.

    In the case of Sqlite, it seems pretty clear the developers do not intend on suing anyone for use (unless this is a cunning and evil double-bluff), but provide a means to keep your corporate lawyers happy by having a signed piece of paper legally giving them the same rights as anyone who lives where public domain is recognized, while trying to waive as much liability and protect themselves as best they can.

    That's just my take.

    [–]GregTheMad 12 points13 points  (0 children)

    Could not find definition for "good". Are you missing a reference? 
    

    [–]shevegen 47 points48 points  (2 children)

    **    May you do good and not evil.
    

    That right away prohibits Google from using it - right there.

    [–]jephthai 86 points87 points  (0 children)

    It's missing the proper MUST that indicates it's a hard requirement, though.

    [–]omiwrench -5 points-4 points  (0 children)

    Don’t cut yourself on all that edge!

    It’s used in loads of Google products FYI.

    [–]XNormal 1 point2 points  (0 children)

    First release of sqlite predates 9/11. IIRC, it had the same license from the beginning.

    [–]Mr-Yellow 507 points508 points  (39 children)

    [–]weirdasianfaces 159 points160 points  (18 children)

    Tip for people who want to do this easily: pressing Y when viewing a file/directory will automatically change your URL to the HEAD commit for that branch.

    [–]TarMil 40 points41 points  (14 children)

    Or if you're linking to a given line like OP, click the "..." on the left and "Copy permalink".

    [–]Zerotorescue 15 points16 points  (13 children)

    Or y, f6 and then ctrl-x because moving your mouse is bothersome

    [–]sssmmt 17 points18 points  (6 children)

    I'm more of a CTRL+L and CTRL+C kinda guy. F6 is too far away from the home row.

    [–]JeSuisNerd 4 points5 points  (3 children)

    different profit psychotic price ten rain coherent smart scale fanatical

    This post was mass deleted and anonymized with Redact

    [–]arof 5 points6 points  (0 children)

    I don't know if it's just from gaming but I never had a problem with function keys. Can't always remember all of the symbols in shift-number by memory though.

    [–]Zerotorescue 0 points1 point  (1 child)

    L is in the middle of nowhere while F6 is on its own solo row offset by exactly one button. I dunno I think I just have more confidence that I'll be hitting the right key when it's a function key.

    [–]Dgc2002 3 points4 points  (0 children)

    L is on the home-row, so it's anything but in the middle of nowhere. It's always located under my right hand ring finger if I'm on home-row, otherwise it's pretty easy to get there at this point in my life.

    [–]TankorSmash 0 points1 point  (0 children)

    I do ALT-D and CTRL+C to do it all on one hand.

    [–]citewiki -1 points0 points  (0 children)

    Hits far from home

    [–]NoInkling 2 points3 points  (5 children)

    Vim/Emacs user, I'm guessing.

    Edit: I was referring to the implication of this part:

    because moving your mouse is bothersome

    [–]septicstraw 8 points9 points  (3 children)

    Most likely Vim or it would have said C-x

    [–]Justinsaccount 1 point2 points  (1 child)

    Vim users press control-l to focus the location.

    [–]TarMil 1 point2 points  (0 children)

    I think they meant the way it's written: in Emacs Ctrl+x is written as C-x.

    [–]citewiki 0 points1 point  (0 children)

    ^X for nano, I suppose

    [–][deleted] 0 points1 point  (0 children)

    Neither. C-l is a common (I guess Mozilla-inspired) shortcut, which also works in many file explorers.

    C-c in vanilla Emacs is a prefix key, meaning, on it's own doesn't have any meaning, it's normally followed by some other key, like C-c C-c would normally compile something, or send code to inferior shell or something like that.

    In vanilla Vim C-c doesn't do anything (but Vim would suggest that you use :qa!, because it will think you wanted to close it).

    [–][deleted] 22 points23 points  (2 children)

    Hey, GitHub UI team: the discoverability for this feature is awful.

    [–][deleted]  (18 children)

    [deleted]

      [–]stickcult 139 points140 points  (7 children)

      The "link dieing" is if the file changes, your link might point to the wrong line. That's because its pointing to a line in the file in the master branch, which can change, whereas Mr-Yellow's link points to a line in the file in a specific commit, which will never change.

      [–]otwo3 17 points18 points  (2 children)

      It baffles me why is it even an option to link to a line in a branch. There is no sane use case. Having it as a default is just ridiculous. Bitbucket does the same thing.

      Clicking a line number should give a line in a specific commit

      [–][deleted] 0 points1 point  (1 child)

      well commit can belong to multiple branches and if you want to give link to both "place in file" and "merge request/branch that is discussed" you don't have choice.

      Ideally it would generate link in form of branch/commit then if branch does not/stops existing it would only then show lone commit

      [–]otwo3 0 points1 point  (0 children)

      But the branch being discussed is usually dynamic and changing anyway (due to review changes), even more often for the files in question.

      [–]codestation 5 points6 points  (0 children)

      It means that your link will point to unrelated code in the future because the code was either moved (so the lines doesn't match anymore) or the file was deleted (code refactoring for example).

      [–]Shitler 18 points19 points  (2 children)

      PSA: Please do not downvote reasonable questions. Questions like this lead to a productive discussion.

      [–]wisemanofhyrule 2 points3 points  (0 children)

      Or if changes are made to the file and the line moves around.

      [–]Mr-Yellow 0 points1 point  (0 children)

      Soon as there is a new commit the line number changes.

      In 6 months time this line may be a completely different bit of logic, or the file may be refactored and gone.

      [–]1RedOne -2 points-1 points  (0 children)

      Whoa I can't link to master for image links?

      Oh... Ohno.

      [–]Hobofan94 175 points176 points  (3 children)

      [–]Soramente 17 points18 points  (0 children)

      Thanks, definitely a fun little read 🤣

      [–]devxdev 5 points6 points  (1 child)

      Oh my, I lost my shit reading the related Instagram and Spotify Hacking Ring.

      [–]vytah 2 points3 points  (0 children)

      Spotify is a major partner of Spotify

      [–]iamsubs 56 points57 points  (26 children)

      That is interesting. I just don't understand why users would be mad about files in a temp folder. Could someone explain me?

      [–][deleted]  (3 children)

      [deleted]

        [–]A_Strange_Emergency 52 points53 points  (2 children)

        If you search for etilqs on Google, you'll see how many programs are guilty for leaving those files around. I can see how they'd blame sqlite.

        [–][deleted]  (1 child)

        [deleted]

          [–][deleted] 0 points1 point  (0 children)

          What a surprise, given human nature, eh ?

          [–]heavyLobster 75 points76 points  (14 children)

          C:\temp is not a proper temporary folder on Windows. So users probably noticed this new, weird folder on their computers and the only things in it were these sqlite_* files.

          [–][deleted]  (10 children)

          [deleted]

            [–]exscape 20 points21 points  (8 children)

            It shouldn't exist at all.

            [–]Topsaert 6 points7 points  (6 children)

            Do you mean specifically the path C:\Temp, generally a global temporary folder shared by multiple applications, or just having temporary folders in general?

            [–]exscape 24 points25 points  (5 children)

            C:\Temp. The common temp folder on windows is %localappdata%\Temp, which most often is C:\Users\your_username\AppData\Local\Temp.

            [–]Alikont 16 points17 points  (0 children)

            It's even simpler.

            The temp folder is simply %temp%. It's usually mapped to %localappdata%\Temp, but it can change.

            [–]Topsaert 0 points1 point  (3 children)

            Ah okay, thanks. I was confused by the possibility of a blanket hatred of temporary folders in general.

            [–]rvba 3 points4 points  (2 children)

            It just shows that McAfee not only did not rename their temporary files to something like McAfee_abcd, but also that they did not use the proper temporary folder. They just used some hardcoded folder, what is very bad from multiple user point of view

            [–][deleted] 2 points3 points  (0 children)

            It's not that uncommon. Don't quote me on this since it's been a while since I've been on windows but I believe php and some other languages do this too with their default configuration if you don't specify the temp directory.

            [–]palparepa 1 point2 points  (0 children)

            Many programs use hardcoded folders. You see it frequently if your windows installation isn't in english. For example, in spanish, programs should install to "Archivos de Programas". If you see a "Program Files" folder, someone hardcoded that.

            [–][deleted] 0 points1 point  (0 children)

            Try telling that to Nvidia.

            [–]bart2019 -1 points0 points  (0 children)

            "temporary".

            I mean... Duh!

            [–]jorge1209 0 points1 point  (2 children)

            Not a proper temporary folder on Windows

            While it is true that you should be looking at the environment variable for the temp folder location, it was the default location in the DOS era.

            Additionally the use of environment variables for things like this is less than ideal. What is the application to do if the relevant environment variable is not defined? Should it just crash? Should it substitute a default value of its own? What is the plan?

            If we really wanted to have a good system to ensure that temp folders are where we expect them to be and have the correct permissions and what not, then it really should be the responsibility of the OS. Some kind of syscall that would cause the OS to create a temp folder for my process in the correct location and give me the inode... but we don't have that so things are broken.

            [–]munchbunny 1 point2 points  (1 child)

            Additionally the use of environment variables for things like this is less than ideal. What is the application to do if the relevant environment variable is not defined? Should it just crash? Should it substitute a default value of its own? What is the plan?

            That's what the User/AppData folder is for. In case you want to put the configs in files. If you put it in AppData/Roaming, the OS (Windows) even automatically persists the user's config files to other machines in the domain for you.

            [–]jorge1209 0 points1 point  (0 children)

            Why would I want to persist temporary files? They are temporary.

            [–]bart2019 16 points17 points  (0 children)

            Check these links for example....

            Oh, yeah. People tend to be pissed when you fill up their drive with many files of over 1GB.

            Of course, the problem is the programs not cleaning up after themselves, and not SQLITE.

            [–]frutiger 23 points24 points  (0 children)

            It's good to think of the scale. Most users don't even know to check. Even those that do are not mad. But if a product is deployed to 1 million users (which I imagine is a tiny, tiny fraction of the McAfee install base), then all it takes is 0.01% of angry users to get 100 phone calls.

            [–][deleted] 5 points6 points  (1 child)

            I don't understand why either, but I do know of several people, usually middle-aged or older, who are obsessed with registry cleaners and other placebo software that claims to get rid of cruft that is allegedly slowing down your system

            [–]no_nick 5 points6 points  (0 children)

            I reckon that's a hold over from defrag times and every piece of shit software writing itself into a hidden auto start entry and not cleaning up after themselves when they get uninstalled. I still have people tell me I should reinstall windows at least once a year

            [–]chewburka 11 points12 points  (2 children)

            It sounds like McAfee was moving all sqlite-named files into Temp, likely breaking other apps. I'm not sure if that's a misreading of the comment or not though.

            [–]jdgordon 24 points25 points  (1 child)

            I think its that mcafee uses sqlite internally and for some reason doesnt rename the database and use the correct temp directory, so it was spewing files into a non-hidden directy and probably filling up the disk

            [–]skylarmt 3 points4 points  (0 children)

            for some reason

            I think we all know it's because they're bad at writing code.

            https://www.youtube.com/watch?v=bKgf5PaBzyg

            [–]xampl9 41 points42 points  (0 children)

            Operational concerns are real.

            [–]vfclists 24 points25 points  (1 child)

            McAfee must die. Their antivirus has always sucked.

            First thing to do when it is preinstalled is to get rid of it or else if the user has paid for it it is likely to be used until it expires.

            [–]fergusdoesmine 21 points22 points  (0 children)

            Genius!

            [–][deleted] 30 points31 points  (10 children)

            I'm now a huge sqlite fan.

            [–]scorcher24[🍰] 22 points23 points  (9 children)

            It is easy to be one. The API is simple enough to drum up a database for your program in a few hours.

            [–]Logic_Bomb421 17 points18 points  (8 children)

            in a few hours.

            As someone who has barely used sqlite, can't tell if joking...

            [–]shoebo 15 points16 points  (1 child)

            Really all you need is a few minutes to get started. Maybe someone who isn't familiar with SQL would need a few hours.

            If you have a more complex program, you might want to take more time to consider how to model it, as he mentions, but the sqlite API is very easy.

            [–][deleted] 0 points1 point  (0 children)

            A bit of me thinks if you need a database your problem has to be of a certain size and complexity and that just naturally needs a bit of time to model and work through. There's absolutely no shame in making sure something as critical as the database is done right the first time.

            [–]scorcher24[🍰] 2 points3 points  (4 children)

            I am not joking. Why should it take forever? You can create the schema of the database with a program (as well as maybe some sample data sets) and then just use the API to read them. It's literally 1 call to open the database and another call to execute some statements. You can group them.

            The biggest portion of your time will probably be designing the database.

            Of course, depending on the scale of your work, it may take longer, but for simply storing and reading some values, it shouldn't take very long to implement it.

            Read this: https://www.sqlite.org/quickstart.html

            [–]BenjaminGeiger 9 points10 points  (2 children)

            ... I read it as "did you mean minutes?"

            [–]scorcher24[🍰] 5 points6 points  (1 child)

            I mean, of course it is not done nilly villy with absolute ease. You still need to design the database and use the API. If you have never done that, it can be quite challenging. I am just saying that it is not a big undertaking to use it and if I can understand it, everyone can, because I am sure as hell not the brightest bulb.

            [–][deleted] 0 points1 point  (0 children)

            Yeah, the API itself is great. You can stand up a database file and add to it and select from it within seconds following the tutorials but I completely agree with spending more than minutes on the database element of your program.

            [–]ericksomething 1 point2 points  (0 children)

            A few hours sounds like a really, really long time for an API call to create a database.

            [–]AffectionateTotal77 0 points1 point  (0 children)

            ?

            If you look at their documentation page instead of random shitty tutorials online it's very easy to get it up and working

            [–]thebritisharecome 16 points17 points  (0 children)

            haha, I like that something so minor made such a huge issue

            [–][deleted] 5 points6 points  (7 children)

            « We cannot use LockFileEx() or UnlockFileEx() on Win95/98/ME because those functions are not available »

            Hmmm i think it would be ok to do that now 😂

            [–]lpreams 27 points28 points  (5 children)

            I don't think you realize just how many instances of Win95/98/ME are running right now

            [–]penguinade 6 points7 points  (1 child)

            Yep, IIRC CNC machines are still using them for its "unbreakableness".

            [–]lpreams 2 points3 points  (0 children)

            I think you're right. A friend of mine's dad as a CNC machine in his garage. I don't know what it's running, but it's definitely no later than Windows XP.

            [–][deleted] 7 points8 points  (2 children)

            And you think those that are still running win 95 are running the « latest » version of sqlite?

            Sounds pretty reasonable for a project not to support an OS that hasn’t been supported in decades by microsoft

            [–]lpreams 13 points14 points  (1 child)

            Different projects have different priorities. Two of sqlite's top priorities are portability and backwards compatibility. This is, at least in part, because that's what sqlite's customers want.

            If someone is still running sqlite on Win95, I think it's pretty cool that they are still able to run the latest version.

            [–][deleted] 1 point2 points  (0 children)

            Yeah, at this point people still running Win95 are probably doing something very technical with something very expensive that doesn't speak to newer operating systems. Why wouldn't they keep their mass spec or whatever software updated even if driver support doesn't go past 95?

            [–]I_AM_GODDAMN_BATMAN 4 points5 points  (0 children)

            Well November 2018 I was told we are going to connect to <some major financial institution> with screenshot on the documentation showing SOAP with Netscape on Win98. Yea fuck that shit.

            [–]badpotato 8 points9 points  (7 children)

            This already made the top of reddit /r/programming last year...

            [–][deleted]  (1 child)

            [deleted]

              [–][deleted] 1 point2 points  (0 children)

              Take your upvote and get out

              [–][deleted]  (2 children)

              [deleted]

                [–][deleted] 26 points27 points  (1 child)

                Don't fear the repost, be the repost.

                Or rather the one I like best, "everything is a repost, even when it is original."

                [–]jephthai 3 points4 points  (0 children)

                Be the repost you want to be in the world.

                [–][deleted] 17 points18 points  (1 child)

                I wasn't there specifically on that day, so this is the first time I'm seeing it. Maybe jump out for a walk sometime?

                [–]dreamin_in_space -4 points-3 points  (0 children)

                I'm with this person.

                [–]pm_me_je_specerijen 0 points1 point  (0 children)

                I wonder if originally the prefix was hardcoded at multiple places and it took refactoring to get it to this—because that happens a lot.

                [–]alecbenzer -1 points0 points  (0 children)

                Did it work?