I've dealt with programmers who never have and never want to talk to the users of the software they produce. It's just too scary, that's what the support, sales, and marketing people do. If they are needed, then those folks will make bullet points and disseminate to the 'architects' who will task the 'leads' to direct the 'programmers'. There is no way this can lead to good result. Yet this is a common perception of how to manage commercial software development.
One thing is that it really depends on the complexity of what you are setting out to do. All too often a business assumes *any* software is as complex as building a skyscraper, and overthinks things.
Another is that in my experience, a lot of companies will declare someone a 'project manager' who has no particular understanding of any of it. When I speak to a general contractor, they may not be 100% able to do everything, but they will know enough to actually provide valid feedback and assessments.
The problem with the state of reality in software development is that people fancy themselves construction specialists. However the general contractor has never touched a hammer in their life, and all the pieces are slapped together with chewing gum instead of screws and nails. Also most projects would be terrified of making framing of a wall, and so rely exclusively on pre-fabbed framing. When there exists no framing that fits the wall, they put a close match and call it 'good enough', when assembling a fit-for-purpose frame is trivial.
Yes, you can go the other direction, 'reinvent the wheel' needlessly, no oversight whatsoever, and you *can* have a crazy complex task to achieve that warrants an army of folks and failing to take it seriously enough. This would also be bad. A good balance of leadership with some competency.
Laptop that for most people goes to sleep when lid closed, so they have to leave it open (yes this is configurable, but again, speaking to 'plug and go' mindset).
They have to find a set of bluetooth or otherwise wireless controllers or get extension cords for wired controllers.. An xbox controller is around $40 by itself.
And you have to get the roms (of course by plugging your legitimate cartridges into a cartridge dumper, right???). Legally speaking for NES/SNES type games, you need a hard to find and generally speaking expensive cartridge dumper. You aren't legally allowed to download a copy, just because you own a copy (copyright law is not necessarily the sanest thing). PSX and PSX2, sure you can use a normal drive to rip, but anyway...
You have to know what sotfware will work. RetroArch is of course a good go to. You have to either figure out how to add the titles to an external launcher (e.g. steam big picture) or use the builtin browser (which won't extend to non-emulation games).
Once you are familiar, this is a really good setup and liberating way to not repay for the same content over and over again, *if* you care that much about it. However for a lot of people that probably haven't bothered in years but remember or want their kids to experience it now, $60 and they are done isn't a crazy sum.
There seems to be a trend of companies countering arguments about highly defective software with 'oh, well it's because we are Agile'. Of course, Agile doesn't mean that you have to ditch your QA or anything, but it's a narrative a lot of software companies roll with. It's also interesting because even using the excuse is suggesting they think the users asked for it and the users are all just getting what they asked for. I see this a lot with companies, they paint their picture of the user base with broad strokes, everyone must want the same thing, no way that the people wanting 6-month releases for an OS are a minority...
Well, practically speaking the assignee for all intents and purposes 'owns' the patent.
You can point to the authorship, but you can't really do anything with the patent. Hence again, downloading a bunch of stuff to help you implement 'your' patent elsewhere doesn't work if the patent has been assigned to your then-current employer.
That PC is going to be a lot more money than $60...
I'm skipping out on them too, because I'm not particularly sentimental about the cosmetic design, I have a high end HTPC that can do this and if I felt like it the capability of rolling my own with one of those cheap boards.
However, there's a large number of folks for whom it just makes since to plop down $60 and plug it in and forget it.
Sounds like his issue was that Motorola would replace the device, but not repair.
Motorola in general will replace phones rather than repair them (remanufacture them). I'm assuming because the repair time would be too long and they feel like phones are more disposable because 'cloud' (and microsd). Even for something like a cracked screen, warranty replaces, rather than repairs, with no option to say 'repair only'.
This may be normal for cell phone manufacturers, I don't know.
Of course, digital music is a rare place of relative sanity in the realm of digital entertainment, where *if* you do actually choose to 'buy' a song, odds are it is drm free and not outrageously expensive.
Movies and books have download editions that are frequently *more* expensive than getting a physical copy of the same data, and are encumbered by drm on top of that.
Well in this case that is true, but in context: -It might not be empathy, it might be someone trying to get the 'best result' out of the study. When you know you are being studied, you will be tending to think about what the researchers are up to and trying to game it. -The person has no particular desire/incentive to turn the robot off of his own accord. So it may be less "I just can't bring myself to do it" and more "I don't feel like doing it". The argument I'm sure is that would still show undue influence of what is essentially a recorded message, but it may be negligible and would take a backseat to any innate desire to turn it off or more insistent direction to turn it off (if it was a sincere reaction to a tug at the heartstrings rather than gaming the study...)
If empathy would lead you to risk getting arrested to steal something for a spoiled person, then yeah that sentimentality would be a liability.
On the other hand, empathy preventing you from killing someone who as far as you know has done nothing wrong is hardly a liability.
*if* this was due to empathy (hard to say, they could just be trying to figure out what the researchers want since they know it's a contrived setup to study), this would fall into that latter half of empathy preventing you from doing something unfair just because someone told you to for no justified reason.
Of course the skillset you have would probably cost someone not having that skillset to spend $100 to pay someone long enough to turn a Pine64 into a retro gaming machine...
It's something that is very easy to take for granted.
In most contexts, you have a choice in languages. If I don't like perl, I ignore perl. If I like C, I can write in C. My language choice in general purpose world is free and I can ignore the ones I disagree with.
Javascript in part has a problem because developers that need to do something inside a browser have *no choice*. So people who dislike it and would ignore it cannot get away from it, and so hate it as they work on it.
I personally am not big on Javascript. Two big issues for me: -The 'standard library' is rather limited, because everyone started bolting on third party code and bundling it and that means it's somehow ok that javascript does not build in some basic functionality (e.g. no good builtin string formatting) -What functions there are verbose, and I personally don't like camel case, too many trips to the shift key. I have seen too many people go straight to jQuery selectors because it's terse, but it's a dog on performance compared to using those functions correctly...
Interestingly enough, annoying syntax is one reason why C/C++ tends to be faster.
In python, it's equally easy to do while curr != 'sentinal' versus while curr != 1'. In c, you get annoying doing memcmp or strncmp and quickly go to the numeric based sentinal. This maps to what is *much* easier to do for the computer.
Same with hash tables versus arrays. mydata= {} is as easy as mydata = [] and I have actually seen the former and then the programmer do mydata[0], mydata[1].
And of course there are structs. C really makes you think about organizing your data and doing things that will naturally align things well for using. Versus the much more convenient, but damn near impossible to optimize structures people will build in python.
In fact, sometimes the python syntax makes the harder way easier. For example you want to read part of an array, say 3rd byte and on. In C you might have a pointer and you just do 'b = a + 3'. In python the syntax you would probably gravitate toward is 'b = a[3:]'. This however makes a copy of part of a and points b to the new copy. Python does offer it, but it's a more obscure 'b = buffer(a, 3)'.
Funny enough, I've seen people write terribly complex 'scripting' code that is clearly more sophisticated than a lot of C programmers, and yet the people writing that will still be intimidated by a compiled language.
Also seen it in shell scripting. People who go through pretty tortuous stuff to make complex code in shell script, but won't even touch python or perl or anything like that, because *that* would be programming, and they don't feel like they could 'program', despite already programming heavily..
I will say that it's not just python that is afflicted by that phenomenon in xkcd. Java is notorious for having every app bundle their own JRE, for example.
This is also 'just the way it is' for nodejs.
'frameworks' for every little damn thing... yeah... welcome to most languages...
virtualenv is one double-edged sword. On the one hand a respectable mechanism to tame the monstrous ecosystem. On the other hand, people start *requiring* it to just make the ecosystem even more monstrous...
Pasting your code into interactive python terminal on a remote system to try something out... whitespace causes a challenge more often than it doesn't in that specific case....
I do most stuff in python, and largely I don't have problems with the whitespace...
Until I want to try something out by pasting into a python interpreter.... Errant leading space in statement due to miscopy? Error. A function with some sort of line continuation that is perfectly legitimate in an actual script? indentation error...
Eh, in 2007 Vista had just come out. Windows 7 was a ways out. Mobile platforms were pretty much proprietary one off practically speaking. Windows 10 from a technology perspective isn't too shabby, but from a business and logistics standpoint, controversial to say the least. It *could* be better (two dimensions of virtual desktops, having window title search in their 'expose' clone, having their 'expose' clone actually show all the windows, instead of going the other way and sucking up real estate with a big 'recent documents' interface.
On the Linux side, compositing was a novelty and not yet baked. Gnome 2 would have another 3 years of life. For all the complaining, each step has left a more rich ecosystem. Sure, KDE lost it's mind in KDE 4, but by the time Gnome decided to lose their minds, KDE had gotten back to pretty sane. MATE happened to maintain and modernize the Gnome 2 experience, lightweight desktops never gave up... Gnome shell is... better than it used to be, but Plasma desktop remains my go-to for rich customization.
Actually, I have had a great deal of that frustration, with my kid's chromebook!
Audio stop working or start this awful buzzing noise? Reboot!
Chrome extensions mysteriously appearing and adding 'toolbars'.... still happens....
Some intrusive adware pops up and is difficult to isolate... Yes indeed. Once isolated, it's more reliably able to be removed, granted, but they can be more sneaky than I would have guessed.
Thing totally locks up and needs a power cycle? Yes indeed.
young consumers are skipping home PC's for mobile devices.
I think this view is exaggerated. Every 'young consumer' I've seen has a laptop. Mobile is a big part of their lives (it's with them all the time) and gets purchased more frequently (falling out of pockets into water or concrete breaking the screens), but they can't *do* a lot of things they want with them.
Funny, when I went to do a recording of my Windows desktop for the first time, I chewed through several crappy ones and wasn't able to get good result until I stumbled across OBS.
Then when I went to linux, OBS was there too, so I didn't even have to research. I wonder if your journey to CamStudio was also painful and you've forgotten or just got lucky by doing it first.
On remote desktop, to be fair the paradigm is generally X forwarding over ssh, which works pretty automaticaly. I know, detached sessions are a deficiency with that strategy. For detached sessions, I actually favored xpra over VNC as it blended the best of both worlds, but couldn't bring myself to be satisfied with remote applications (not just Linux, I cringe when someone makes me log into Microsoft Remote Desktop as well).
Fedora would be a huge mistake to recommend to big app developers.
That will cause a lot of complaining about how quickly support is aged out for distros, and they would complain about having to update every 6 months to potentially major changes.
Ditto for Ubuntu, without the more specific Ubuntu LTS, and even then that's more aggressive than they were used to.
SLES/LEAP and RHEL/CentOS are going to be more usual lifecycles for most third party software developers.
Every thing you just listed is implemented at least in Wine or other libraries (freeRDP). If ReactOS doesn't have them, they easily have access to them.
Of course, I'd say from a practical perspective, Linux+Wine would be a more practical choice unless things *dramatically* change. Of course if I were in these same shoes around 1993 or so, I'd be skeptical that Linux would get anywhere serious either.
It's everyone's fault really.
I've dealt with programmers who never have and never want to talk to the users of the software they produce. It's just too scary, that's what the support, sales, and marketing people do. If they are needed, then those folks will make bullet points and disseminate to the 'architects' who will task the 'leads' to direct the 'programmers'. There is no way this can lead to good result. Yet this is a common perception of how to manage commercial software development.
One thing is that it really depends on the complexity of what you are setting out to do. All too often a business assumes *any* software is as complex as building a skyscraper, and overthinks things.
Another is that in my experience, a lot of companies will declare someone a 'project manager' who has no particular understanding of any of it. When I speak to a general contractor, they may not be 100% able to do everything, but they will know enough to actually provide valid feedback and assessments.
The problem with the state of reality in software development is that people fancy themselves construction specialists. However the general contractor has never touched a hammer in their life, and all the pieces are slapped together with chewing gum instead of screws and nails. Also most projects would be terrified of making framing of a wall, and so rely exclusively on pre-fabbed framing. When there exists no framing that fits the wall, they put a close match and call it 'good enough', when assembling a fit-for-purpose frame is trivial.
Yes, you can go the other direction, 'reinvent the wheel' needlessly, no oversight whatsoever, and you *can* have a crazy complex task to achieve that warrants an army of folks and failing to take it seriously enough. This would also be bad. A good balance of leadership with some competency.
Laptop that for most people goes to sleep when lid closed, so they have to leave it open (yes this is configurable, but again, speaking to 'plug and go' mindset).
They have to find a set of bluetooth or otherwise wireless controllers or get extension cords for wired controllers.. An xbox controller is around $40 by itself.
And you have to get the roms (of course by plugging your legitimate cartridges into a cartridge dumper, right???). Legally speaking for NES/SNES type games, you need a hard to find and generally speaking expensive cartridge dumper. You aren't legally allowed to download a copy, just because you own a copy (copyright law is not necessarily the sanest thing). PSX and PSX2, sure you can use a normal drive to rip, but anyway...
You have to know what sotfware will work. RetroArch is of course a good go to. You have to either figure out how to add the titles to an external launcher (e.g. steam big picture) or use the builtin browser (which won't extend to non-emulation games).
Once you are familiar, this is a really good setup and liberating way to not repay for the same content over and over again, *if* you care that much about it. However for a lot of people that probably haven't bothered in years but remember or want their kids to experience it now, $60 and they are done isn't a crazy sum.
There seems to be a trend of companies countering arguments about highly defective software with 'oh, well it's because we are Agile'. Of course, Agile doesn't mean that you have to ditch your QA or anything, but it's a narrative a lot of software companies roll with. It's also interesting because even using the excuse is suggesting they think the users asked for it and the users are all just getting what they asked for. I see this a lot with companies, they paint their picture of the user base with broad strokes, everyone must want the same thing, no way that the people wanting 6-month releases for an OS are a minority...
Well, practically speaking the assignee for all intents and purposes 'owns' the patent.
You can point to the authorship, but you can't really do anything with the patent. Hence again, downloading a bunch of stuff to help you implement 'your' patent elsewhere doesn't work if the patent has been assigned to your then-current employer.
That PC is going to be a lot more money than $60...
I'm skipping out on them too, because I'm not particularly sentimental about the cosmetic design, I have a high end HTPC that can do this and if I felt like it the capability of rolling my own with one of those cheap boards.
However, there's a large number of folks for whom it just makes since to plop down $60 and plug it in and forget it.
Sounds like his issue was that Motorola would replace the device, but not repair.
Motorola in general will replace phones rather than repair them (remanufacture them). I'm assuming because the repair time would be too long and they feel like phones are more disposable because 'cloud' (and microsd). Even for something like a cracked screen, warranty replaces, rather than repairs, with no option to say 'repair only'.
This may be normal for cell phone manufacturers, I don't know.
It's largely the same, except a lower res, albeit larger display than last gen.
Except it's priced higher... locked to Verizon... and ditches the shatterproof screen...
I don't see this as a winning strategy to make a comeback...
They may be doing good in the low/mid range phone models, but at the high end they don't seem to be doing themselves any favors this year...
Of course, digital music is a rare place of relative sanity in the realm of digital entertainment, where *if* you do actually choose to 'buy' a song, odds are it is drm free and not outrageously expensive.
Movies and books have download editions that are frequently *more* expensive than getting a physical copy of the same data, and are encumbered by drm on top of that.
Well in this case that is true, but in context:
-It might not be empathy, it might be someone trying to get the 'best result' out of the study. When you know you are being studied, you will be tending to think about what the researchers are up to and trying to game it.
-The person has no particular desire/incentive to turn the robot off of his own accord. So it may be less "I just can't bring myself to do it" and more "I don't feel like doing it". The argument I'm sure is that would still show undue influence of what is essentially a recorded message, but it may be negligible and would take a backseat to any innate desire to turn it off or more insistent direction to turn it off (if it was a sincere reaction to a tug at the heartstrings rather than gaming the study...)
Depends on what's being asked of you...
If empathy would lead you to risk getting arrested to steal something for a spoiled person, then yeah that sentimentality would be a liability.
On the other hand, empathy preventing you from killing someone who as far as you know has done nothing wrong is hardly a liability.
*if* this was due to empathy (hard to say, they could just be trying to figure out what the researchers want since they know it's a contrived setup to study), this would fall into that latter half of empathy preventing you from doing something unfair just because someone told you to for no justified reason.
You *know* you are a study participant. You know there is potentially meaning in everything they ask you to do.
So when they say 'shut it down' and the robot says 'don't shut me down', you are going to ponder what is it you are expected to do.
13 may have thought refusing to turn it off would 'look better'.
Hard to say if it is empathy or trying to think how to best influence the study, whether consciously or not.
Of course the skillset you have would probably cost someone not having that skillset to spend $100 to pay someone long enough to turn a Pine64 into a retro gaming machine...
It's something that is very easy to take for granted.
In most contexts, you have a choice in languages. If I don't like perl, I ignore perl. If I like C, I can write in C. My language choice in general purpose world is free and I can ignore the ones I disagree with.
Javascript in part has a problem because developers that need to do something inside a browser have *no choice*. So people who dislike it and would ignore it cannot get away from it, and so hate it as they work on it.
I personally am not big on Javascript. Two big issues for me:
-The 'standard library' is rather limited, because everyone started bolting on third party code and bundling it and that means it's somehow ok that javascript does not build in some basic functionality (e.g. no good builtin string formatting)
-What functions there are verbose, and I personally don't like camel case, too many trips to the shift key. I have seen too many people go straight to jQuery selectors because it's terse, but it's a dog on performance compared to using those functions correctly...
Interestingly enough, annoying syntax is one reason why C/C++ tends to be faster.
In python, it's equally easy to do while curr != 'sentinal' versus while curr != 1'. In c, you get annoying doing memcmp or strncmp and quickly go to the numeric based sentinal. This maps to what is *much* easier to do for the computer.
Same with hash tables versus arrays. mydata= {} is as easy as mydata = [] and I have actually seen the former and then the programmer do mydata[0], mydata[1].
And of course there are structs. C really makes you think about organizing your data and doing things that will naturally align things well for using. Versus the much more convenient, but damn near impossible to optimize structures people will build in python.
In fact, sometimes the python syntax makes the harder way easier. For example you want to read part of an array, say 3rd byte and on. In C you might have a pointer and you just do 'b = a + 3'. In python the syntax you would probably gravitate toward is 'b = a[3:]'. This however makes a copy of part of a and points b to the new copy. Python does offer it, but it's a more obscure 'b = buffer(a, 3)'.
Funny enough, I've seen people write terribly complex 'scripting' code that is clearly more sophisticated than a lot of C programmers, and yet the people writing that will still be intimidated by a compiled language.
Also seen it in shell scripting. People who go through pretty tortuous stuff to make complex code in shell script, but won't even touch python or perl or anything like that, because *that* would be programming, and they don't feel like they could 'program', despite already programming heavily..
I will say that it's not just python that is afflicted by that phenomenon in xkcd. Java is notorious for having every app bundle their own JRE, for example.
This is also 'just the way it is' for nodejs.
'frameworks' for every little damn thing... yeah... welcome to most languages...
virtualenv is one double-edged sword. On the one hand a respectable mechanism to tame the monstrous ecosystem. On the other hand, people start *requiring* it to just make the ecosystem even more monstrous...
Pasting your code into interactive python terminal on a remote system to try something out... whitespace causes a challenge more often than it doesn't in that specific case....
Otherwise I don't mind it so much...
I do most stuff in python, and largely I don't have problems with the whitespace...
Until I want to try something out by pasting into a python interpreter.... Errant leading space in statement due to miscopy? Error. A function with some sort of line continuation that is perfectly legitimate in an actual script? indentation error...
Eh, in 2007 Vista had just come out. Windows 7 was a ways out. Mobile platforms were pretty much proprietary one off practically speaking. Windows 10 from a technology perspective isn't too shabby, but from a business and logistics standpoint, controversial to say the least. It *could* be better (two dimensions of virtual desktops, having window title search in their 'expose' clone, having their 'expose' clone actually show all the windows, instead of going the other way and sucking up real estate with a big 'recent documents' interface.
On the Linux side, compositing was a novelty and not yet baked. Gnome 2 would have another 3 years of life. For all the complaining, each step has left a more rich ecosystem. Sure, KDE lost it's mind in KDE 4, but by the time Gnome decided to lose their minds, KDE had gotten back to pretty sane. MATE happened to maintain and modernize the Gnome 2 experience, lightweight desktops never gave up... Gnome shell is... better than it used to be, but Plasma desktop remains my go-to for rich customization.
I'd say
no longer applicable OS shit memes
Actually, I have had a great deal of that frustration, with my kid's chromebook!
Audio stop working or start this awful buzzing noise? Reboot!
Chrome extensions mysteriously appearing and adding 'toolbars'.... still happens....
Some intrusive adware pops up and is difficult to isolate... Yes indeed. Once isolated, it's more reliably able to be removed, granted, but they can be more sneaky than I would have guessed.
Thing totally locks up and needs a power cycle? Yes indeed.
young consumers are skipping home PC's for mobile devices.
I think this view is exaggerated. Every 'young consumer' I've seen has a laptop. Mobile is a big part of their lives (it's with them all the time) and gets purchased more frequently (falling out of pockets into water or concrete breaking the screens), but they can't *do* a lot of things they want with them.
Funny, when I went to do a recording of my Windows desktop for the first time, I chewed through several crappy ones and wasn't able to get good result until I stumbled across OBS.
Then when I went to linux, OBS was there too, so I didn't even have to research. I wonder if your journey to CamStudio was also painful and you've forgotten or just got lucky by doing it first.
On remote desktop, to be fair the paradigm is generally X forwarding over ssh, which works pretty automaticaly. I know, detached sessions are a deficiency with that strategy. For detached sessions, I actually favored xpra over VNC as it blended the best of both worlds, but couldn't bring myself to be satisfied with remote applications (not just Linux, I cringe when someone makes me log into Microsoft Remote Desktop as well).
Fedora would be a huge mistake to recommend to big app developers.
That will cause a lot of complaining about how quickly support is aged out for distros, and they would complain about having to update every 6 months to potentially major changes.
Ditto for Ubuntu, without the more specific Ubuntu LTS, and even then that's more aggressive than they were used to.
SLES/LEAP and RHEL/CentOS are going to be more usual lifecycles for most third party software developers.
Every thing you just listed is implemented at least in Wine or other libraries (freeRDP). If ReactOS doesn't have them, they easily have access to them.
Of course, I'd say from a practical perspective, Linux+Wine would be a more practical choice unless things *dramatically* change. Of course if I were in these same shoes around 1993 or so, I'd be skeptical that Linux would get anywhere serious either.