https://www.legislation.gov.au/Details/C2021A00076
Or something else?
1,026 karma · joined January 12, 2014
https://www.legislation.gov.au/Details/C2021A00076
Or something else?
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?
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.
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.
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.
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.
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).
const $ = document.querySelectorAll.bind(document)
Then later:
$('#element').whatever
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.
"“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-...
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.
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.
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.
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.
Drats!
Nice little tie-ins with memorabilia as well.
I started writing a similar thing myself based on the Amstrad CPC look-n-feel. I should go back and finish it.
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.
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.
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?
I think if I can see some code beyond the old map/reduce toy examples it might click. Not wanting to be confrontational, and I know that this forum isn't here specifically to educate me personally, I just genuinely have had problems understanding what FP is "supposed" to be that any good programmer doesn't already do when possible, regardless of language or whatever.
I'm sure it will click and I'll look dumb but yeah. Isn't loose coupling and strong coherence kind of covering this already? Is it just down to doing map/reduce/filter to avoid mutating some variable and instead get a new set of results? Is mutation the charm?
I genuinely really feel I'm missing out on something important here because I have older views on programming, I've struggled to get a good explanation. Do I have to go back to school again? I'm not against that but yeah. I'm sorry if this sounds ignorant, but I kind of am.
It would be nice if there were some kind of universal project "retirement home" where these sorts of things could go to pasture, caretakers could prod at the idea and pull it apart, find the intrinsic value if any, and integrate the guts of it into some broader universal API. Such a platform of trinkets that solve tiny everyday problems that individually have little value might actually be useful in any sort of recommendation engine. API calls could be metered so the original creators of each piece get some kind of return however small.
Give me 40k and some failed IPs to play with and I'll deliver a prototype in a few months...
- I feel some analogous thinking with computational complexity. An action may have broad repercussions, but in big O thinking, as we approach infinity, only those factors with the most significant impact matter. Considering infinities is a useful lens when trying to reduce complexity to the most significant factors.
- That kind of analysis is typically only useful if you have the entire algorithm and all its variables mapped out. A big-O approach to the travelling salesman problem wouldn't be accurate if you didn't consider the travelling part. You'd say hey, only 1 destination is added at a time, so the impact of each new destination is linear, which is wildly incorrect.
- As long as a subject matter is subjective and people get to decide which variables belong and which can be ignored, and what impact a variable may have, the analysis will be incorrect, most likely wildly incorrect. Is there a universal method for deciding which factors are important?
"Should we bomb our neighbours and steal their chocolate, or buy their chocolate instead of making our own? Well, our main export is chocolate, so they are taking bread off our citizens tables. Infinite bombs = infinite bread." Obviously a few factors are missing - but which factors?
Obviously there's limits to the technique but I think it's an interesting lens to view ethical concerns through, but I don't see how (would like to better understand if?) it provides any insight into universal ethics or if there is such a thing because at the core of it all is a person who gets to decide what they think is and isn't important to factor into the calculation. Or maybe that's the point I missed.
Interesting in any case.
(Toastamak products contain no user servicable parts. Only to be used on bread and bread-derivatives. No warranty or liability accepted for breeding-based temporal anomalies. Fusion cells not included.)
"Dr Gibbons! The zero-point readings are off the scale! We've done it!"
The toast briefly flickers into a pizza, then a burrito, then back to being a piece of toast.
His brows furrow. "No. This can't be. Shut it down! Delete the files! No one can ever learn of this!"
*walks off into the distance muttering obscenities*
Funnily enough after this thread I did some digging around and came across effection as well, I'd never come across the term "structured concurrency" before but it feels like a natural next step on what I'm trying to accomplish, so I'll definitely be keen to see more development in this area and maybe some first class language constructs at some point.
Thanks for taking the time to give an example and explain the concept in relatable terms.
It would be really nice to have a first class language feature to wrap all this up, it sounds like that's what structured concurrency as a concept is aiming towards.