How often do people copy and paste from Stack Overflow?
stackoverflow.blog
stackoverflow.blog
I'm trying to think what's changed, I guess I've just been writing stuff that either I'm super comfortable with or is niche enough that there's not that much on SO that's helpful. Looking in my browser history, the last thing I looked for that I got an answer on SO is what's the differences between C++'s std::scoped_lock and std::unique_lock, which was a few days ago. I still use SO, just not as frequently as a few years ago.
Among other possibilities:
SO suffers from hostile moderation and a generally unwelcoming culture, perhaps even worse than Wikipedia. This has a profound chilling effect on positive, substantial contributions, particularly from new contributors.
SO had a great strategy initially with relying on search engines to index everything, but it never seems to have solved the recency/relevance problem. In that respect, it has become its own worst enemy, with old answers about obsolete versions and practices often ranking highly in search results.
The first of those problems then exacerbates the second, because the same cultural issues get in the way of both updating answers to old questions and asking new questions that might be superficially similar to ones that already exist but actually need a different answer.
Meanwhile, in many areas of programming, documentation from other sources has become both better in quality and more readily located thanks to other well-known sites and high search engine rankings. Relatively speaking, SO simply isn't as useful if there is already primary documentation that answers questions correctly and comprehensively.
And finally, you personally may have grown as a developer over time, becoming both more capable of solving problems for yourself and more familiar with whatever tools you use regularly, so you might not need external help so often.
FWIW, I'm also in the "rarely visit SO any more" camp. I think I have a kind of banner blindness for SO hits on search results pages now, perhaps because I'm assuming that following a SO link is unlikely to provide a useful answer so I almost always check other plausible sources first. On those occasions when I do get as far as visiting SO, I'm usually reminded of why I tend to work this way now.
This rings very true to me. The GP's comment made me consider that I very rarely go to Stackoverflow anymore, no longer contribute and what stuff I do find there useful is from well before the cultural shift in moderation, back when questions could be a little more open and answers a little more freewheeling.
The other sites in the Stackexchange network aren't nearly as bad, fortunately. English Language Learners and Math/MathOverflow are very positive places. Software Engineering is pretty good, too.
So after that experience would I go to the effort of contributing back again? Maybe in this case, because the answer was shorter than this post, but the equation might change if it required more effort.
I do not get it.
Oh god yes, this is a nightmare.
I think the SO leadership is currently searching for a solution with this issue. Whether they deploy it and it works is another matter.
Regarding the moderation and unwelcoming culture, I don't really see it, but maybe it's because I follow different tags?
Put another way, I spend 100% less time in high school than I used to, but HS is still a valuable resource.
When I used stack overflow more, I was doing stuff with web technologies and Unix command line tools. These days I’m much more experienced with Unix tools; I use more specialised tools that aren’t mentioned on SO, use a programming language which isn’t often mentioned on SO, and a large array of libraries which are even less frequently mentioned there. I’m also generally better at finding my own way around—digging through code, jumping to definitions, looking up errors. I think the reason I don’t use it so much is that it is less useful because it doesn’t have the answers I care about and because I have fewer questions for it to answer.
Previously you had to know the function you wanted to call. Now you can just scroll through the functions from typing the dot.
I do think that a big part is that the two things I spend most of my programming time on, one Clojure project and one C++ project, I’m just pretty familiar with at this stage. I’ve been using Clojure for ten years and the language hasn’t changed all that much, so I don’t need to look things up often (besides the occasional reference material on clojuredocs). For libraries, I check their readme’s and just read the code. I’ve actually never really used SO for clojure, now that I think about it. The Clojure project I’m working on is also a little bit niche, so I don’t tend to find anything useful on SO for it.
For C++, I keep cppreference at hand and only really use SO when I’m trying to figure out weird things, or newer features I’ve not yet used much. Again, for the libraries I use, it’s a mixture of documentation and reading headers and it’s rare that SO helps there.
In my previous job, I was mainly working with AWS services, terraform and some python (using boto) and, again, I had everything I needed from their documentation. Before that, it was Java with some Clojure, but again, the challenging part was the domain, which was nothing that SO could have helped with. Everything else, we had under control.
Maybe I got better at reading documentation?
SO used to have really god content for really some fundamental questions which gave it some credibility. As it accumulates more content the quality is really going down - I actively avoid SO unless I can't find any other source.
GitHub - literally every problem I have nowdays I spend searching through GH issues, reading through the code upstream and reporting back. For example I was working with .NET framework for a while (~5-6 years back now) and when dealing with closed source frameworks SO was a replacement for support channels. Now even as I'm coming back to a .NET core project - everything is OSS and on GitHub.
Docs also got better, MDN is now defunded by mozilla but where I had to do a SO search for random JS behavior I can now look up decent references on MDN. I think Google got better at indexing documentation as well.
I think this is it. I also thing documentation in general has gotten a lot better at answering questions rather than being just an autogen api doc site.
The moderators' refusal to allow "opinion-based" questions has been very harmful to the usefulness of the site. Now you can only find best practices if someone happens to add them as a tangent. Or if you happen on an old one that got 1000+ upvotes before the mods decided theory was off topic.
After 25 years professional experience (plus 12 years before that), there are a number of reasons why I search for "how to do X in Y" online at least once a week:
- The language is poorly designed and has a lot of unintuitive, unorthogonal, difficult-to-remember parts or nasty footguns, but people continue using this beast-that-cannot-be-slain out of industry inertia (like Bash or CMake).
- The language is in a constant state of flux, adding new features and best practices / idiomatic things, and the cruft-that-must-not-be-used buildup is so insane that even a few years out of the loop makes you feel like a complete beginner (like C++ or Python or JS).
- The language is complicated enough that unless it's your day job you won't remember how to do basic things after a few months away (like Rust or Haskell or Gradle).
- It's been 10 years since you touched it and how the hell do you concatenate a string again???
I think the only languages I can just slide right back into are Java, C#, LUA, and Go (and C, but probably only because I used it daily for decades).
woefully underused, but has everything and is extremely well written with no fluff.
I always leave a comment trying to explain to my future self where I learned to do stuff that was not intuitive.
Bash, Make, non-standard Python libraries, E-Lisp, and Fortran.
Also, it's been quite a while since I've touched JavaScript, so the newer features have been harder to grok.
For example if I forget the name of a function for something in a particular language I don't even go to the docs, I just google something like "python reverse list" and click the first SO link.
One of the most productive times in my career was programming for the IBM i in the 90s. There were manuals online, but you could also download indexed PDFs versions. IBM did a superb job with their documentation, there was hardly any need to look up anything in the Internet, whatever you needed was in the manuals, examples included.
Of course you still used the Internet at work, but mostly for mingling with your peers and having technical discussions, although too many people still blindly copied/pasted from the forums.
A well structured and correctly indexed PDF is a godsend, because you just open the table of contents, quickly locate what you're looking for, click and there is your answer. As I said, IBM excels at writing documentation. Every language has a Language Reference manual, and a Programmer's Guide manual. The first is for reference, the second is to learn how to use it, including examples.
Don't take my word for it, you can check out, for example, the COBOL manuals here: https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol
I absolutely hated it. My screen was only 640x480, so I could barely see a whole page, much less see my IDE at the same time. These were the days of single 14 or 15 inch monitors, not dual or triple 24" widescreens.
It was also a little on the slow side. Early Pentium, 8MB RAM, 4X CD-ROM...
These days I'm delighted to see a PDF. There's a table of contents and index, they're searchable...copy and paste usually stinks, though.
PDF's are forever. They print nicely. They don't get lost when the project upgrades a major version, you can still use them when there's a DNS issue with your ISP, you can use them when you don't have internet...
I'm probably too set in my ways, but I prefer references that are always available offline. Devdocs.io once in a blue moon would forget about my choices, and I would hate to redownload them.
It taught me to get better at reading the Python docs, but more importantly to cope better without being able to just search every issue I was having online.
https://www.mirc.com/help/html/index.html?mirc_scripts.html
I remember spending the afternoon tinkering with it until late at night when dial-up "logic" meant I could finally go online without it costing an arm and a leg
When I search on Google for "python reverse list", not a single link is to the official Python documentation. Not even if I search for "python reverse" does the documentation page show up. Searching for "python reverse documentation" leads to the second link to the Build-in Functions page (https://docs.python.org/3/library/functions.html), which is what I "need".
Excuse the comparison, but "matlab reverse list" has the top three to the official documentation (all of them relevant, but slightly different semantics). Why can't Python be better than that?
But what you want is probably ls[::-1]
Although I don't mind the informal voice of the docs - there's clearly not much in the way of editorial oversight and pro technical writing. It makes one reconsider how much actual effort goes into putting together docs from corporate backed efforts.
That said, I don't think anyone does it perfectly well, and that we could do a lot better in terms of providing information - to the point wherein I would consider it a little bit of a failure that SE has to be consulted for smaller problems. One would hope that 'good docs' would provide clear and concise answers to such things, rather than have the crowd cobble it together and vote on it.
no. I stored the entire python document set locally, yet I still search online for functions.
stuff like: is it str.beginswith() or str.startswith()?
Blast, how do I convert to/from unicode again???
I think what we need is some sort of mashup of rosetta code and the docs and an index.
Rails, Some gens, and some Java projects are the few properly documented projects out there.
I see it more as an expert system where problems and their solutions are documented in a queriable way.
What stack overflow offers is more than your run of the mill documentation. It leaves a paper trail of weird corner cases and their workarounds.
For eg, with Rust and Go projects I would invariably read the actual docs (which I find are very accessible to read) as compared to when I write Python or C++ where I'm happy to SO my way through my task.
However, what I've found is that reading the actual docs is better for multiple reasons: 1) it reinforces your learning / memory via spaced repitition 2) you tend to glean some extra, related useful info from the docs.
These days I try and put myself in a no SO straitjacket as far as possible, forcing myself to read the actual docs instead.
For example. MDN had terrific docs for JavaScript and web apis. Things are discreetly segmented and this easy to navigate. Terrific, up to date information about how to things, why as well as great information on the caveats of the API (what works where and what fails where).
The SO answers are often a hack on how to implement it in an outdated framework. And ten variations that are "faster".
But you might still end up there because you're not sure how to look it up directly in the docs. Maybe you do an SO layover.
.Net is similar, although the official documentation suffers from marketing speak pollution, where it's hard to find answers because Microsoft names their APIs by randomly permutating ASP, Entity, Core and Framework when making things.
Add to that all the trashy noob doc sites, codeproject, csharpcorner... that pollute search.
Both ecosystems suffer on SO because of SOs inability to stay up to date with a changing API. A great example is all the Python 2 answers.
Then you have ecosystems like Scala, which has terrific documentation in source code. As well as official docs that are reasonably easy to navigate. But it's not a huge ecosystem, so sometimes it's hard to find answers to questions that haven't been asked. Then SO provides a valuable platform to get those answers. Sometimes from the maintainers themselves.
All in all, SO often offers a good complement to official docs, ranging from excellent to subpar. Personally I wished it was better at providing up to date information.
[0] https://meta.stackoverflow.com/questions/354217/sunsetting-d...
If that's your workflow it might be worthwhile adding a custom search to your browser so you can just do "SO python reverse list" and only get results from SO.
Chrome https://www.google.com/amp/s/www.techrepublic.com/google-amp...
Firefox https://support.mozilla.org/en-US/kb/assign-shortcuts-search...
They got very angry at me several times for not doing things "the Rails way". We were on Rails 4, which I already had loads of experience with. The RailsCasts they were following were written for Rails 2. They literally had no idea all of the ways Rails had moved on between those versions.
Their codebase was an absolute mess as well. This was an application that was supposed to contain medical records and it had broken routes that were leaking data everywhere unauthenticated. And they were mad that I spent two weeks cleaning all of that up and bulletproofing their application.
I was happy to move on from that one, but it taught me a lesson about just how valuable sales skills are. These two people were living a comfortable lifestyle off a single paying client (essentially getting money indirectly through DARPA) and were punching way above their weight technically.
I think interesting questions is; to what degree insider club introduces friction for new comers with justified novel proposals.
The field itself is a poorly understood area of medicine. By that I mean, it's only about 50 years old and no two doctors practice alike.
It's science, but nobody has consistent repeatable steps that seem to be conclusive beyond their own individual labs. The treatments are extraordinarily expensive.
I'll leave it at that because I'd prefer not to give identifying details (even though I basically have), but really the whole thing was eye-opening for me.
The Stack Overflow stuff was a massive, massive pain, for several reasons.
For one, it's not clear how CC-BY-SA applies to code[1]. This involved many long meetings with copyright lawyers. They ended up asking for all this to be removed, which our C-level people eventuality agreed to.
We had to then go through several hundred "flagged" things (in a hundreds of thousands of lines codebase) and fix or justify everything.
Only a few cases were outright copy+paste of a big function or class, and those were at least straightforward: rewrite. Usually it was old code anyway, and replaced with newer style, much more concise code.
Tons were one- or two-line things, which involved lots of arguments along the lines of "that is the way to open a file in append mode in this language, and logFile is the appropriate variable name in this case!" This is really a failing of the tool they were using, but it still required answering.
The funniest was a handful that were our answers: they were copy+paste our team had done from our code to SO! (Nothing proprietary, just a few lines of an algorithm or solving whatever random problem).
Anyway, this experience left me extremely cautious about introducing any external code (as opposed to libraries) into a codebase. OSS libraries with permissive licenses (MIT, BSD, etc) are easy to deal with: it's straightforward to comply and being a library means the code is nicely compartmentalized if you need to replace/remove it.
And it seems the software itself reflects a misunderstanding about how programming code is actually manifested. It's very possible to read the official docs or use an IDE and end up writing the same lines of code in some Stack Overflow answer, as many here have said already.
As you say, there might be a case where two independent implementations came up with the exact same code, although the probability of this is reduced exponentially with the size of the exact match. Keep in mind, we do not talk about "i = 0;" here, but something longer. And we do not discuss examples matching the official documentation, because then you can point to it as origin, instead of SO -- and it would probably be under a better license.
The questions are: even if you wrote it yourself, do you justify the costs of potentially going to court to defend the case and are you sure you will convince a judge, who will be the person making the decision?
I like the php manual. Its pretty simple and has good exmamples. They seem to used to have allowed/ allowed user comments, which used to be really old. (this one seems more up to date)
The Elixir documentation on the other hand is succinct and always features basic examples for every function. It's a joy to work with.
Not very related to the parent comment, but just an interesting note.
Official Documentation: https://docs.python.org/3/library/ast.html
Green Tree Snakes: https://greentreesnakes.readthedocs.io/
I always love it when a programming language has their docs available off-line and easily accessible. I grew up on Perl without an internet connection (or a GUI for that matter) so I got very used to the perldoc command. That is now the standard I expect. Elixir is one of the few languages that exceeds this bar imo.
It's curious, despite not a example of a great language, PHP has great documentation.
I tried Pharo, and a great functionality there I miss in other languages, is the search by example ability. Saves a lot of visits to stackoverflow. See for example:
https://avdi.codes/in-which-i-make-you-hate-ruby-in-7-minute...
"This module is licensed under whatever license you want it to be as long as the license is compatible with the fact that I blatantly copied multiple lines of code from the Python standard library"
(Kind of like one of the Grinch.)
It's actually quite annoying as I'll often copy from my terminal itself, purposefully with the trailing newline, and it now refuses to execute. I need to move my hand from mouse to keyboard to hit enter and then (often) back to mouse.
https://stackoverflow.com/a/246128/9084915
I've thought about saving it somewhere (sometimes I copy from my other existing scripts) - but it's just too convenient to google/copy directly out of the webpage.
> a useful one-liner which will give you the full directory name of the script
So we don't all have to click to find out what this is about...
As a more senior person, I rarely do copy whole snippets. I will look for general inspiration or to confirm my idea and check if there is a better solution. I wont blatantly copy as it rarely fits into my architecture and code style so it is faster to just directly write it how I need it.
If it's something I had to google for once, it's likely needed in the future and sometimes it's easier to search my own code for all SO links than follow the thread through the labyrinth again...
Hence, in my code I actually link to the answer when I think it might meet the bar for copyrightability. One example that comes to mind is a string->number hash function in javascript to assign random but consistent colors to items; I would use the resulting number as hue in CSS.
The stackoverflow license requires attribution and share-alike, so: (1) there is a comment for the attribution, and (2) anyone who sees the code knows they can re-use it because I mention the license for that part of the code. Some licenses also require the binary or derivative works (e.g. rendered webpages) to reproduce a notice to any users, is that a thing with creative commons? I thought CC was for non-code licenses and, as far as I know, the binary showing a notice is not a thing CC specifies. Looking up the summary page[1] on their website, it says I must provide "appropriate attribution" which is a pop-over that specifies it as:
> you must provide the name of the creator and attribution parties, a copyright notice, a license notice, a disclaimer notice, and a link to the material
I wasn't aware of the required disclaimer notice so it's good that I double-checked, but I do meet the other requirements. Though it's also quite rare that I really copy something as substantial as a whole function, it's not like this is a weekly occurrence.
But I'd love to know if I'm doing it wrong, in case you still read this!
now with that said
It’s highly unlikely this would ever be pursued at all or if it is, then swiftly settled out of court. But never underestimate legal trolls with nothing better to do
Ps this was in the context of employee/employer for-hire development. If you have the ability to attribute code as required either because this is a personal project or you are founder of said business then please disregard. My example was for jr Suzy F DevMcFace working for BigSoullessEvilCorp(TM)
The sandbox has been broken.
For example, I learned programming before stack overflow. I have most of the standard library syntax in my head and mostly look at spec documents. Once in a great while I will go on stack overflow if I can’t debug a problem but I don’t post on there .
In the same way, I suspect some engineers like using video to learn things or debug things but it’s not for me.
There are times that I've not done this though, for example a couple of years ago I was struggling to comprehend how to convert some math from a paper into actual code (the symbols were more than a little odd and I swear a bit of the equation was missing) and yet searching Github revealed a repo where someone had produced snippets of different obscure algorithms. Not quite a cut and paste, but definitely a "read the answer".
For example, how do I use the Python requests library (bad example because it has great documentation) would lead me to searching "import requests".
Before StackOverflow was a "thing," I recall noticing that it was easier to google spec documents on an electronic component even though I had the manufacturer's databook and Application Notes just across the room.
The ease of searching the pdf on google outweighed the ease of getting up and paging through the physical book. The main difference was in Application Notes: I could sit down and read some of the better ones like a novel (I'm looking at you, Analog Devices :-) and that was easier with the dead tree copy than the online one.
This kind of information is almost never in standard documentation.
but you scroll down, and there's a different version that's exactly what you need! except it's for an older version of the library...
but there's a comment on that answer, from two years later, with a quick note on "if you're at version 7+, just do Y instead of X."
Absolutely wonderful.
[citation needed]
These kinds of comments just make those who agree be sure to upvote, they're part of this perceived in-crowd after all, and most of the time (here too) it's fairly obviously true so a lot of people will upvote. Of course a newb will copy more code than a veteran. They also have very different functions in organisations on average. It's neither an opinion nor unpopular.
Also, I think it is pretty controversial for one to claim that some people don’t really use Stack Overflow
Of course not, but at the same time there are not that many 15-year-old gurus. It's not really the same thing, but on average people will gain more experience as they do a job for longer, and to do a job longer you need to age. It's not causal, but definitely correlated.
I generally like deeper debug sessions, preferably without too much pressure. Getting deep understanding for a problem and figuring out a solution were the most valuable learning experiences in my career. The satisfaction you get from finding a solution to a hard problem, makes them more memorable. Even if the lessons learned afterward are not spectacular, then at least you got a chance to sharpen the tools in your belt to pin point problems as they occur!
I'd describe it as learning the concept/tactic/technique from the SO answer, and if me then implementing that concept/tactic/technique in my own code just so happens to look the same as the provided example, that's fine.
Frequently it doesn't, either!
I sometimes type what is shown on SO, but not copy/paste, this just sits better with me, I get a deeper appreciatio of what it's doing even if I've read the code and understood it well, and it lets me use names that fit with the program and context of what I'm doing.
Often, I use the example on SO not as the solution, but as inspiration for one, and so I type only a modified subset of it, and at that point, it's just a lot easier to type it yourself than to copy/paste/modify it anyway.
A quick Google search brought me to a question on Stack Overflow from someone looking for the exact same thing: a good implementation of POPCNT that works for a single byte[1]. I checked out the answers, found the one that looked the best, pasted it into LINQPad to test all the combinations, and then pasted it into our code with a comment that had the Stack Overflow answer's permalink. I don't see anything wrong with copy-pasting from SO that way. It's quite handy.
[1]: Yes, if I'm looking for maximum performance, working with just a byte at a time is not great. But for the data I'm working with, you need to know the population of a byte to find the next byte that needs to be counted.
Does anyone ever intentionally NOT copy and paste, even from their own code?
I usually copy/paste, but sometimes I'm inclined to type it out again because it's just... It's just really satisfying.
It's like a ballet move or a really graceful hockey play. I find the act of physically typing out some code to be graceful and elegant and just so darn satisfying.
I'd love to know how many people make use of my answers, and while there are per-page view counts, of course a view doesn't mean I really helped someone. Number of copies during these two weeks would have been very nice to get as a statistic!
I remember something about that when I tried once and haven't bothered logging back in since as I didn't have the clout to do anything of value
E: I am sorry, you mentioned that but I dived into a reply so fast I missed it. Aye the karma thing they have there really discourages (or at least it did for me) participation. I'm working on the thing that brought me to SO in the first place I'm not spending time building up karma on a dying website to upvote haha.
https://marketplace.visualstudio.com/items?itemName=Alexey-S...
I think the rot started when they brought I the careers section. People more interested in gaming it to get a job then help each other out.
Sometimes its a melancholy thing - looking for a latest-version issue and some 12-versions-back question shows up from 2002. Still unanswered and I think of that poor soul still hoping for some direction after all these years!
so I go to my search engine for answers, not stack overflow directly.
Maybe they meant to go -ask- questions? Which...I rarely ever do, despite being in this game for over a decade. The few times no one has asked the question I have, it usually has to do with a library or missing functionality, and that tends to get resolved (at least with an answer of "yeah, that isn't supported") via an email.
The results are more consistent.
Now Github Issues on the other hand...
2. docs on package X. If I'm reasonably certain a problem is with a specific package, I'll search for a forum or issue tracker (often GitHub) for that package.
3. language-specific community. there are some lang-spec sites/forums that help with the nitty-gritty sometimes that SO and similar sites don't always get (or, more often, SO is out of date but still marked 'best').
That SO often tends to be where you end up doesn't, imo, mean you should always start there. If the same SO links are at the top of many search engines, that's probably a very good indicator, but you almost always need to broaden out when researching.
As, I can't recall the last time I found anything helpful on that platform, that any of my questions were actually answered and certainly not that I copied & pasted any code. I am not claiming that it never happened. It is just so rare that I wouldn't answer your interview question that way. To me that platform is an internet points farm combined with Groundhog Day of basic questions. I might be an extreme outlier of our craft. Just keep in mind that we exist and that not everybody answering the question "incorrectly" is a liar or an idiot. In fact, I would say that only those candidates who answer differently are truly interesting.
It may be the type of problems, but I can't even remember the last time that DDG took me to SO and it was actually the answer that I was looking for.
I think I've found more answers searching for open issues in GH than anything else.
It's been a long time since I've needed to use SO for something in my day job. I mostly end up on the github/microsoft issues sites scrolling down to see whether the compiler/library bug I just reproduced has been fixed yet or at least has a workaround...
I think a better question would be "How do you go about finding a solution to a roadblock you've encountered while writing code?", that will test for people who go straight to colleagues for each little issue instead of spending 10 minutes looking up a solution themselves. It also gives you an idea of their problem solving process.
Ha. Before reading the article I thought to myself "I probably copy about 1/4th of the time..." Usually just syntax I can't keep straight.
Nice! I thought it was a cute idea and I like little useless hardware.
those are fine, but use a tab not a space
CTRL shift L or I'm in hell
but please, don't merge my rebase
A: Very rarely. And when I do, it really depends on the language.
If you find a solution for Clojure, chances are it's pretty high quality. The fact that the language has been essentially stable for 10 years helps. The language culture around minimizing complexity and a strong preference for pure functions also doesn't hurt.
For other more "churny" & mutable languages you gotta be careful. It could be a good solution, or it could be old, unwieldy or excessively complex.
When the data did not show up on the dashboard he just put the blame on the data team.
# https://stackoverflow.com/a/246128
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
is aI assume what's going on with the subset of high rep people that do a lot of copying is they're doing searches for duplicate posts.
It's still super handy when updating something to a major version and figuring out what broke.
Now it is almost impossible to ask a valid question without it getting flagged for some reason. Questions are closed as duplicate, when they clearly aren't. If you follow the "new" feed, you can see valid questions getting closed before your eyes. Now I just stumble on it from google searches - and most of the time the answers are of poor quality, or to do with an outdated language or product feature.
It is sad, because it was an awesome Q&A site.
Didn't realize I need to browse Stack Overflow in incognito mode...
Crucial corollary: "... that you don't understand".
Blindly copy/pasting what you don't understand is the problem. If it's too complex to analyze, it doesn't belong in Stack Overflow.
That being said, I can't stand their all-or-nothing moderating. Let low-rated messages exist, but be hidden by default, similar to Slashdot and Reddit.
(p.s. SO Blog is really cool - they always post many good and informative articles there).
I don't see the big deal, at all. This is absolutely nothing compared to what big advertising & social media do. Taking a count of people who hit ctr+c? Who cares, I can't see any possible scenario of how that data could be used in a bad way unless you think SO is going to email employers with a time spent & ctrl+c count or something?
1) The post says "unfortunately" they cannot tie logged-out users to their logged-in account. In no moral way is this a reasonable perspective to me. It is extremely fortunate that SO does not build the tech to track you as a logged-in user when you are logged out. That's a bad precedent to set. Sure, some sites do that, but I think they shouldn't.
Other examples of the tone in the article abound. It's troubling for sure.
2) It is up to the web devs themselves to decide what goes in your clipboard. Many users don't know this. Sites that exploit the gap between user expectation of privacy while copy+paste as well as tracking do not match with reality. Stack Overflow is merely one of many players here, but they way they exploit this gap is mildly upsetting.
Something needs to be done, either technically or communication to users, about copy+paste reality.
Browsers fire a copy event when you copy, just like a click event fires when you press on a button. We just added analytics to it like we would any other feature on the site.
We didn't track the content of your copy (browsers don't let you see the text content) but we did track the following:
Meta data about the post and it's parent post like the id, owner, score, tags, if it was a question/answer, if it was accepted
If your copy was from a code block or from text content
The Referer header
Standard analytics properties like the date/time, approximated location, account metadata
Here's our privacy policy on analytics: "Analytics information Stack Overflow uses data analytics to ensure site functionality and to optimize our Product and Service offerings to you. We use web browser and mobile analytics to allow us to understand Network and Apps functionality. In doing so, we record information including, for example how often you visit the Network, how often you contribute content, Network and Apps performance data, errors and debugging information, and the type of activity you engage in while on the Network or in your use of our Products and Services. We may on occasion share this information with third parties for research or product and services optimization."
This is a bit misleading.
More accurate would be: Stack Overflow is able to configure our web pages to track certain of your activities on the page, including Copy and Click. We do that.
[1] https://html.spec.whatwg.org/multipage/webappapis.html#handl...
[2] https://html.spec.whatwg.org/multipage/webappapis.html#handl...
My point is: "We can make this thing happen, and we do so and record the results" is more accurate than "this interesting thing just happens, and we observe" which is the tone of the original.
Most sites do not configure their pages to track copy events. SO does the unusual thing. They should be honest about that.
I find it useful to educate other engineers on best practices. There are good posts on MVC, SOLID, TL;DRs of popular books like working effectively with legacy code etc.
I find it useful to see how different people have approached the same problem. I'll generally look at multiple questions and answers before deciding on my own approach (not necessarily the ones I saw on SO).