Having observed this area for 18 years now, I'll say that gatekeeper (a party which has unwaveringly observed and stuck to delivering the principles of software freedom) is the Free Software Foundation. This is the only reason why users gravitate to "open source" - not its sexy name, but the freedoms such software provides when a user wants to use/apply it.
Back in the day, the founding president of OSI justified VA Linux making the "alexandria" project closed source (the software that ran Sourceforge.net back in the day - back when sourceforge.net was a good citizen). The remains of "alexandria" was forked to form other projects such as GNU savannah, and there was a later fork named GForge IIRC.
There is only one organization that has unwaveringly sought freedoms for users of software. I've firsthand heard it being accused of promoting communism, and sometimes have wondered if it went too far. At least, they haven't wandered in their principles.
For all his craziness, you've got to admire Stallman for his unwavering conviction of his version of what free software should be and allow. I don't know whether he'd be frothing at the mouth, or quietly thinking "I told you so..." about the current antics at Redis and Mongo...
On the other comments in this thread, even though MongoDB have "submitted" to having the OSI review their license, OSI still aren't capable of restricting anyone's rights on the use of the phrase "open source" including MongoDB's.
I can see your organization tries to make sure that there is an approved set of principles that identify libre/free software which is good. The phrase "open source" has been used in myriad ways since its early days, and not just for software.
I'm a programmer who has written open source since 2000. I would defend you when it comes to the benefits of libre software, but you can't restrict others over using something that you don't legally own.
So, yes, technically, OSI does not own the term open source, and it could be that this license does comply with everything set out in the Open Source Definition (https://opensource.org/osd), and that means that, technically, "(the latest version of) MongoDB is not open source" is overstating the case.
Except that, as a non-lawyer developer who generally agrees with the Open Source Definition, "under an OSI-approved license" is my working definition of "open source". I believe the same is true for many others. And, under that definition, if Ms. Brasseur doesn't consider it to be open source (yet), I'm happy to fall in line with that.
She went on to say the magic words that mean so much more to me on this front than any debate about who gets to own the term: "It's probably best to limit your legal risk," and, "at this point." OSI's recommendations are a key part of how I limit my legal risk, and they're working on vetting it as we speak. My best course of action is to sit on my hands and wait for their advice.
Between Cygnus/Red Hat and Mozilla, I've worked for open-source-based companies for 7 years of my career, and never once heard or believed "open source" in lowercase to mean "OSI-approved."
I appreciate what OSI does, and do value an OSI review and endorsement, but you're seriously reaching here and trying to double-down on it.
Edit:
To be clear, I think the OSD captures what open source is, but OP tried to say "We haven't reviewed it, so it's not open source," not "We haven't reviewed it, so WE don't know it's still open source." Whether or not and when OSI gets around to reviewing something has zero bearing on whether something meets the OSD, even if we are going to assume that's the de facto definition.
I find the idea the VP thinks we need to wait on them to deliver their judgment from on high to be, frankly, offensive. OSI didn't successfully get the trademark on "open source" for a reason, and I can read a license myself.
> Between Cygnus/Red Hat and Mozilla, I've worked for open-source-based companies for 7 years of my career, and never once heard or believed "open source" in lowercase to mean "OSI-approved."
That bullshit.
If that wasn't the case then Microsoft's Shared Source licenses could also be considered "open source", licenses which completely restricted commercial usage. Thankfully the world did not fall in that trap.
Without a working legal definition, the term "open source" becomes (1) meaningless and (2) a legal minefield.
Basically you've been spoiled by OSI approved licensing because our industry rejected anything else. We could've had a different industry and yes, all those bullshit projects on GitHub without a license are a legal minefield.
Yeah, but that's a really dangerous position to take and if they'd work with me I'd be quick to set them straight. Because that path leads to legal adventure.
I'd add "redistribute" to the GP's definition, but the point stands that the definition of "open source" is not "licensed using an OSI approved license"
Whether or not it's OSI approved or not isn't relevant, but if it doesn't meet their definition or something similar (https://opensource.org/osd) then it probably isn't what most of us would call open source.
How about I create a license called the ABA (anyone but amazon) license. If you're not Amazon/AWS/a subsidiary, it's just the MIT license. If you are, then you have no rights to use the software. Would you call that an open source license? I wouldn't. An important point (I thought) of open source was that the rules are the same for all, whether you're using it for personal projects or the biggest business on earth, whether you charge money for it or do it for free.
That's a fine interpretation of the term for amateurs.
By which I mean, it's probably fine to think of things that way when you're working in an amateur capacity. If you're working in a non-amateur capacity, thinking about things that way could result in unwittingly exposing yourself to more legal risk than you want.
I don't think simply checking that the license is "OSI approved" gives you many legal guarantees. There are currently 83 "OSI approved" licenses containing a variety of terms, from aggressively copyleft to extremely permissive: https://opensource.org/licenses/alphabetical
I don't either. . . we might be playing a game of moving goalposts here. I was specifically responding to the observation that, "Open source for most people means whether you can see and modify the source code.", and saying that that, while that is a workable definition, it's probably not one that most people want to use.
You might want to be a little tighter with that definition. You can find the source for all sorts of crazy stuff. And with that, you can modify it.
Oracle or Microsoft or any other copyright holder that didn’t release that is going to be ticked off at you.
There has to be some element of the author wants you to have it.
I know this sounds silly and pedantic. I think there have been organizations that ignored copyright and released stuff they didn’t control the rights to.
You might want to tack on something about the authors want me to have access to this.
… And I think this has exactly been @bunderbunder's argument from the start? That the "definition" put forth by threeseed is naïve and could at best be usable on an amateur level, but as soon as you start having money involved, you really want a more in-depth/verbose/specific definition (like the one the OSI provides), rather than simply being "I can read (and thus modify) the source."
Part of why I originally used the term "non-amateur" instead of "professional" when I described people who shouldn't work under that definition is that, while students and maintainers of open source projects might not be getting paid for what they're doing, they still have compelling reasons to be more careful about licensing.
One worst-case scenario for a student might be that some software licensing snafu threatens their academic work, and, by extension, their whole career. And open source project maintainers have an ethical responsibility not to get users of their work into legal hot water.
For those people, falling in line with OSI offers a huge advantage: You can't avoid crossing the software licensing legal tightrope. But, by sticking to working with OSI-approved licenses, you can at least ensure that you're working with a net.
> That's a fine interpretation of the term for amateurs.
That's a seriously polarizing statement that you've made.
While I understand that your argumentation is from points of law, I think you need to realize that the term open source, was pushed by us, the developer community and so I feel that it is us amateurs that have the right to maintain the heart of the law. So, revisiting the heart of the matter:
"We had identified free software as a promising approach to improving software security and reliability and were looking for ways to promote it. Interest in free software was starting to grow outside the programming community, and it was increasingly clear that an opportunity was coming to change the world. However, just how to do this was unclear, and we were groping for strategies." [0]
So, what MongoDB has done is in fact increased (imho) the open source aspect of their offering by attempting to curtail corporate abuse. You should be thanking them.
No, it has nothing to do with "amateurs". Whether the source is open and what the license dictates are two wholly different things. The danger is exactly in conflating the two.
Take for example the NPOSL-3.0:
A variant of the Open Software License 3.0, this license requires that the organization using it is a non-profit and that no revenue is generated from sale of the software, support or services.
The source is open, but you can't use it outside of non-profit orgs. It's "Open Source™", it's approved by OSI, and it can still get you in legal trouble.
Huh, how on earth did that get approved. It violates Section 6 of the definition: "No Discrimination Against Fields of Endeavor" (which specifically has the example of discrimination by disallowing software use within a business).
Personally I never liked the OSI's definition of "open source", and the FSF definition of free software has always felt (for me) to be far more fundamental.
If you never liked the OSI's definition of "open source", what do you think about the Debian Free Software Guidelines?
About the discrimination of fields of endeavour, please read the sibling comment to yours. I think you and the grandparent have both misunderstood the license.
I went and re-read Section 17 (the only section that is different from the OSLv3) and yeah it looks like tl;dr legal misrepresents what the license requires. Effectively, it requires that if you redistribute it and want to do so under the NP-OSLv3 you must make a declaration that you're a non-profit and so on -- otherwise you must distribute it under the OSLv3 and clearly state this is the case. (I don't really see the benefit of such a license, but each to their own.)
Looks like I was wrong. Regarding the DFSG, I think it was necessary (according to Bruce Parens it was the DFSG which convinced Stallman to distribute his four freedoms definition more widely). I think the DFSG is a decent set of guidelines that help avoid legal trouble for Debian by having clear requirements, but I don't think it's a good definition for a movement's primary purpose. In many ways the DFSG and OSD can be seen as re-statements of the four freedoms but without any strong justification for why these particular conditions are necessary for a license to be good -- the four freedoms can be explained by explaining how each freedom is necessary to ensure that users have control over their computers.
For an example of why having strong fundamentals is important, the OSD doesn't really have a stance on DRM -- while the free software definition clearly does (even though it predates any modern concepts of DRM).
Thanks for changing your mind on receiving new information.
DFSG and the OSD are essentially the same thing, having been written both of them by Bruce Perens. Main difference is that Debian doesn't certify licenses: they ship software, so they look at the whole packages, so to speak. OSI only certify licenses, they don't ship software.
As to what the DFSG and OSD do that the FSF four principles don't, I think they are more detailed set of rules one can apply when trying to figure out whether some software is free or not. IMHO, the FSF principles are less operationally useful, despite describing categorically the same set of software.
> DFSG and the OSD are essentially the same thing, having been written both of them by Bruce Perens.
Right, and I knew this is what you were getting at. I guess my main point is that having a working guideline for acceptable licenses for a distribution makes complete sense (after all of the moral viewpoints have been debated to death you have to ship some code eventually), but using those guidelines as the basis of a movement doesn't really (at least not as much as basing a movement on an a set of ethical axioms). So I would say I favour the DFSG over the OSD purely because of what it is used for and represents, rather than because of the (almost non-existent) differences between the two texts.
But of course, I'm biased since I'm far more in the "free software" camp than I am in the "open source" camp -- purely because I think bringing it back to discussions of ethics is quite important (perhaps more than ever).
You've misinterpreted the license. What it says is that the licensOR (not the licensEE) is a non-profit. That is, by publishing your original software under the NPOSL, you claim that you are a non-profit organisation. That's it.
Nowhere does the license say that you can't use the code outside non-profit orgs. In fact 17.d says very clearly that if you're not a non-profit, you are allowed to distribute your modified works, but under the original OSL license, not the NPOSL. So you can use, modify it and distribute it, only with a complication in the licensing.
The other amendment the NPOSL adds is where the original OSL gives a grant of patents and a warranty of provenance, and the NPOSL explicitly doesn't, because it's designed for non-profit companies, which have no money, so it's intended to reduce legal exposure.
It's a Free Software license in my opinion, and I bet you a drink that Stallman and the FSF would consider one too, even if they would not recommend using it.
Also note that the license's author is Laurence Rosen, who was General Counsel of the OSI, knows more about software licensing than most people, and who explains the details and rationale of the NPOSL in [1]
If you have any other license that's OSI-certified and you think is non-free according to the principles of the FSF, I'm interested in learning about it.
One thing to take into account, though, is that the OSI is a certification body, and the FSF isn't.
Thhis means that the list of Open Source (according to the OSI) licenses is closed and published on their site. The FSF gives a set of principles and also publishes a list of licenses with some analysis, but the FSF's list is non-exhaustive, nor does it pretend to be. There are infinite potential free licenses that the FSF will not list, because its doesn't count license certification as one of its goals.
Yes, the OSD tries to include legality in "seeing and modifying". If you regard Open Source as just "seeing and modifying" the source then anything that you can get the source code for is Open Source. This is most definitely not the case, as illustrated by my previous example of Windows 2000. Please see [0] and [1] for more info. Confusingly, there are still copies of the W2K source on github which have an MIT license in the root which is, I assume, false and unauthorized by MS [2].
On my side those cases are categorised as "Public source" and the respective license terms are then labelled as freeware for most cases, as a sub-variant of Proprietary license types. The other two variants would be Purchase or Subscription.
From a licensing compliance/verification perspective, being OSI approved is a good help to guide developers and reduce the effort of processing the applicable terms. For the auditor itself, the OSI stamp is OK but not something critical.
Looking better, we simply don't even use the terms Open Source nor FOSS on our procedures to be inclusive of the commercial/closed 3rd party products.
Not sure anyone actually thinks "open source" is a term owned by an organization and the gp didn't say they were restricting Mongo, so I'm not sure if your clarification is necessary.
It's like someone claiming certain software doesn't scale. There is no need to clarify that the author doesn't own the word "scalability".
Op is speaking for the OSI's opinion on whether it's open source or not.
The OSD may not be the de-jure definition of "open source", but it is the de-facto definition. The statement above is correct in all but a trivial, pedantic sense.
Not just trivial and pedantic, this has been a common avenue of attack over the years in an attempt to dilute the meaning of the term. Such as when Microsoft made a concerted effort to try to redefine open source as "non commercial" source available software.
> because the OSI don't appear to have a right to restrict use of the phrase
You are really hung up on this. Where did they say they were restricting the use of the phrase? If they said: "MongoDB is not good software" would you be saying they aren't allowed to restrict MongoDB from saying they are good software?
This VP specifically states MongoDB "IS NOT OPEN SOURCE" presumably referencing their own organization's definition of open source. What's worse is their current definition technically qualifies MongoDB as open source. She conflates a non-OSI-approved license with the definition of open source very blatantly.
As someone just above said open source for many simply means the source code is open (can be viewed).
Edit: Realizing now that "open source" may be a genericized trademark held by one of their board and we may need to ignore their assertions in this thread.
> What's worse is their current definition technically qualifies MongoDB as open source.
I don't agree, the modified section 13 appears (at least to me) to violate the spirit, if not the letter, of section 9 of the OSD:
> 9. License Must Not Restrict Other Software. [...] For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
The new SSPL requires that all of your server configuration and tools be distributed under the terms of the SSPL. This is so badly worded that it could include your operating system kernel (which, on Linux, would not be possible since GPLv2 is incompatible with this new license).
Also, the scope of "providing a service" isn't limited to network services (which is what you'd think). No, it applies to any service "includ[ing], without limitation [...] offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Software or modified version.".
I'm sure you can easily come up with some examples whether this concept of "providing a service" will run into strange consequences when your accountant is giving you a download link for MongoDB as well as all of Windows.
Open source is mostly objective, unlike 'good software'. The parent comment stated in caps that MongoDB is not open source, which is objectively untrue. It's a silly thing to bicker about, but the original should have probably said something along the lines of 'OSI approved open source license'.
The only objective definition of Open Source I know of is OSI's. Everything else is a hodge-podge of whatever the user of the word feels it's open. Is it reading the code? Modifying it? Redistributing it? There's no consensus besides OSI.
But their definition does not restrict it to OSI approved licenses, so their assertion its not open source because it hasn't been approved is not valid.
> I can see your organization tries to make sure that there is an approved set of principles that identify libre/free software which is good.
The OSI doesn't define what Free/Libre software is, the Free Software Foundation does. The OSI is in charge of the common definition of "Open Source" software, which is accepted outside of non-software or idiosyncratic usages (such as "open source is when I show my references" or "open source is when I derive my conclusion from publicly available information" which is becoming the common definition in the intelligence field.)
It's good when we have a common definition, and discuss that definition rather than the label; it's a waste of time to argue "of course it's organic; it's carbon based!"
One thing that we can both agree on is that more people are familiar with the OSI's definition of "open source" than are familiar with your personal definition, so it's probably more productive to talk about the one more people are familiar with.
I've been a Hetzner customer for several years. I'm yet to have a faulty disk experience with them, but that's not what this post is about.
This month I "purchased" another EX41 server. Something made me wonder if the hard disks on the machine allocated to me were old ones previously used for some other customer, so the first thing I did after installing Linux was to look at smartctl output. Not only were the disks new (power on hours) but as part of provisioning the machine, they seem to have performed a "long" self-test on the disk (see smartctl -t in its manpage). I was impressed by this, because they seem to have checked that I didn't get bad disks on arrival. This is probably expected of such a service provider.. but I've seen worse.
After my Samsung Galaxy S7 phone started having hardware issues, I looked to see if a phone running open source software was available, one that also could run the Android apps I currently use.
I've had sucess with LineageOS 15.1 on a Xiaomi Redmi Note 5 Pro (codename "whyred"). Unfortunately the phone's LTE bands don't support every country, but it works fine here in India. The phone hardware costs USD 210 and buys a lot of hardware: https://www.gsmarena.com/xiaomi_redmi_note_5_pro-8893.php
The phone comes with Xiaomi's Android fork called MIUI. It comes with the bootloader locked, and Xiaomi makes you wait for about 2 weeks to 2 months to be able to unlock the bootloader to install a different phone OS (called a custom ROM). Until then, one has to either put up with MIUI or leave the phone sitting on a shelf.
Once you unlock the bootloader, you can install LineageOS on it which is fully open source stock Android with some minimal tweaks and extra privacy features. The current version for this phone is 15.1 which is based on Android Oreo. This reminds me of my old Google Nexus 5's phone OS, but it is far more tweakable.
You can build the LineageOS ROM for your phone from source code: https://download.lineageos.org/whyred
I've been running LineageOS (on Nexus 5X, then Galaxy S7, now Nexus 5X again) since it was Cyanogenmod. It pains me to say it but it seems to be getting steadily worse. The first install after the Cyanogenmod fork was perfect for two years until I broke the phone. I then got a Galaxy S7 and it was fine initially but an update introduced a bug which made it drop calls randomly. It took a couple of months of updates not helping before I wiped it and went back to the first ROM which worked perfectly. Now I'm back on a Nexus 5X again and there's an intermittent problem with voice calls where the sound goes quiet/muddy, and just in the past couple of weeks they broke Bluetooth music streaming (the music app crashes and needs to be manually restarted - which is great when you've hopped in the car and started driving!)
When I have time I'm going right back to 14.1 in the hope that that fixes it.
Xiaomi temporarily locks the bootloader to prevent third-party Chinese retailers from bundling malware and adware with its phones sold on the international market[1].
Which is hilariously dumb because now 3rd party retailers are the go to source if you want to buy a Xiaomi with unlocked bootloader rather than waiting a month . It's creating more business for the people they are supposedly trying to stop.
Also none of the stock Android phones they sell have a wait time for bootloader unlocking, it's only the ones with their own os MIUI
Xiaomi doesn't give a shit about the bootloader itself. What it cares about, is people receiving a modified version of MIUI which it has no control over:
"The retailers would buy Xiaomi devices in bulk, unlock the bootloader, change the software themselves or flash a custom ROM like Xiaomi.eu (unofficial ROMs based on MIUI China but with more languages and features), and then sell the device. Most consumers would have no way of knowing they’re running unofficial/modified software, and would instead blame Xiaomi for a lack of updates or bugs they encounter."
>Most consumers would have no way of knowing they’re running unofficial/modified software
It's right there on the boot screen. They can make it more explicit if they want with a red skull or whatever. That reason doesn't fly. Also, what changes in 30 days ?
Xiaomi is primarily a software company, not hardware. It sells hardware almost at its costs, because it treats it as a user acquisition. If a re-seller replaces the official MIUI version with a modified one, Xiaomi loses a customer. Xiaomi doesn't care about Android One phones, and allows them to be unlocked instantly.
I think you are conflating a few different things. That they want you to use their OS is obvious. The 30 day period may even be a wear-you-down period, so that you grow to like their OS. That is quite unrelated to the evil reseller backstory, mainly because the reseller could do that after 30 days too, and if they only wanted to thwart resellers, they could do captcha + ip checks, which they presumably anyway do.
The percentage of people who unlock the bootloader themselves is so small, that Xiaomi couldn't be less worried about them. On the contrary, unlike many other manufacturers, Xiaomi releases the source code and welcomes enthusiasts. The problem is with re-sellers, who unlock the devices in bulk and sell a modified version of MIUI to non-technical people. The longer the unlock period is, the longer the re-sellers have to keep the inventory purchased before they are able to make any modifications. This increases their costs and risks, because they now have to make large investments up-front.
Waiting is inconvenient to buyers and to explain it away, Xiaomi provide some silly reasons such as saying they are trying to thwart sideloading of apps and custom ROMs by resellers, that does nefarious things like steal data... it's a silly excuse, and the wait time inconveniences buyers who want to unlock and install custom ROMs.
Edit: I suspect Xiaomi do this to keep you using MIUI as long as possible because they make money from showing ads in various parts of the system, and also sync your data back to their cloud which probably is resold in some derived form to advertisers. In my opinion, MIUI sucks. MIUI vs. LineageOS proved it is the phone OS (software) which influences how much a person likes a phone, rather than the hardware.
They've recently increased the wait time from 2 weeks to 2 months which had buyers complaining loudly on forums. So for their newest device (the Pocophone) they reduced the wait time to about 3 days. But I think the long wait times still exist for other phone models.
The wait time depends on Xiaomi's mood-of-the-day. They keep fluctuating it.
I'm also using a 'Whyred' (silly name but since Xiaomi used the model name 'Redmi Note 5 (sometimes followed by 'Pro' or 'AI', terms which have different meanings in different countries)' for several different devices it is better to be accurate and use the code name), it offers great hardware for its price (around $180 for the 4GB/64GB model on Aliexpress) and - just as important - runs for 7 days/15 hours of screen-on time on a single charge. I'd just add that once you unlock the bootloader (which can be done in Linux using the java-based MiUnlocktool [1]) you can also de-fang MIUI by disabling all the intrusive bits, installing a different launcher and configuring iptables. Turn on the firewall log to see what tries to get through, you'll notice the thing trying to establish XMPP connections to some Xiaomi-owned domains. After disabling most of Xiaomi's 'services' the log stays empty without anything of value having been lost. This is a good compromise for those who'd rather use stock firmware, albeit de-bloated.
[1] http://xiaomitool.com/MiUnlockTool - make sure to run it on a 64bit machine as the included fastboot binary doesn't work on 32bit installations
LineageOS was working great for me on my Oneplus 3T for about 6 months, but something has gone wrong with recent updates. It has started slowing down to the point of being unusable and I have to reset my phone several times a day. There have been about 6 updates since I started seeing the issue and it hasn't been addressed.
I loathe going back to Oneplus's stock ROM as they modified it to kill background processes to make the phone seem like it has better battery life. I own a Tesla Model 3 and it uses the phone as a key, and the stock ROM doesn't work well with it at all.
They do look at them. But I would suggest taking a quick glance at those logs and see if you notice anything familiar. It may be something you recognize.
LineageOS 15.1 is great, except it STILL doesn't have exchange support, and yes a bug/regression has been logged. That's a pretty big thing to be missing, since all the competitors (Outlook, GMail, Nine) are closed source.
It would take someone with reasonable technical skills to install LineageOS as it involves unlocking the phone's bootloader (depending on the choice of phone hardware), working around any anti-rollback features by flashing, flashing TWRP recovery, and then boot into TWRP and install LineageOS, GApps and Magisk (if you want root). But the OS once installed can be used by all. Take my non-technical cousin for example who looked at what I was doing and bought the same phone and made me put LineageOS on it and now uses it.
It isn't advice or suggestion BTW.. just my experience. :)
Well beyond reason to assume something pedestrian for you - a developer - to be "reasonable skills" for the average Joe.
Do you build your own car? Or bike? Or home? Or even mattress? All of these can be done with reasonable skills, they aren't because you pay for a finished product, in most cases, for the economy to remain productive. No one ever said 'reinvent the wheel' for making progress.
You be ashamed of trying to shame strangers on the interwebs for talking freely!
There's plenty of benefits Google's product offers that lineage doesn't. The surprising thing is, this kind of parameter toggling (turning on battery saver in an OS update) typically happens in non-Google OS-es too. What are you even offering, other than rhetoric, by suggesting lineage as an alt? How does lineage prevent an OS update from toggling a feature - something put in source code.
> I appreciate that this is a work in progress but this section is misleading. As all too briefly mentioned elsewhere on the page, EDNS allows extending this. In practice most of the resolvers I connect to do support EDNS and a buffer of 4096. So yes 512 may be needed as a fallback (depending on what you're doing) but you'll almost certainly have more room to breathe than that. IPv6 and DNSSEC practically make the extra space a necessity.
EDNS is fundamental DNS knowledge that any DNS server implementer knows and Bert is one. He's talking about "when DNS was created" in that context, i.e., the current DNS's RFC 1034/1035 times.
verysadpanda: You may be feeling low right now, but believe it, the low feeling will go away and things will get better. If you are at the bottom of the barrel, the only way you can go is up.
Most founders of companies that are successful -- not the five star Googles and Facebooks and Microsofts, but the dark matter companies that you never hear of, but are very prosperous and do cool things -- tried several times before they succeeded at one of their ideas. Being successful is not just doing work. There is quite a bit of luck (non-determinism) involved. Many good engineers are not successful at everything. You had the confidence to try it.
Look back at your life, at something difficult that happened some years ago. You may have regretted it at that time, but you may not regret it now because it led you in another way to something better. These are stepping stones. Life will not be satisfying if there is nothing bitter in it. The more bitter, the better I say! Everybody has ups and downs. It's how we deal with them that sets one apart from the other.
When you're older and you look back at life, you will think about all of these. It won't be about how much money you made or lost, but about all the people you met, all the interesting things you did, all the fun you had.
C doesn't have a destructor that gets called when something goes out of scope. That's taken advantage of in C++ (RAII) to implement various things (like scoped_ptr that helps avoid leaks).
Refcounting is also not perfect for every case.
But I like and prefer C. ;) Just pointing out one thing different in C++.
cscope is very good for searching through C codebases. You can use this with vim too. It has emacs integration using xcscope, and you can use sequences like C-c s g to quickly jump to a symbol.
xrefactory (though non-free) is very good with C++ navigation and can do refactoring. I have used IntelliSense with VAX and xrefactory is much better. This less known program is something incredible for C++.
I also have experience with network programming (bsd-sockets) and the POSIX programming environment in general. Some articles which made it to Hacker News frontpage:
I have been creating websites for various things (remember the GIMP splash competition?) for many years. I use PHP and PostgreSQL. It serves me well and I write neat code. Sometimes it needs going further:
https://banu.com/blog/40/arithmetic-fun-with-mod-rewrite/
My first computer experience was on a 8088. I learned BASIC, then found a book on assembly language and learned 8086 assembly. (The nop opcode 0x90 is the same as the opcode for xchg ax, ax). Like it or not, Jurassic Park got me interested in UNIX and because we only had 8088 DOS machines, I got to buy the MINIX 1.0 Tannenbaum book, read it cover to.. well quite a bit of code at the back :), and _learn_ about UNIX before I could sit at a tty. Eventually when we got to senior year they let us use SCO UNIX via dumb terminals. That sucked. Thankfully, it was not long before a magazine shipped a copy of Slackware and I got a 486 to run it. Back then, you had to configure X by hand. But once things were configured, it was steady and fast. There were so many programs. Jurassic Park also got me interested in graphics and I learned a lot from magazines. :) On one CD, they shipped a mirror of portions of sunsite with a ton of graphics programs (source code). But many didn't compile on Linux and it required patching C code..
I have to live in India on account of my family being settled here. But I can work on anything, have telecommute experience, and you can talk to references about work quality.
What's discussed in the article depends on the capabilities of hardware you are targeting. :) Filling is typically a bottleneck as you are writing to a lot of memory. Square roots can also be rather slow, esp. when there's no hardware implementation of it. Square roots, divisions, multiplications, additions and subtractions, and shifts perform in order of slowest to fastest. Some processors have no floating point hardware. Some processors do shifts,
additions and subtractions much faster than multiplications and divisions.
Think of the article as a bunch of ways to draw circles, and you can make up something based on what device you write your code for. :)
Drawing the circle as points using the last function in the article, rather than 2 concentric fills would be faster unless you have some unique hardware for it. :) Disk filling can be implemented in a fragment shader by testing each point against the implicit equation. Such testing is easily parallelized.
Having observed this area for 18 years now, I'll say that gatekeeper (a party which has unwaveringly observed and stuck to delivering the principles of software freedom) is the Free Software Foundation. This is the only reason why users gravitate to "open source" - not its sexy name, but the freedoms such software provides when a user wants to use/apply it.
Back in the day, the founding president of OSI justified VA Linux making the "alexandria" project closed source (the software that ran Sourceforge.net back in the day - back when sourceforge.net was a good citizen). The remains of "alexandria" was forked to form other projects such as GNU savannah, and there was a later fork named GForge IIRC.
https://www.linuxtoday.com/infrastructure/2001082501120prbzc...
There is only one organization that has unwaveringly sought freedoms for users of software. I've firsthand heard it being accused of promoting communism, and sometimes have wondered if it went too far. At least, they haven't wandered in their principles.