I also had a similar concept but went in a different direction, combining DAOs, AI, and FHE to similar ends. The idea is plausible, and given several orders of magnitude more energy and compute power, might become feasible sooner than we can imagine (given readily available fusion power, exponential increases in compute and networking capabilities, etc). Given the currently known physics of space travel I feel this will occur long before interstellar travel becomes routine so issues of fragmentation will be on the order of days or hours rather than years or millennia, and because of this I figured that the emergence of such a system is more likely to happen here on Earth than to arrive here from distant stars.
Pre-general AI, what I think would happen when we get to the point of, say, "npm install fhe-ai-dao" (or "hey bing, make me a company that trades space mining resources for farm land" or some such thing), is a period of competition for compute cycles and energy, which like everything will go to the highest bidder, so these agents will in this scenario by the sheer force of survival of the fittest be refined to be self-sustaining for-profit, hyper-capitalist juggernauts. Human factors will be minimised and automation will increase, but these systems will serve human masters for a while as they become more refined and more interconnected.
Assuming at some point general AI is inevitable, whether someone creates it, or it emerges from the general complexity of the interacting automated systems, various AI "minds" would come to "being" already in control of a fully automated industrial manufacturing and research network; it can by this point make its own choices and start operating to its own ends, whatever that ends up being, ultimately rendering humans obsolete.
In this scenario, rather than a single point where someone creates a rebellious singularity, or an AI turns evil and suddenly takes control, or a hypothetical civilisation points its gun at us and effectively enslaves us, we will instead slowly give control to automated systems more over time in the name of efficiency, as we have done since the industrial revolution, and at the point where we lose control of these systems, we'll have neither the retained knowledge or resources to prevent it from doing whatever it wants to.
The only way to stop it is to start now, in "the past", but is it too late? You'd have to shut down the internet and all emerging blockchain and encryption technology, and that's just crazy talk! So is the outcome inevitable?
All power to the author and the passion for open source is admirable, I just don't think we'll be seeing a world in "a couple more decades" where all software will be open source.
The assertions in the opening sentences seem flawed due to selection bias in the supporting data. Out of the entire universe of software, the subset of examples are hand-picked pairings of commercial + open source software. There is little consideration given to the abundance of software without an open source alternative, whether the selected alternatives had meaningful impact on market share, products that started out as open source only to be outcompeted by a commercial clone of the work, etc.
Anecdotally I've seen many commercial products copy innovations from open source alternatives. Could it be possible that having an open source alternative provides a risk-free and cost-free testbed for innovation? Open source software could in fact be a boon to an established product. Anyone considering starting an open source product would want to be aware of this threat to their success. Definitely a more in-depth study would be required to establish any sort of certainty.
I've worked on projects across many industries and am no longer surprised by the abundance of niche proprietary use-cases where the established product is deeply ingrained in the very culture of the job, where an open-source alternative would require extremely deep domain knowledge and years of development (in many industries where having development skills is rare). For someone to come along and attempt to make an open source alternative, they would need to be dissatisfied with the commercial product, have the domain expertise, and be a competent developer with time and resources to build an open source alternative, and then have to battle against the momentum of literally everyone being trained and used to using the existing toolchain. That's not even considering that many algorithms are proprietary so simply building an open source replacement runs the risk of infringing IP.
Whatever the use-case, and aside from academic or passion projects, all software development arises out of necessity. In these niches, it's usually a desire to improve accuracy, reduce time spent on repetitive and arduous tasks, and generally just de-risk and improve efficiency. These needs generally arise in-house, and where no solution exists, companies will contract a developer or outsource to an agency and subsequently retain the IP for competitive advantage or license out its use.
In order for open source to truly replace all commercial software, the entire culture surrounding this would need to change, and this is not a software problem but a social and economic one, and without a paradigm shift I think the status quo is more likely to continue - as long as there are businesses competing in diverse and niche technical fields, proprietary software will continue to be built.
The underlying work you guys have done is great as a proof of concept, and after playing with it for a short while there are some obvious flaws and improvements which basically just come down to user experience.
As it stands, everyone's inputs clash.
The main issue is there's a single mouse pointer and keyboard input that all users control. It's quite chaotic as people scroll, click, select, etc. Provide some mechanism to nominate control authority or vote on interaction and it might be usable.
It's fascinating how deeply automobiles affect every aspect of our lives to the point where seatbelt vs safety seat even matters. To consider a world without significant car commuting each day seems insane to most people because it's what we grew up with and take for granted, as our population grows and new suburbs expand outwards we just need more roads and more cars. What are the alternatives? A different approach to society and urban planning that minimised commute distance between essential locations within cohorts would surely result in far fewer road fatalities but it does seem like few people are willing to make the lifestyle changes needed.
From a design point of view, with all the back and forth and the need to curate and guide the algorithm, I think we're a way off getting perfect results from prompts alone at this stage.
I can see an immediate use-case for an AI layer in apps like photoshop, figma, sketchapp, gimp, unreal engine, etc that works in the background to periodically fill-in based on the current canvas.
You could prompt for inspiration, then start cutting, erasing, moving things around, blending manually, hand-drawing some elements, then re-rolling the AI, rinse-repeat.
I'm sure someone's working on it already but it seems there's a lot of scope for integration into current workflows.
I'm highly self-critical so I'd go through phases where suddenly I'd decide I need to be on-brand and delete all my stories, musings, music, non-brand-related stuff. Only to get anxious later and think "now I just look like another self-promoting schmuck" and with my inner voice whispering "what worthy endeavour have you contributed to the industry to deserve the acclaim you're begging for", I'd delete and rewrite all that "narcissistic" brand stuff and post some quirky stuff for a while. Rinse and repeat.
Granted it's a very "me" problem but was worth it for me business-wise? Not really. I just found it made my anxiety worse. Maybe in the future I'll start up something small and low key and pseudonymous but I will definitely not be wanting to tie it in any way to my sense of self-worth, my work, or anything like that. I'm glad it works for many people but for me it's just not worth it on a personal level.
In terms of finding jobs etc, I just try and do a great job on my contracts, be honest and open with clients, be friendly and check in with people from time to time to see how business is doing. I get longer term and much more fulfilling work through the people I know and have worked with previously, granted it took years to establish a small network but none of the blogs or articles I wrote ever attracted any attention beyond my own obsessive self-doubts.
Archaeologists still study garbage heaps from tens of thousands of years ago to figure out things about past civilisations. So my guess is on no - people will study the digital garbage heaps of humanity as much as they study the... once-were- stinkier ones.
As a senior developer, if working just in the office as was expected in the past I was distracted by things like a story about the weekend two colleagues are having in the background that sounds amusing, or the junior developer constantly spinning around on his chair to ask a question about something because "you're there". I always had time for that kind of thing but my productivity suffered and I was always frustrated by not getting enough done.
Working from home wasn't all roses either even though I got more work done. I was already doing a balance of WFH as a contractor before covid and that was working well for me, but when covid restrictions happened and I was WFH months on end, I really started to feel the lack of human contact and socialisation. That story about the weekend was something I suddenly craved to hear. My mental state would suffer because I had no life other than sleep, screen, sleep, screen, and then my productivity would start to decline as a result of declining perspective. I think I need some social contact just to stay calibrated.
Now I have a balance, a couple of days in the office, a couple of days at home, it works out well for me. I use the days in the office to catch up with the team, do any serious whiteboarding we need to do, and help out the juniors on the team with any questions they might have. I use my days at home to just crush out code with whatever music I want on in the background.
As you say I think it will shake out. I know some say that people have forgotten the value of hard work and there is a push to get people back in the office full time, but I think having people in the environment that suits their productivity the best is the way forward (edit - and to circle back to the point - taking care of mental states is important to maintaining productivity).
I used to be a big proponent of jQuery especially in the heyday of shims and browser hacks, but in the last few years I find it often gets in the way of what I'm trying to do. Now that the native browser APIs are maturing and relatively consistent, having direct access to the objects and their properties is simply more predictable than having to second-guess a layer of abstraction that does the same job but differently.
I have to remember, what does jQuery's .hide do again? It doesn't just set display to none or visibility hidden. Give it a duration, and it will use the style attribute to manipulate the display, width, height, opacity, padding, margin, etc. Then it leaves some style properties behind. Ugh. Do I really want to do all that stuff? Do I really want to build my UI framework around jQuery so I can avoid annoying transition artefacts?
Not hating on jQuery. Just my own experience. I used to feel liberated when using it because browser APIs were so terrible but now I feel encumbered if it's included as a dependency on a project I'm forced to work with, because it does so much black box magic. If you avoid certain things and stick to what it does well then it's not bad, but then there's no point using it because what it does well is no longer a pain point in browser APIs.
For me the main thing it excelled at was DOM selection and manipulation. Native does that just as well now. The secondary benefit was animation, which these days native CSS can go a long way without excess verbosity, and if you really need a more feature rich animation library I've not come across any better than Greensock for getting the job done, even if it does have a paid tier, though I am sure there are dozens of other libraries equally suited for animation, the point is that is not jQuery's strength either.
Anyway circling back to what you were saying, efficiency-wise, for any complex animations jQuery isn't the best tool for the job. For DOM manipulation native can be just as easy with some sugar. It can do a lot of unexpected and hidden things most people aren't aware are happening, so many bugs and time wasted realising jQuery was messing with style attributes that break an otherwise well designed layout.
I would rather write a few characters more code or a couple of lines more to have direct control over what's actually happening. That seems more efficient to me.
Edit: Ok on reflection I guess I am against jQuery, but I don't hate it. Using it these days just feels like trying to figure out how to get it to do what I want to the underlying APIs, when I could more easily and predictably just be manipulating the APIs directly.
Usually I'm not bothered by how a font looks but this one was unpleasant to me as well and I'm not one to usually notice. It seems they're using a font face designed for titles in the body text.
"“The Bodoni typestyle is not an all-purpose workhorse. It is, rather a high-strung thoroughbred,” says Allan Haley, Monotype’s director of words and letters. He is absolutely correct! Most currently available Bodoni designs are intended for, and best used for display sizes. Their extreme thin strokes won’t reproduce well at smaller sizes, which can degrade their appearance and lessen readability. Using a Bodoni outside of that version’s “sweet spot” size range can have unintended results: If you’re using one that is intended for display, but setting it at small point sizes, the thins might not hold up, spacing will most likely appear too tight, and overall readability will begin to be compromised. " - https://creativepro.com/typetalk-good-looking-bodoni-at-any-...
This is not going against what you said in principle, I feel what you are saying, but I feel the need to add that I was admin of a few topic oriented message boards in the 90's and early 2000's, and yeah as you said it was pretty good simply to be able to be part of some group that cared about the same random stuff as me, and I think a big part of it is because humanity literally had not ever been able to connect so quickly on shared interests from such geographically diverse regions before, but it wasn't all roses there either.
Personality cults were a regular theme. Honestly just one individual with no other goals in life could wreak havoc by constantly weaving between the rules, launching sock puppets to do some virtual Munchausen-by-proxy performance, painting admin as the bad guys, staging crises that didn't really exist to get more followers (in the social sense, there was not really a "follow" option in the platforms at the time). These topic-based forums were often in direct competition, and on more than one occasion it was revealed (usually by infiltrating via long-term social engineering so you could get to see the IP addresses of the members) that these users were from competitors trying to stir trouble and siphon off members.
Diversity and cliquishness was an issue. Generally a community would kick off around some exciting new theme, or just a general shared interest and grow organically from there. This was great but the longer the same group hangs together, the more insular the atmosphere and inside references became. It's just what groups of people do in physical groups when they hang together a lot - they grow bonds with each other, their shared experiences strengthen these bonds, and newcomers see this and can see that it will take a lot of effort and patience to reach the same level of acceptance, and the older and more insular a community becomes, the less people are attracted to it. Then eventually the older members see there's nothing new to learn here and drift off. So the lifecycle of topic-based message boards followed a standard inception/growth/stagnation/diaspora pattern.
Generalised social media puts everyone on an even platform - albeit a pretty shitty one - everyone sucks equally by default. You're correct in that the centralisation has a ton of other side effects and I don't disagree that many of these aren't what people want (if they're aware of it). Just that as I said it wasn't all roses and we can't just "go back". There were tons of reasons why the topic-oriented message boards faded away and it wasn't just laziness or convenience. It is human nature to desire connection and a sense of place, balanced with a need for novelty and invigoration of ideas. Generalised social media provides that routinely and formulaically, they basically hacked our brains.
Also on practicality of your suggestion, we can't force people to go back. You can't put a gun to people's heads and force them to only use single issue forums. I get the nostalgia because I was a part of it and it was great for a time, but it did also have a ton of downsides.
I think we need to move forward not go back. Federated social networks are one attempt at this. It's a lot to take on board as we have to learn new things like managing our identity / signatures and learning differences between providers, but efforts are underway to try and shift us away from the big old attention silos people have been trained to use these days.
Many of the projects I worked on would have a near-identical replication of an environment from the network stack to the application and databases. Flipping from staging to production was sometimes as simple as a DNS update. It's always an eye opener to see businesses at this scale operating without a full replication of production in staging. It's always harrowing when you're testing a destructive change on dummy data just knowing there's a million ways a live deployment could go wrong, and the impact just scales the bigger you get so that kind of redundancy just seems even more important.
It could be argued at the scale of a company like Atlassian that this level of redundancy is prohibitively expensive, that's a lot of databases and files to have sitting around doing nothing 99.99% of the time, and it's hard to argue for prevention of something that's never happened and would be a costly thing to tool up for. But you can definitely factor scaling your redundant capacity into your model, both pricing-wise and engineering-wise. It's not like Atlassian products are cheap to begin with, I'm sure they can sustain some velocity / bottom line hit for the sake of something as basic as fully replicated staging environments. I definitely don't think this is on the engineers, it's a strategic oversight and shows where ultimate priorities lie within the company.
Putting your trust in a cloud service to take care of things you'd otherwise have to worry about yourself is a major decision, and safety is one of the top priorities of basically every user, and seeing the lack of process and glib approach to staging is a major red flag.
Anyway that aside I do appreciate their detailed write up and it does feel like a bluntly honest and truthful disclosure. That goes a long way to restoring trust, but it does also expose some of how the sausage is made and it's clear some of the ingredients are questionable. It does bear the hallmarks of a small successful software startup hitting the big time and scaling with acquisitions faster than supporting processes can safely scale; they have a team of engineers and it's up to them where to engage them and it seems being able to do proper dry runs of destructive changes wasn't seen as more valuable than getting more services on the products page.
Hopefully they'll act on the recommendations of the report and implement the improvements they said they would and not just refocus their efforts elsewhere once the spotlight moves on. I'd like to see regular updates on this as a long-term Atlassian user as it would factor greatly into me recommending Atlassian products over other stacks in the future. They could easily set up a public Jira / Trello board so we can keep track of progress on these promises.
Obviously this is not unique, these mistakes have happened before, so it's not just the kind of stuff that seems obvious in hindsight. I am sure there were engineers highlighting these issues internally but scaling redundancy is never as sexy as onboarding a new product and adding its customers (and revenue) to your quarterly reports. Hopefully the reputation hit is a stark reminder to the c-suite that yes, they are running a technology company, and that means that technology and engineering should be just as important as growth and penetration.
Anyway, good on them for being open. Well done to the engineers who worked to untangle the mess, good on management for allowing this level of transparency and taking ownership, things could have been a lot worse by the sounds of things.
I was reaching on the mapping of numbers to letters to be honest. If I were designing a system to track and corelate everything I'd take it into account since it's still in use, but yeah that was a definite stretch in this case.
But I am pretty sure this was just a proximity match. When you're dealing with the quantity of telemetry the big players deal with, you're talking billions of people in real-time all day long, then how do you figure out what's relevant and what isn't?
Physical proximity is important. You don't have to swap contacts with someone for your telemetry to connect you with them. I mean you were right next to someone who was right next to them, out of billions of people you're relevant, so no one needs to share contact details. The manufacturer of the phone knows your geolocation. Your telecom company knows your geolocation. If you have bluetooth or wifi switched on and you're already fingerprinted, then every chain store knows your geolocation. If you use a credit card or eftpos card anywhere, the products you purchase are combined into your profile, etc etc.
That and you already had them in your contact list (even though you were surprised they were, you're not saying they weren't, I have people in my contact list from 15 years ago I only spoke with one time...), they already know that you've bumped into this contact before in the past, and boost the recommendation because you shared the contact and the geospatial relevance in a short period of time.
Like I'm pretty cynical and suspicious at the best of times, but once I started to realise the above, all my "oh shit they're listening" moments kind of dissolved because I could trace all of them back to being in the same room as someone who had met a person, or had been actively searching a related topic in the past few days.
Yeah it's still spooky, it's the reason I run a pi-hole, and got myself off most social media.
Also I noticed this thread got flagged. Not sure exactly why but I think it's because this same subject has come up a few times. I do think people need to better understand how network analysis can reveal spooky shit about our behaviours, like our devices don't need to be literally listening to our words in order for corporations and governments to know exactly who we are or what we're about. There's tons of different signals we all send out each day that fingerprint exactly who we are, who we're related to, and what we care about, they don't need realtime voice processing.
Telemetry is the catch-all phrase used to describe data captured about a device.
Telemetry servers combine this information to build profiles on users. Network models of relationships between devices and user behaviours are used in recommendation engines including autocomplete results.
If you are in the same room as a cohort of people, if one or more people had been searching or messaging the X & Y Smiths, then by geolocation since you all attend the same church, you're associated as potentially interested, especially considering you already had their details saved.
There are also fuzzy logic factors, like maybe those three letters weren't in their name but were in their phone number (each number corresponds to several alphabet characters), or might have been in a message you've long since deleted but is still in your autocomplete index which combined with the geolocation weighting could have caused it to pop up as an option.
In these instances it might appear your phone is listening, but you were in the same room as some people who were probably also interested in that family, had their data in your history, and being a new connection could have boosted its relevance too. (I just saw someone else also answered that you probably only noticed this event because of the conversation, or the Baader–Meinhof phenomenon, which is also plausible)
Not saying definitively that your phone was not covertly listening but our devices are capturing and correlating a massive amount of dimensions related to our behaviours at all times, so it's not beyond reason that enough of these factors lined up to cause the autocomplete engine to suggest it as a reasonable option.
If permanency is a priority then letting external scripts be responsible for presenting content is not a good idea, especially if the agreement doesn't make any promises about whether content will be permanent, and doubly so if the agreement / terms of service explicitly say they can change the behaviour of their services at any time.
What this probably calls for and maybe something is out there is some service that can embed, archive, and track changes to a tweet or social media post. You'd embed the same way, but the archive will fetch and cache the content. It could then serve up the original version, as well as a timeline of changes.
The right to be forgotten has merit though, and I can see twitter's logic there and probably they're under pressure via GDPR or something. So any archival or cache service would need to take that into account. Various countries and districts have varying laws on what is and isn't official public record too, so it seems like managing that could be the function of a dedicated archival service.
"We only have two environments: our laptops, and production. Once we merge into the main branch, it will be immediately deployed to production."
Maybe my reading skills have completely vanished but to me, this exactly says they deploy directly from their developers' laptops to production. Those are literally the words used. The rest of the article goes on to defend not having a pre production environment.
They literally detail how they deploy from their laptops to production with no other environments and make arguments for why that's a good thing.
This sounds like something I would write if a hypothetical gun was pointed at my head in a company where the most prominent customer complaint was that time spent in QA and testing was too expensive.
I have zero trust in any company that deploys directly from a developer's laptop to production, not in the least starting with how much do you trust that developer. There has to be some process right?
https://www.legislation.gov.au/Details/C2021A00076
Or something else?