SEEKING WORK | Canada, West Coast | Remote | Senior Dev
My specialty is startups and early-stage - gap-filling and jumping in as a swiss-army knife. I have a business degree and decades of deep technical skills throughout the whole stack, from hardware design to UX.
While you're right in terms of technical prowess, there absolutely is a use case for BSD: it has a distinct culture with different values.
There's a large group of people in technology who don't really care how something works, as long as it works for their purposes. That's set against another group who will put up with incovenience in the name of what they think is "correctness". I genuinely don't want to suggest that either group is better than the other - but they are distinct.
Around 2010 I felt that the first group had started to dominate the decisions around the direction of the Linux userland. It was wonderful to be able to switch to BSD, which I sense is used and maintained mostly by the second group. Having an OS that is aligned with your culture is a sort of a "happiness by a thousand cuts": the defaults are already what you would have set them to, you don't have to declutter after the first install and what you do want is in the package repo, your niche use cases get attention when it comes to bug fixes because they're not considered niche in that crowd, etc. When the maintainers think the way you do it feels like they've anticipated your needs - it's presumably the same feeling that Apple-culture people feel when they use an Apple product; like it was made for them.
In a lot of ways, technology has mostly become a matrix for competing cultures. From that perspective it's not a matter of what performance edge the BSDs have over Linux, it's about whether there's a distinct enough culture to justify the costs of the duplication of effort. In my mind that distinction has only grown in the last 10 years.
I switched to desktop Linux in 1999, and then to FreeBSD around 2014. For me it's about culture. When you use software you're interacting with hundreds of decisions that the devs made, and the more they think like you the more they will have made the same calls that you would have.
Linux's success ended up bringing in a distinctly different crowd than it had when I first started using it, and when the software decisions started to reflect that evolving culture I just found myself going against the grain for a lot of common tasks.
Switching to FreeBSD was like coming back to your home country after being abroad - there were definitely nice things about the place you were travelling in, but it's still a relief to be back in your own culture. When you travel there's lots of random surprises because everything's built on a different set of values and assumptions - that's part of the charm of being abroad - but eventually you want to get things done and it's great to be back home where you can devote your whole brain to the task at hand.
That's an interesting viewpoint. I did enjoy the "culture" of BSD as you describe it. After a couple of years using it as a daily driver, there were things I came to expect from the system and seemed very intuitive. I may go back to it and find it just like riding a bike. A seat with my butt print already embedded in it.
I think we need to zoom out more, even. The focus on freedom is too narrow - freedom at the cost of becoming disconnected is a raw deal.
What we want is power. In the desktop era, having source code gave us power, so we associated the two and demanded the former - but this obviously hasn't translated to the cloud.
You can't download a Facebook profile and then re-upload it somewhere else and still be connected to all your friends etc. That lock-in gives Facebook power over its users: proportional to how much they need what Facebook gatekeeps (e.g. "all the news about my grandkids is on there").
When I want to stop using something, but I can't, that's power someone holds over me. In my case, that's Google search, GMail, and Android. I actually hate the latter two, and I've tried leaving them all, but here I am. What they've got in common is that they're all protective layers over what I need to stay connected to the outside world despite being highly dysfunctional (i.e. discoverability on the web, email spam, and phone hardware).
Because of this, Google's got me in a way that - because of open source - Microsoft never could. Whatever comes after open source needs to address that power delta directly. We need choice, but also connection.
I think we need more resolution when discussing that part, too.
To me, the main difference between Free Software and Open Source camps is whose freedom they're fighting for. Free Software was always primarily about the freedom of the end users, while Open Source was about the freedom of the developer. That's why OS developers prefer permissive licenses - it's about granting themselves more power, making their lives easier. Free Software requires an ideology buy-in because if you advocate for more software being GPLed, you're making your life as a developer more difficult - you're really fighting for the freedom for your users.
Ironically, and in complete opposition to the author of the discussed article, I used to be strongly in OS camp when I first started programming. I had dreams of selling games, and dealing with GPL dependencies was annoying. But over the years, I learned to appreciate the insight of FSF and pretty much prophetic writings of Stallman, and now I find my beliefs being increasingly aligned with those of FSF. Open Source of today is a paradise for developers, but it mostly serves companies that abuse the end users.
>> When I want to stop using something, but I can't, that's power someone holds over me.
To take that power back means you have to do things yourself, and that means manage your own data. Unfortunately that is too much to ask of the general public, at least with the free tools available today.
People are trading power for convenience, in part because most people don't have the power (know-how and/or time) in the first place.
I don't think it's too much to ask of the general public.
Think of WordPress -- free software you can either run yourself or pay a company to run for you. If you don't like a particular hosting company, you can click a button to export your data, and upload it with a new host -- or with other software that understands the WordPress export format. All of this data handling is manageable by most non-technical people. The process is hardly any different than downloading an email attachment and sending it to someone else, or uploading it somewhere.
It seems to me the biggest problem is either data not being exportable from these services, or the exported data not being machine-readable. If the format is machine-readable, developers can create alternative software that works with it; managed services can then develop around that software; everyday consumers can eventually end up with more choice, freedom, and power.
This problem is potentially solvable by creating better tools that allow people to have control over their data and still gain the benefits and convenience of the closed functionality on offer today.
Or perhaps the solution, at least in some cases, is at the protocol / standards level -- email is my favorite example of this.
The question is, in the general case, whether development of the tools that are designed to give users all of the power can keep up with that of closed tools managed by for-profit companies? It seems difficult to compete with products that are produced by the likes of FAANG.
Important clarification: this is not about profit vs not-for-profit. It's about control, flexibility, and lock-in.
I agree that, to really think about this problem, you need to keep zooming out. But I also know that programmers tend to reach for abstractions quite often, and you can go up and up and up that chain. I was trying to stay at this one specific level, and not zoom out too far :) Thanks for a great comment.
Not at all! That’s why these kinds of spaces to exist, to expand on the ideas presented in the link. And my goal here is to facilitate more conversion, so this is exactly what I wanted :)
What you really want is data formats and import/export functions across applications.
We've been over this with Microsoft Word making its format difficult to convert - stifling competition.
All these internet giants don't even have a file format for you to try and convert! Brilliant on their part.
Once you have your friend-list and stuff-you-posted as json, go ahead and switch to a different application - it'll be a 2 click import and you're set.
Regarding search and gmail - I fail to see how they have any hold over you, just use duckduckgo and one of the many other email service providers.
The "distributed web/internet" is probably going to be part of the answer, but that ultimately hits up against the ISP and data transport layer.
Part of that can be (in theory) worked around via free "mesh networking" - but that too runs into the ISP (well, backbone) for long-haul traffic.
That could be (in theory) worked around at a country level; I could imagine very wealthy people supporting such open and free mesh networking, and providing free long haul transport networking in some manner. That's probably all a fantasy though - the reality is that there aren't any good solutions for mesh networking between distant points at the moment (hmm - with enough nodes, vehicle-to-vehicle mesh could be a possibility).
The implementation of Multicasting (it's in GNUnet roadmap) can quickly make the mesh more efficient. In cities, wifi devices can start working together and manage bandwidth in a better way. Then a program can signal that, for example, 4 different wifis with GNUnet cover the same physical location. Somebody (network analyst hobbyist) could write to them and offer them to get a communal wifi that uses GNUnet superior performance while saving a lot on ISP services.
ISPs in many countries by law don't have the power to exclude things they don't like and competition prevents other abuses. If there are no laws like that in your country and not enough competition, you can zoom out to the problem of capitalism with incentives to gain monopoly and capture regulatory agencies. With such problem mesh networks are going to be monopolized in exactly the same way, because somebody has to maintain them to make it work well and with enough usefulness people would rather pay a subscription fee for a working service than rely on unreliable volunteers, and capitalists would rather buy everyone who offers the service early on than let competitive market happen and we are back to square one.
What I'm trying to say is that if mesh network is a solution, you have a much bigger problem than you realize.
It's a different mechanism with the same outcome. If the scale of a solution is so immense that only one or two of the largest corporations in the world can realisitically implement it, then you've got a duopoly and all the bad power imbalances that come with it.
Which is part of why I think freedom is the wrong goal. You're free to choose between Kodos and Kang, but the ability to choose conveys no power.
I think you're seriously overrating Google Search. Try DuckDuckGo or Startpage.com. They give you at least the exact same results as Google, and in many cases actually better, more up-to-date, or more fitting/filtered ones (except that Google image search seems consistently better, however). After all, these crawl the same web that Google is crawling, and there just isn't that much really new stuff out there these days.
Don't get me wrong -- I'm a big fan of DDG. It is my default search engine everywhere, and I go so far as to actively delete Google wherever I can.
But no, it's not the same. DDG uses Google on the backend, to populate their data. And that means there is a time delay between when Google gets the data and when DDG gets the data.
And sometimes you do want the personalization that Google brings to the table, to help you find the answers you're looking for faster. Precisely because DDG doesn't have much information about you, that means their search function won't be able to be as personalized.
DDG is fine as a primary default search engine, but as it stands, you still need to have Google around to provide the data and to provide a backup search engine in case DDG doesn't cut the mustard.
I don't believe you're correct. DDG doesn't use Google Search, and Google wouldn't be ok with them doing that - it only has an option to redirect to Google Search using !g. I have numerous cases where Google Search lately just doesn't cut it, and DDG's results are actually better and more up-to-date. Whereas with Startpage.com, you at least get actual results, rather than useless "108912398 matches retrieved in 0.000001 ms" type crap results for shovelling ads in your face.
For important recherche-type searches, I always perform an additional Google Search, but then again, the links Google gives you are personalized results which gets in the way of neutral recherche.
This is related to my comment on the Iron Cage article.
I think that public decentralized protocols and platforms can provide a base level of holism without being controlled by individual monopoly technology companies.
It is indeed stored on an Edsu server. The data format is trivial and completely specified, so switching providers should be straightforward (an Edsu app to do the data transfer would be easy to write, and I plan on writing one). If you're using your own domain (which is encouraged), from there you'd just update an A record to complete the transition, if not, you'd set up a transparent redirect on your old host to keep all your old links/permissions alive.
It's pretty old school in that if your provider loses a server and they're not doing replication/backups then there can be data loss. If they are, then a failover should work fine, with minimal loss and no corruption (the important stuff is atomic).
With localStorage, how it's used is up to the app (generally it'd only be used for keeping a token and maybe a block cache), so I wouldn't expect a loss of that to matter in most cases.
Thanks for the helpful reply! I brought up local storage because people were talking about some kind of sync and it sounded like the browser's storage would be used
Edsu's data store is content-addressed - i.e. everything is hashed and immutable from a storage perspective.
A great thing about this is it makes a lot of caching problems simply go away. So while there's no explicit support for local caches disconnecting and then re-connecting later, the underlying protocol gives any library wanting to implement this feature a lot of support for it.
Funnily enough, Edsu and git's data stores are very similar in that they're both Merkle trees. It means that they both have similar benefits of trivial checkpointing, automatically deduplicating revision histories, etc.
So if you squint enough, Edsu is kind of an "APIized" version of your setup :) So in addition to text files, it can also be structured application data.
My specialty is startups and early-stage - gap-filling and jumping in as a swiss-army knife. I have a business degree and decades of deep technical skills throughout the whole stack, from hardware design to UX.
More info here: https://heathjohns.com/