Ask HN: Which project does not have any good open-source alternatives?

226 points by safwan ↗ HN
Open Source is changing the tech industry. But there are still a lot of space where the closed source proprietary software is the only player.

Can you comment some of the space? So a person who is thinking about creating a new open source project can get the idea and start making a alternative?

282 comments

[ 2.8 ms ] story [ 288 ms ] thread
I think businesses with complicated Excel spreadsheets using macros written in VBA may be reluctant to switch to an open source spreadsheet.
There are some projects that have solutions, but not great ones. My definition of great is something that people with very little technical knowledge can set up themselves, correctly and securely. This is based on my experience, trying to show non technical people how to self host some things.

- File, email self hosted and e2e encryption has Nextcloud, but only technical people can set it up. There should be a happy-clicky thing that non technical people could set up and it would force them to do it the right way, because the right way is the easy way. By happy-clicky, I mean, they create an account on any VPS provider, then click "add service", say how big to let it scale to, define what domain name to use and they are done.

- Web based chat servers that scale. Again, there are web front-ends, like Convos and TheLounge you can put in front of IRCD, but non technical people don't have the patience to set up IRC networks and put web front-ends on them. If there was a happy-clicky solution that used RPC over HTTPS or something to negotiate clusters and all the person has to do is point DNS to it, then more people would self host chat.

- File sharing. If there was something lighter weight than NextCloud that could auto-scale in any VPS provider and could be deployed from each VPS provider, then more people would self host. I almost wrote something like this out of necessity but so many people were using dropbox, I abandoned it.

In summary, I think the gap that needs to be filled is to have more projects that integrate into VPS providers (by the VPS provider) and be part of their VM deployment system, so that anyone can deploy them easily. Maybe there could even be a business model around integrating 3rd party services into each of the VPS providers, following some non vendor specific standard, that all the VPS providers could set up. Linode, Vultr, AWS, Azure, Softlayer, OVH, Hetzner, Digital Ocean, etc... and no code specific to any of them. All of them should have a standard API that services can be integrated into and then easily deployed securely and correctly by less than technical people.

> There should be a happy-clicky thing that non technical people could set up and it would force them to do it the right way, because the right way is the easy way.

Absolutely! There should be a default configuration path that is easily accessible. That is to say, the non technical user can basically just click Install and answer maybe one question and everything else is automatic with good defaults. Any additional choice will just cause pain, because non technical people won't have the knowledge to make informed choices.

> By happy-clicky, I mean, they create an account on any VPS provider, then click "add service", say how big to let it scale to, define what domain name to use and they are done.

This is crazy if we're talking about non technical users. A non technical user won't know what a VPS even is. They won't know what a service is or why they should add one. They won't know what scale means. Is it the one in the bathroom? What's a domain name?

Supporting federation of hosting with various VPS providers can be useful for advanced technical users but any mention of it should be avoided for a non technical audiance. There has to be a sane default choice made already for all these questions.

Maybe just ask how big they want their mailbox to be with estimated monthly costs at each size? That will match up to the experience of buying things on the internet. Give a way to increase the size later and make clear they can do it and it should feel like a pretty safe question to ask.
I wasn't able to find an open source alternative to Newrelic APM for ruby.

Perforce is also something that's very useful for game development but relatively expensive.

That is really True. The APM world does not have any good open source alternative, Elastic APM is ok, but I think it is open core, not open source. Sentry is trying to build one, but maybe that will not be also OSI approved license.
Why’s perforce not replaceable by git?
From what I've seen, perforce is better for storing binary intermediates.

Git doesn't work very well with partial or subfolder checkouts which is something you would need if you want to store intermediates. In games intermediates can take multiple hours to build (like maps). Building the game from scratch every commit like it's usually done with git CI tooling does not work very well.

We also ran into wanting to give modders access to maps and materials but not to game code.

Perforce has a locking mechanism for files, which is important for the large binary objects that are used in game development. Git doesn't really have that concept, so it requires more out of band communication to make it work for that use case.

Git LFS might handle this, but it's just not something that Perforce shops have to even think about, train their people on, etc. It's just "there" and there's somebody that they can call and yell at if things go wrong.

> Git doesn't really have that concept

Of locking files? Sure it does; if two people modify the same piece of code, then there will be a merge conflict, and whoever's doing the merge will have the opportunity to reconcile those two versions. It's like a lock, but you don't have to think about it / explicitly lock and unlock the object you're editing. Combine this with rebasing (git-speak for "switch to the branch into which I want to merge and then try applying all the changes from my branch") and you end up with a pretty coherent idea of what changed and in what order.

Having used both branch-oriented (like Git) and locking-oriented (not Perforce specifically, but my current dayjob involves very similar version control schemes), I vastly prefer the former. Less ceremony around doing things in parallel, and less risk of development deadlocks (e.g. Alice locked A.cpp for editing, Bob locked B.dds for editing, Alice now wants to edit B.dds, Bob now wants to edit A.cpp, now Alice will have to revert her lock on A.cpp, wait for Bob to do everything he needs to do, then relock A.cpp and redo her changes all over again (probably also having to debug new things because of new bits and pieces Bob added) - or Bob will have to do so for B.dds - and cue fistfight in the breakroom).

----

That all being said, binary files are indeed a weak spot for Git, so if you really do want to version control your textures and models and sounds and such, then sure, perhaps a different VCS tailored for that use-case would be more ideal. In my experience, though, that tends to be an anti-pattern; generally better to keep code and assets separate (I'm well aware that tools/engines like e.g. Unity don't play the slightest bit nicely with that separation), using separate version control systems tailored to the specific content.

Sometimes it is desirable to not have optimistic locking like git. Often you want to signal that you don't want a file/asset modified for a period.
I think we're gonna have to agree to disagree on that. I've found that locking a file from any changes entirely almost always causes more problems than it ostensibly solves, and is a massive impediment to productivity on any team larger than a single person. The vast majority of the time it's entirely unnecessary anyway.
Yes, but you probably don't make a habit of storing music or video (or weird proprietary binary animation formats) that people are modifying in git.
Indeed I do not. If game developers (and/or game engine developers; looking at you, Unity3D...) showed similar restraint, then they likely wouldn't feel the need to tie themselves to 90's-esque version control schemes.
You're not really going to get away from large binary files in game development. They need to be version controlled somehow. Adding more layers of indirection for how that actually happens is just kicking merge vs file locking can down the road.
Additionally, you have artists and level designers working on these files. These people tend to be semi-technical, and confronting them with the full details of git is usually met with a lot of resistance.

I know some smaller studios that use git to some extent, and they tend to struggle with it on occasion - again, primarily in the art & design departments, mainly with binary files. All the larger studios and some of the smaller ones seem to use perforce. Publisher-owned multinationals might have their own proprietary systems, I don’t have any insider information there.

In any case, people who aren’t familiar with the requirements of gamedev like to argue about this. It’s like proponents of forks arguing with someone trying to eat soup with a spoon.

> You're not really going to get away from large binary files in game development. They need to be version controlled somehow.

Yes, but if they really can't be split up into smaller components, then there's always the option of using a different repository and VCS specifically for binary assets. Yes, it's kicking the can down the road, but at least it's kicking that can away from the actual code.

The game industry has a completely different way of working compared to other tech fields. Most of their practices seem old fashioned, or anti-patterns, etc. if you look at them from an outside point of view.

But they're trying to do something very hard: control both quality and deadline. It's not like an open source or enterprise IT project. The game has to be finished, good, by a given date. To do that they do many things, including slaughtering sacred cows about how things are supposed to be done. If hard locking saves them time by avoiding wasted efforts, by artists who are probably over-worked already, then what's the problem?

> But they're trying to do something very hard: control both quality and deadline.

Do you believe other tech fields are not trying to do the same exact thing? Do you believe that enterprise IT projects are somehow less beholden to both quality and deadlines than video games?

Controlling both quality and deadlines is what literally every (professional) software development project should be doing. The implication that game developers are somehow better about or more cognizant of this (let alone specifically because of broken development workflows) is pretty rich considering how frequently big-budget video games end up in development hell (see also: Duke Nukem Forever) and/or end up riddled with bugs (see also: literally everything Bethesda's released in the last decade or so).

(Not saying that enterprise IT is necessarily better in either regard, of course; bugs and delays are inevitable as software complexity grows, be it an RPG or an ERP...)

> If hard locking saves them time

It doesn't save time in aggregate, though. It maybe saves time for one specific corner case (conflicting edits on binary files) at the expense of slowing down everything else.

And if you're at the point where "conflicting edits on binary files" is no longer a corner case, then that betrays at least one of two dysfunctions:

- You're using some sort of container format instead of sanely keeping things split into separate texture/model/animation/normal/behavior/etc. files (and then - if the amalgamated container file is indeed necessary - combining it as part of the build process). If you're really running into a lot of cases where multiple people are trying to edit the exact same normal map at the exact same time, then...

- You've got a communications breakdown somewhere. You can band-aid over that with file locking, but that still doesn't address the issue of two people trying to independently edit something in the first place.

Absolutely agree with you when it comes to textual/structural information where merge conflicts can be solved easily. But for binary like formats, I feel often there is no way to resolve a conflict.
Merge conflicts are definitely not the same thing as file locking. At the point where you're getting a merge conflict, it's too late. How are you going to resolve conflicts in an audio file?

File locking is a way to communicate in advance that nobody should attempt to make changes to a particular file until the lock is cleared. Merge conflicts are communication in arrears (so to speak) and at that point, effort has already been wasted by at least one person.

> How are you going to resolve conflicts in an audio file?

By choosing one and discarding the other, or by creating a new audio file that incorporates both changes, just like one would do for any other file.

While I don't know if this exists, there's nothing theoretically preventing the creation of a diffing/patching tool for audio/video files, detecting insertions/deletions/replacements (perhaps by timestamp/frame rather than by line) the same way `diff` does for text.

> at that point, effort has already been wasted by at least one person.

A file lock doesn't prevent that time waste; there's nothing stopping someone from immediately overwriting it as soon as the first editor commits/releases the lock (in which case the first edit was a complete waste of time).

A lock prevents you from opening it to edit in the first place, without warnings that "so and so user is currently editing this, are you sure you want to open this as read-only?". This reduces accidental time waste (and computer systems shouldn't try to protect people from deliberately wasting their own time, because they probably aren't).
I don't quite think you understand how perforce works.

Locking the file is a signal not to work on it because someone else is modifying it. There isn't currently software that supports semantic merging of audio or video, so perforce says "someone is recoloring the asset, don't change the animation until they're done, or you'll just have to do the work again".

In the meantime, perforce prevents you from checking the file out. So you have to explicitly and clearly bypass your source control to do what you suggest, at which point someone rightfully yells at you.

> Locking the file is a signal not to work on it because someone else is modifying it

I know how file locking works. Like I've said before, my day job involves using a locking-based version control system. My disdain for locking-based version control comes specifically from having to put up with it instead of using something sane like Git.

> So you have to explicitly and clearly bypass your source control to do what you suggest, at which point someone rightfully yells at you.

And yet that will inevitably happen anyway, because someone's breathing down your neck to get that animation done and won't take "well I'm waiting for Bob to finish recoloring first" as an answer. Cue the aforementioned fistfight over whether Alice's animation or Bob's recoloring can happen first.

Or it'll inevitably happen due to the aforementioned risk of deadlock (Alice is tweaking animations in a different order than Bob is tweaking textures, and thus run into a situation where both are waiting on the other to release locks on files; cue fistfight).

I've seen both cases happen repeatedly. All of those cases would've been avoided had we used a version control system that used branches and merges instead of locks and unlocks.

> I've seen both cases happen repeatedly. All of those cases would've been avoided had we used a version control system that used branches and merges instead of locks and unlocks.

Well no, the failure modes would be different, but all of those things would still cause problems with branching and merging, mostly because you can't actually merge binary artifacts, only rebase.

And in a world where you can only rebase, locking actually makes sense.

> all of those things would still cause problems with branching and merging

The deadlock most certainly would not. One would get rebased on top of the other, in the worst case.

(In the best case, Alice and Bob would both be committing/pushing to their respective branches early and often, and could therefore look at each others' branches and see what changed between them; if you really want to emulate locking, you could do so pretty straightforwardly by checking if there are any changes to that file in commits outside of your own branch's commit history, and it should be doable to write automated tooling to that effect. All the "benefits" of locking without getting in the way of anything.)

> And in a world where you can only rebase, locking actually makes sense.

Even in a world where you can only rebase, locking is far more of a hindrance than a benefit, for the reasons already outlined.

> because someone's breathing down your neck to get that animation done and won't take "well I'm waiting for Bob to finish recoloring first" as an answer

As it happens, that's exactly the answer you're supposed to give. It's not like game devs have any shortage of things to work on at any particular time.

> All of those cases would've been avoided had we used a version control system that used branches and merges instead of locks and unlocks.

I don't think you're thinking this through all the way. If I have 5 different branches where textureA.png got modified, which one is the right one to end up with after everything is merged? Who is going to have to re-do work? Branches do not solve that problem, and without out of band communication, that problem is made significantly worse than if those changes were done in sequence (which is what file locking enforces).

Excel alternatives might be uncountable. Implementing spreadsheet basics is an advanced beginner exercise. But even Google’s billions only get it a distant second best because Microsoft is still working hard despite the lead. Sure Google and Apple can meet most needs most of the time. They’re good enough mainly because they are free beer. Not because they are open source. Obviously.

Don’t get me wrong. I’m a GNU fanboy at heart. But I dont believe in magically willing well engineered software into existence. It takes resources fungible with money. Projects with cash are at an advantage. Projects with cash, motivation and years of experience in the codebase are the ones that dominate. Not starting from scratch becomes a huge advantage.

A new project in a space needs to find an unserved market segment with resources fungible with money. That’s why successful developers’ tools are easy and CAD programs hard.

If you want to make an alternative, just make it and learn from what happens. Because what everyone wants is a free iPhone. Good luck.

I'm not an Excel user. Genuinely curious: Is it really that the alternatives are worse, lacking features, unstable, or does it come down to "they're not Excel", in that they're not a drop in replacement that can perfectly load and run every Excel sheet ever created.

Because that would be my gut feeling: Not interoperable enough, since some things just work differently, but not necessarily much worse. If you can't send your sheets to company b without being sure they can properly use it, it's worthless. Pretty much the same problem with Word.

The MS Office suite is far more user friendly than the alternatives.

I still use Libre Office on Ubuntu and I wonder why they chose to be so different. It would be great if they could completely copy MS Office in UI/UX, but there's probably some kind of copyright there right?

The thing is, OpenOffice (and by descent LibreOffice) did copy MS Office's UI/UX. Then Microsoft switched to the "Ribbon" interface, throwing all that shared knowledge out the window. Recreating the Ribbon in LibreOffice is an active development task, last I checked.
Is there any limitations on how much they can copy? Surely Microsoft have some of the design and specs locked down with patents
I don't recall the outcome of that "Apple claims ownership of rounded corners" lawsuit, but I suspect (being absolutely not a lawyer) that'd be the relevant case law.
This really depends on the Google v Oracle lawsuit currently. If Oracle wins then the remains of VisCalc will have a copyright claim against everyone...
Microsoft successfully sued Corel for design patent infringement related to the ribbon interface. Corel had a “Word mode” in WordPerfect X7. The damages were about a quarter million dollars. YMMV.

Oracle v Google is copyright as applied to API’s. Different laws. Patents expire more quickly.

A PM that worked on Excel in the late 2000s explained it to me like this: Most people use about 20% of the features in Excel - which should make it easy for competitors to copy, right? The kicker is that different people/industries tend to use a “different 20%” of the features, making the barrier to really compete very high.
> The kicker is that different people/industries tend to use a “different 20%” of the features, making the barrier to really compete very high.

The thing is that different job functions that are exposed to overlapping user bases in the same industry (and even office) use a different 20%. If it was just per-industry variation, it would be easy for industry-specific competitors to succeed, but the parts of Excel used actively by Andrew, who makes a tool that is also consumed by Bob and Carol are different than those used actively by Bob and Carol (which also differ from each other, and which each have their own users who rely on the tool and the features it relies on, even though they don't actively use the features.)

It was that combined with Microsoft somehow finding a way to make it so the 80% of the features that you didn't use didn't get in the way. Same thing with Word.
I am an Excel user and nothing beats it in terms of functionality and add-ons but it's the win32 level of usability that scores it for me, nothing comes close to packing so much in to such a practical workspace. Don't even get me started on Project desktop and some key add-ons!
One problem with sheets is that its external. Most companies I've worked for prohibit use of external drives/email/apps.
My impression is that Microsoft has sweated the details of Excel, the way that Apple sweated the details of the iPhone, so that it is extremely smooth and quick. This in turn makes it literally less physically laborious to use. Things like casually swiping the mouse across a range of cells to select them.

I suspect making it work this way requires an army of developers and some corporate will power. Having an inside track on exactly how the OS works may be an advantage.

Excel gives you the power of being a programmer without having to admit that you're programming. There are people who do absurdly impressive things with it, the CA-GREET model for estimating CO2 outputs is an excel workbook that took me a while to figure out how to even use.

But the barrier to someone using it is much less because it is gentler than, say, giving someone python code to do the estimate and expecting them to do it correctly. I think the interface familiarity is key.

Unfortunately, while LibreOffice is usually pretty good at all this, it's always just one or two peculiar difference in function calls that breaks it. It's pretty close, but just not interoperable for anything advanced.

It's a very effective form of distributed / peer to peer lock in.

Even if you individually (yourself or your company) would be willing to move to some decent alternative (they do exist), you will still be exchanging files with people who are more locked in than you (e.g. banks/finance), because of custom plug-ins, custom macros, etc.

If I wanted to compete with Excel I would start with a plugin / add-in or complement tool and work my way from there. Some companies are probably doing it. They're not really replacing Excel itself but capturing some of the value away from Microsoft.

For about 10 years I had a consultancy that in the latter half focused on B2B. One of the biggest qualifier pitfalls was thinking we could replace Excel with anything else. There are a myriad of reasons this fails to work. I swear some of them are near voodoo.

Google Sheets is a fit in some situations but the real facts are that Excel is amazing and when someone has been running core biz logic on it for a long time; that operator is someone you need to get to know before feeling too certain.

There's money in replacing that person and fucking the whole thing up so they are stuck with a long tail of consultants. I never ran that sort of business. However on a couple painful occasions I overzealously pitched what python and psql could do to solve a problem and later had to eat crow.

I know what that voodoo may be. Of the many failed "replace Excel" projects I've seen in the investment banking \ hedge fund world over 20 years, the usual mistake is that the focus was on the specific Excel model itself and not the generic building capabilities that Excel provides. An Excel model, i.e., the specific map from inputs to outputs, is typically fairly easy to replace with another tool. But what you've done is replace just the pants, not the sewing machine. Excel is the pants AND the sewing machine. And that sewing machine part is very hard to replace. So you can end up with the same model in C++, the very same map from inputs to outputs, but the user's ability to make changes and understand the model is greatly diminished. So they say "no thanks" and stick with the Excel model.
You summed it up perfectly. Jobs I successfully finished after a few bites of tragically not understanding involved working closely with the Excel department and making sure they could function as usual but extracting data to go into the systems and providing a net gain for those people.

At the end of the day, the people that do the magic that keeps everyones job paying aren't always (or nearly never are) the people that make the contract hire decisions. If you can give those people a tool that lets them 2x their work and be excited about it there's a big net win. If you want them to move to a statically modeled web interface with dynamic tables and they lose all their ability to do everything they know in Excel, everyone loses.

Portability and timing is key if you have to take on that sort of gig. Team buy in might be worth more than that. Never take somebodies sewing machine if you still want that biz to make enough money to pay you.

Agree. If you're selective about which bits and pieces you move away from Excel, and not religious about getting rid of Excel entirely, you can often have a great result.

What trips people up is that Excel models can be deceptively inviting of replacement ideas. They may have many workflows within them that are obviously much easier to accomplish with a different tool. E.g., grouping and applying aggregate functions; filtering; joining; filling missing data, especially with constraints such as filling forward EPS estimates but only into the same fiscal quarter; etc. You could look at an ocean of INDEX(,MATCH(...)) functions in Excel and discover that the same manipulation in Pandas would require just two lines of code. But it is easy to overlook the importance of seemingly simple calculation flows, in the same model, that are uniquely suited for being expressed in Excel, the universal language for describing calculations.

For example, I have seen data analysts move from Excel to Python, replacing their models as they go -- after being wowed by Pandas' data manipulation capabilities -- and then get bogged down for months trying to recreate what Excel's =RTD("BLOOMBERG.RTD","",...) already did for them. And when the portfolio manager tells them, "this number looks wrong", which happens often, they spend half a day dumping data into Excel and building a sheet that's illustrative for the PM.

>Excel models can be deceptively inviting of replacement ideas.

In my mind that's actually what is the root at any talk of "Why isn't there an open source alternative for X amazing program?"

As a wiser person than me once said, "It's easy to imagine so I imagine it's easy." Deceptively simple operations in things that have a long legacy of supremacy can just be near impossible to clone even if you can churn out a POC that looks reasonable in 20 minutes. That trap is a big hill a lot of us die on. At one point in my life I swore off ever doing ETL, and now I do it for a living. Seems like that's actually the world now. Sheesh. With MS embracing Python for big data, maybe the next big thing is just what it's always been... Excel.

Excel is the code and its interpreter. You don't want to lose the REPL flow for development, but maybe you can add an AOT compiler for production?
I worked six years in the IT department of a small domestic manufacturer, and deciding when a model had outgrown Excel and needed to be created as a tool (sometimes just a pretty interface for our ERP system) was one of our main tasks. I hate the hell that users can bring on a company when they misuse Excel but it will never go away.
We converted our excel wiz to do R. She will never return to excel for advanced stuff. The simple stuff could be done with lobte office (except for excel sheets that come from outside).
Honestly the suite of Excel + Powerpoint is incredibly hard to replace.

The entry level to power user path of Powerpoint and Excel specifically make it easy to jump in and then get very powerful usage from very quickly.

Once you see Apple Keynote i never went back.

But true for Excel

Powerpoint's for sending information to and between C-level folks. It's basically the only file format you can send them that they'll maybe actually open. Its use in actual presentations is secondary.
Free LIVE Training Webinar Reveals...

"How I Earn Up To $14,444 Per Day Just Sending A Quick Email To People Who Visit My Odd 2 Page Website…!

And How You Can Get A Copy Of Everything I Use To Do This For FREE…"

http://bit.ly/ILOVEMoney

Hurry Up Very Limited Time

FREE FREE FREE

What do people use for self service embedded analytics in SaaS applications?
What are the closed source softwares that are used for this purpose?
Octopus Deploy
It's free for small teams, and we can invite you to the GitHub org if you are a customer.
3D CAD software is light years behind in the open source ecosystem, but competing with Solid Works or Auto Desk is a enormous task... Although Blender seems to be catching up in 3D animation!
CAD software like AutoCad does not have any good Open Source alternative. As it is mostly used by Civil Engineers, I think when the Civil Engineers will motivated by the Open Source manifesto, they will approach making soemthing good alternative of CAD software!
The crazy part is how expensive CAD software is. AutoCAD can be thousands of dollars a year and was created [1] 37 years ago!

The age of the product would surely reveal the difficulty of creating a competing product...

[1] https://en.wikipedia.org/wiki/AutoCAD

CAD is far from just something for civil engineers.

It's used by mechanical engineers. It's what you use to design an engine. Good CAD software hooks up to the inventory system so that parts can be ordered automatically.

It's used by electrical engineers. Special CAD packages exist for integrated circuit design, magnetics, and antennas. For example a motor might contain coils of wire, permanent magnets, air, and various components through which magnetic field lines are directed. Eddy currents must be analysed.

It's used by chemical engineers. Pipes and tanks and pumps get laid out. Stuff like water hammer must be accounted for, except maybe the fluid is poisonous and explosive. Expansion joints for thermal stress and pressure changes might be important. Stress on welds must be calculated.

Openscad? Or that doesn’t do everything?
Openscad is a great project and I'm impressed at it's performance and small size, but it's completely unusable for non-programmers (99% of consumers of CAD products).

Almost all drafters and fabricators just want to interact with the 3D model with the mouse. Dragging and adding features.

Also 2D drawings are the main output of a CAD program, to build the designs from. Which Openscad doesn't provide.

Openscad is a completely different paradigm. It is a graphics scripting engine, not a parametric modeler. Openscad is good for what it does, but is a hugely different beast from a parametric modeling system.

In solidworks (to pick on the one I am most familiar with, NOT expert with) you can click on an edge and say "radius this". In Solidworks, you can have a master model drive dimensions down to other drawings, so that multiple people can work on different parts of the same system and get the bolt holes to line up. In Solidworks, you can say "give me 2% draft angles on these faces, and run an injection mold flow analysis."

Openscan is cool and I use it, but nobody would confuse it with Solidworks or similar.

FreeCAD (https://www.freecadweb.org) is also on an accelerating pace in terms of quality, although it still has a ways to go depending on your workflow.
Tried using FreeCAD for a simple project for parametric design, it became really slow to the point of being unusable. after only about 10-20 operations, Other than that it's pretty fun to use.

Fusion is orders of magnitudes better though.

ManyCam - software that creates a virtual webcam on Windows and thus allows one to:

- use one physical webcam in multiple apps simultaneously

- switch which physical webcam software is using seamlessly

- add live video effects

- use a static image or video file as the webcam source

(If there is something like this already, then I have missed it!)

OBS Studio has a plugin that enables virtual webcam output on windows. I’ve used it to create a more reliable webcam output from Blackmagic capture cards, as not all software likes to recognize the included webcam driver.

https://obsproject.com/forum/resources/obs-virtualcam.539/

I've been doing a lot of RGBd scanner stuff in the last few years. "Volumetric Video" as some people call it. The Intel RealSense platform has been a boon and the new Kinect with Linux SDK is cool but with some of the things I've been trying to do to build composite scenes from multiple devices or recordings I hit a wall that could be summed up as lack of virtual webcam support. I haven't hacked on OBS much but have used it quite a bit. This looks like a fantastic example to investigate for useful patterns to leverage.

Thanks for sharing!

Not completely on topic, but I fear we're rapidly losing many video games of yesteryear to time and their closed-source nature. Luckily, milestone games like Doom and Quake were open sourced some time ago.

There's reverse engineering of some codebases like Rollercoaster Tycoon, Diablo, and Super Mario 64, but for 99% of games we'll never see them outside of the original release or an emulator.

I learned programming mostly from reverse engineering open source games. Would be great to see this happen more.
I would love to see a pervasive culture of copying proprietary games as open source projects, which we see with a lot of non-game software. Open source should be keeping old games alive and loved, instead old games are being clawed back to re-monetize.

There is some open source games, but not many and all the old console games are simple and graphically/audio simple, all the old PC games, it's really only modern AAA titles that have tons of complex assets and would be hard to 'open source clone of X'.

photoshop. Gimp has the functionalities, but its usability is poor.
One time I started working on one open source alternative, but one big problem I found was that their PSD file documentation was incorrect at a few places, and it lags behind what is currently available.

And though Photopea[0] is not open source, it can mostly get things done for my minimal use-cases.

[0] https://www.photopea.com/

Give a shot at krita it's good for digital raster art. Not for image processing.
(comment deleted)
Despite how great Inkscape is, it's no where near Adobe Illustrator or Affinity Designer (and you can't run them on WINE either).
Illustrator is such an amazing tool. It's my go to when I need to get an idea out of my notebooks into the digital realm. Website flats, sketching turns of an idea to get into blender, general art.

I love the work that the Inkscape team has done and it does do some stuff that illustrator doesn't do easily but it's no where near a replacement for illustrator. I haven't looked but I suspect it's not in their mission statement to be a replacement for Illustrator.

Hats off to Adobe for producing the world class tools they produce so consistently for basically the length of my adult life but man I think it would be good if there was something that was aiming to be an open source Illustrator alternative.

palo alto firewall features:

apply policy based on AD user or group membership

block/apply protocols rather than ports (allow ssh doesn't care what port ssh runs on)

advanced url categorization. allow Facebook but disallow Facebook chat

etc

Open-source data storage is full of gaps compared to its commercial/bespoke brethren. To give just one example, consider multi-tenancy/QoS. Very few OSS distributed filesystems or object stores even seem to have heard of the concept, and those few barely scratch the surface.
Can you give a better example of what you mean? There are plenty of multi-tenancy file systems. Do you mean QoS by user or over the network?
> There are plenty of multi-tenancy file systems

Name one. What I mean by multi-tenant is that the namespace, security space, capacity quota and I/O quota are fully isolated and managed at the storage-system API, not via other facilities such as cgroups which aren't even applicable beyond a single-host level. Each tenant gets something that looks like a private service with predictable limits (appropriate for an SLA) regardless of what other tenants are doing, despite being on shared infrastructure. Commercial vendors like NetApp and all the "hyperconverged" crowd have support for this kind of isolation at the cluster level, as do some bespoke storage systems such as the one I work on at Facebook, but in the open-source world? Nada.

Ok sure in that context I can’t think of any. The closest thing I know of (with a limited understanding of what you mean) is NFS4.2.
Don't try to copy a closed-source project. Instead, invent something completely new (something that's 10x better than what it might "replace"), and make it open-source.
... and half your potential user base will say "what the hell is this crap, it is totally unintuitive and doesn't do the things i need it to" ... sigh.
Exchange. Imap and friends don't provide the seamless functionality that Exchange does. Contacts, calendar, permission sharing, group message folders. You just can't get close. I love OSS, but I have to recommend Exchange because their is no viable alternative.
This is true but happily I will never run it again thanks to office 365 and gmail.
Video editing.

There’s Kdenlive and OpenShot that are maybe the most well-established, but they we’re both very buggy the last time I dealt with them, and they’re nowhere near featureful as what’s available commercially.

I think we could benefit from a well-know MovieMaker equivalent. Something that isn’t featureful, but is reliable (read: doesn’t crash) and intuitive.

This. I so want something as good as Adobe Premier because I can't justify paying monthly for it, but i am always disappointed.
The low-end video editing market also hasn't been satisfied with closed source proprietary software either.

Yes, there are a lot of players, especially on the Windows side in the under $100 price range, but nothing I've used has been comparable to iMovie on the Mac. It's the one void that hasn't been filled for me since switching from Mac to Windows.

I've purchased Cyberlink PowerDirector, Corel VideoStudio and Premiere Elements, and I didn't find them to be very good. There's too much of a sloppy "kitchen sink" mentality to them.

I actually found Windows Movie Maker to be better than the aforementioned products, but that got discontinued without a replacement for quite some time. There's now a "Video Editor" application which is part of "Photos" that is serviceable, but I would gladly pay a Windows app that is akin to iMovie - simple, focused and functional.

I'am about to try DaVinci Resolve as an alternative to Premiere (I used Premiere in the past). But I don't want to fork $20 per month because I don't use it that often. A good opensource video editing software (or NLE non-linear editing as they call it) would be great.
Wait, isn't DaVinci Resolve a one time purchase of $299? Or am I missing something?
They have a free version thats good enough for a lot of people. I'm assuming they use that.
Free if you only use one GPU. DaVinci Resolve is a pretty solid choice.
I've heard several video pros swear by Blender that it works wonders as a video editor, but I don't have experience in that area.
I've tried everything that I can find and in the end I decided that my best bet was Blender. It's the only thing which is reasonably bug free and has a UX that allows you to get work done at a reasonable speed. I would say that even without considering bugs, the biggest problem with the free/open source video editors out there is that the work flow is truly awful for doing repetitive actions. I think the pull to be "easy for beginners" is just too strong. The applications turn into a frustrating exercise in precision mouse clicking. Blender's UX is actually awesome... but intuitive it is not, unfortunately. I think it too me 2 days just to configure it before I got started LOL.
It takes a bit of getting used to but VSDC does fill the Movie Maker spot pretty well. The hard part is that things are in a few menus, but once you got that down, it's pretty good.

Edit: Not Open Source though, woops. Still a good sibstitute since Microsoft doesn't host Movie Maker anymore.

Piggybacking on this, a version of After Effects for Linux would allow me to completely switch from Windows. There's a few video editors for Linux to rival things like Premiere but no proper FX/GFX editors with things like particles, audio spectrums, all the nice-to-haves.

Once I can create the flashy animation style stuff I regularly create and not just Windows XP Movie Maker-level animations, I'd pay any price and switch to Linux in a heartbeat.

Uber/Seamless/Postmates/Airbnb or any other middleman service. There's no reason why they should be getting away with extracting 30-40% of the revenue for facilitating a simple transaction.
And despite all that they’re still unprofitable. How would this be feasible as an open source project?
Because they're blowing insane amounts of money fueling unsustainable growth to satisfy their investors. This requires burning cash on user acquisition and hiring thousands of engineers to solve problems that they didn't need to have.

Craiglist is handling as much traffic as all of them with around 50 employees.

Doesn’t this ignore all the regulatory hurdles these companies have had to deal with to be able to be that middleman? Uber, for example, has done a whole lot of work, not all legal, to get cities to agree to let them operate. I suspect that a few kids in a garage trying to be the next Uber are going to end up stumped when cities tell them no (and they won’t have the lobbying power to make cities reconsider)
I'm saying that we could use an open alternative for existing services, not that an open solution should have been first. Uber spent a lot on lawyers and broke a lot of laws to clear the hurdles, making it much easier for someone to come in and provide a similar service at a fraction of the cost.

There's no reason why someone building an open solution couldn't work with the cities and get their endorsement.

I think this is something that seems reasonable at first, but in practice would get incredibly unwieldy. There is much more to what they do than connect buyers and sellers. They also resolve conflicts, navigate different laws in countless locales, and handle payments/chargebacks to name a few.

These companies are also taking a giant cut but still losing money. Granted they are spending money on things that an open source alternative wouldn't necessarily spend money on, but I don't think very many of them are anywhere close to being profitable even without the extra spending.

In some cases they did pave the way and "resolve" legal challenges, which makes it a lot easier for an open platform to come in and take over.

All of these companies are following the ridiculous 0 to 1 monopoly model of growth and are wasting a ton of money trying to capture any market that they can get their hands on. It's not sustainable and the gig workers are paying the price. There's no doubt that they're providing a valuable service that could have spurred growth for the middle class, but instead they're using VC money to undercut existing businesses in hope of building the next Google.

And yet with taking 30-40% of revenue (as you claim) Uber is still running at a loss.
Uber and Lyft take 35-40% of each ride, that's the number that multiple drivers have told me and this article confirms it https://www.businessinsider.com/uber-and-lyft-take-rates-hig...

I also know a few people at food delivery companies and they all take around 35% of each order.

Sure, but my point stands - 35-40% is not enough to turn a profit for them.
That's because they're buying growth. Their last quarter revenue was almost $4 billion, you can definitely serve millions of daily rides for way less than that.

My point is that you could have an open source version of these services that could be managed by local governments or not for profits.

> That's because they're buying growth.

That is the idea I guess.

> Their last quarter revenue was almost $4 billion, you can definitely serve millions of daily rides for way less than that.

How do you calculate this? Sure if you were just you with car, you could - but not sure this is exactly a workable business model without uber - if it was then people would presumably not use uber.

> My point is that you could have an open source version of these services that could be managed by local governments or not for profits.

You could have open source versions - but the source code is a small part of the operation - and I'm not sure why I would want to government to run it - or why people should not be allowed to profit from it. If the issue is that workers are being exploiter maybe a better option is to see if there is some reasonable regulation to be put in place or why there is such low demand relative to the supply of labour.

> How do you calculate this? Sure if you were just you with car, you could - but not sure this is exactly a workable business model without uber - if it was then people would presumably not use uber.

I'm not a 100% sure if I understand your question. What I meant was that you could run a marketplace web service like uber or airbnb for way less than they're spending now. The variable costs of processing those transactions approach 0 at scale, also would be practically free if someone wanted to host it themselves for their small town.

> You could have open source versions - but the source code is a small part of the operation - and I'm not sure why I would want to government to run it - or why people should not be allowed to profit from it. If the issue is that workers are being exploiter maybe a better option is to see if there is some reasonable regulation to be put in place or why there is such low demand relative to the supply of labour.

Yeah I agree. The OP asked about a good open source alternative and I think that this could work as an open source project and be deployed per town (or as a decentralized application).

(comment deleted)
Two that I have encountered:

Aspera: a high-performance data transfer suit, used in genetics and the film industry. I wrote a blog post about it a year ago and still get near-daily emails asking me if there is an open source alternative yet. QUIC may provide a basis for a solution, but it needs to be explored.

PDMS: software for planning, modeling and simulating oil and gas plants. Main two commercial suites are AVEVA PDMS and Autocad Plant 3D. AVEVA PDMBS is upwards of $1,000 per seat per month (!), so not feasible for projects which I have in mind (more on that in the new year). I'd imagine that Blender could be used as a starting point for a Free alternative, but I'm not sure. This is a tougher one.

[1] https://www.ccdatalab.org/blog/a-desperate-plea-for-a-free-s...

Open source projects tend to emerge when there is general access to the purpose of that project. You can't expect an open source project for Ocean-based Wind Turbine simulation or molecular synthesis of Organochloride compounds.

They're niche industries that require tremendous amount of upfront investment, in both physical assets to realize the utility of the open-source project, and knowledge-base required to operate the software.

On the other hand, you could have a piece of software that requires niche knowledge but its used literally everywhere - for e.g. OpenSSL. Not many people can contribute to it, yet it exists as open source. The point I am trying to make is that OpenSSL and your quantum hardware control software are very different things.

Something like Cabinet Vision also too niche? Don't think there are really any serious open source contenders in that space.
I actually respectfully disagree with this. In my travels, I have encountered many situations where very niche, industry-specific software is completely Free and Open Source, and I have encountered situations where commonly-used, widely useful software is proprietary with no Free solution.

On the Free side, I think one reason is the copyleft nature of the GPL. Another pattern indicator is how modular the software is - smaller bits are easier to open source than massive projects - and the general inclinations of the programmers, their bosses, and their legal teams.

That being said, I don't think it's unreasonable to expect a Free alternative to AutoCAD in 2020. (Pipes 3D is an AutoCAD extention). It's widely used software across numerous industries, much like Photoshop, Illustrator or Audition, but there is no Free alternative that I'm aware of.

A particularly annoying thing to me here is that AVEVA was actually originally developed and owned by the British government, but it was privatized (I think under Thatcher.) I think the value created for the tax payer would have been much greater to create free tools and software and make them available to everybody rather than just whatever pittance they got from selling it during a privatization firesale.

The reason of not having a open source alternative of CAD is not having proper domain knowledge. The people who have the domain knowledge are not taking that intiative that the early stage software engineers took.
Were these open-source projects result of academic research or someone's dissertation? If so, then yes, many niche packages, for e.g. from CERN are open source even though no one has the ability to go and build their own particle accelerator.

Another exception is public works paid by taxes such as Government open source projects.

And yet, in commercial industry where I've worked - it is hard to find anything that's useful and can replace internal software because there are no free alternatives. I don't expect these things to be out and open!

I think AutoCAD has an Excel like quality within a lot of industries. It is ridiculously versatile, but often used in a very primitive and risky way. And often you end up with a "drawing" that lacks any of the properties of high quality data. It is used like a really advanced pencil with a thousand nebulous features. That is not a good basis for an open source tool, it is just not well defined enough.
Aspera is among the most frustrating technologies I've been forced to use. I used to work at a video website where we would acquire film files from studios directly, and the amount of times Aspera would fritz out easily justified the time to try and develop and internal alternative. We ended up terminating all the Aspera connections at a service and transferring over direct datagrams for the rest.
Your article is really interesting! I did not know about Aspera before reading it.

I did not have any idea that changing protocol will have this amount of benefit in data transmission. Also amused that no one have not solved it in Open Source world.

The worst part is that Aspera is actually a proprietary fork of a Free Software project that IBM purchased and then strong-armed institutions into using until it became an industry standard.
Tsunami UDP is not a good replacement for aspera?
Have you tried GridFTP for fast transfer of large data sets?
tus.io can saturate network connections reliably and in a resumable way, I wonder what more you would require that makes Aspera stand out as the only way to fly?

(honest question, and full disclosure: tus core author)

What’s your scope? One obvious answer is Google search.