- Research Article
- 10.5281/zenodo.4683732
Broken external links on Stack Overflow
- Oct 10, 2020
- arXiv (Cornell University)
- Jiakun Liu + 6 more +6
This is the dataset, coding guides, and scripts for our paper: Broken external links on Stack Overflow.
While many tutorials, code examples, and documentation about Android APIs exist, developers still face various problems with the implementation of Android Apps. Many of these issues are discussed on QaA-sites, such as Stack Overflow. In this paper we present a manual categorization of 450 Android related posts of Stack Overflow concerning their question and problem types. The idea is to find dependencies between certain problems and question types to get better insights into issues of Android App development. The categorization is developed using card sorting with three experienced Android App developers. An initial approach to automate the classification of Stack Overflow posts using Lucene is also presented. The study highlights that the most common question types are 'How to?' and 'What is the problem?'. The problems that are discussed most often are related to 'User Interface' and 'Core Elements'. In particular, the problem category 'Layout' is often related to 'What is the problem?' and 'Frameworks' issues often come with 'Is it possible?' questions.
Broken external links on Stack Overflow
This is the dataset, coding guides, and scripts for our paper: Broken external links on Stack Overflow.
How Fast and Effectively Can Code Change History Enrich Stack Overflow?
Stack Overflow (SO) is one of the most popular Q&A sites for not only providing valuable information to software developers but also encouraging the sharing of knowledge and problem solving. Unfortunately, the information provided by SO is not always sufficient for developers. In this paper, we empirically show how fast and effectively historical code changes can substitute for missing or unanswered SO articles. Developers in all around the world encounter many problems daily and their trial-and-error experiences to resolve the problems are accumulated in the code change history. The extracted source code differences are expected to provide valuable information to developers before the questions and answers are posted on SO. In our study, we focus on the usage of APIs as the topic of SO articles, because many developers are interested in API programming and suffer from the problems related to API usage. We extracted 4,780 code differences from 713 repositories of Android applications (F-Droid). As a result, we found that 64% of SO articles on Android APIs are related to code differences, whereas 44% of code differences are related to SO articles. Not a few code differences appear before the corresponding SO articles are actually posted. The median of time lag between the first appearance of code changes and the first actual SO postings is 22 months.
Read moreA First Look at Dark Mode in Real-world Android Apps
Android apps often have a “dark mode” option used in low-light situations, for those who find the conventional color palette problematic, or because of personal preferences. Typically developers add a dark mode option for their apps with different backgrounds, text, and sometimes iconic forms. We wanted to understand the actual provision of this dark mode in real-world Android apps through an empirical study of posts from Stack Overflow and real-world Android app analysis. Using these approaches, we identified the aspects of dark mode that developers implemented as well as the key difficulties they experienced in implementing it. We performed a quantitative analysis using open-coding of more than 300 discussion threads to create a taxonomy regarding the aspects discussed by developers with respect to dark mode in Android. Our quantitative analysis of over 6,000 Android apps highlights which dark mode features are typically provided in Android apps and which aspects developers care about during dark mode design. We also examined four app development support tools to see how well they aid Android app development for dark mode. From our analysis, we distilled some key lessons to guide further research and actions in aiding developers with supporting users who require such assistive features. For example, developers should be aware of the potential risks in using unsuitable dark mode design schema and researchers should take dark mode features into consideration when developing app development support tools.
Read moreWhat Questions do People Ask on a Human Papillomavirus Website? A Comparative Analysis of Public and Private Questions
Objective: In 2004, we launched the question and answer (Q&A) section on a human papillomavirus (HPV) website (www.hpvkorea.org) that provides ample and regularly updated information about HPV. The purpose of this study is to collect data pertaining to questions posed on this website about HPV and its related diseases and analyze the type of questions and frequency before and after introduction of HPV vaccine in Korea. Using these results, we intend to determine the clinical and practical implications for doctors treating HPV and for HPV website providers.Method: Data were collected from March 2004 to July 2011. This study analyzed all the questions that were asked on the website during this period. The questions were categorized into 2 groups, according to whether they were asked publicly or privately. The 10 categories for classification were determined on the basis of the contents of the questions by 4 researchers with medical degrees (Ph.D.) related to HPV research. The frequency of the questions was separately determined for the public and private question formats. Also, we compared the type of questions and frequency before and after introduction of HPV vaccine in Korea and evaluated the changes in the 2 groups over the 2 periods studied.Results: Of the 3,062 subjects who visited the HPV website, 2,330 subjects asked public questions and 732 asked private questions. The most frequent question was “I have been infected with HPV, and I want to know about the treatment options for HPV infection and cervical dysplasia” (n = 1156, 37.8%), and the second most common question was “What are the transmission routes of HPV?” (n = 684, 22.3%). The third most common question was “How long does it take for HPV infection to spontaneously remit?” (n = 481, 15.7%).Of the 2,330 public questions, the most common question types pertained to the treatment of HPV and cervical dysplasia, HPV transmission, HPV remission, and risk of cervical cancer (in that order). Of the 732 private questions, the most frequent question types pertained to the HPV transmission, treatment of HPV and cervical dysplasia, genital warts, and HPV & pregnancy (in that order). The type and frequency of public and private questions showed statistical differences between the 2 groups (p < 0.001).Conclusion: Our results show that when people consult an internet site about HPV, they actually want to seek about “treatment of HPV and cervical dysplasia”, “HPV transmission”, “HPV remission”, “genital warts”, and “risk of cervical cancer” (in this order). Also, our results showed that “genital warts” and “HPV & pregnancy” may have been considered embarrassing topics. Thus, these findings can be used to make informed recommendations for future clinical or internet-based communications with patients and the general public.
Read moreClassification of Android APIs Posts : An analysis of developer’s discussions on Stack Overflow
Discussions concerning mobile applications development are growing significantly in the recent years in questions and answers websites such as Stack Overflow (SO). Developers commonly resort to Stack Overflow to solve their technical issues and seek professional help. In this paper, we aim to analyze developers’ discussions about Android APIs in order for us to understand how these questions evolve over the years and what answers could possibly contain (code, URL). Therefore, we suggest a novel classification technique to identify the Android APIs that are being most discussed. The proposed technique is based on the official online documentation of Android APIs and the Random Forest Classifier algorithm (RFC). Our findings show that the most discussed Android APIs by developers on SO is “google.android.collect”.
Read moreWhat are the Clinical Questions of Practicing Veterinarians?
Clinical questions are central to learning among veterinarians and drive informal learning during clinical practice. We set out to classify the clinical questions of practicing veterinarians using a taxonomy previously validated in human medicine. This prospective observational study used a convenience sample of 12 veterinarians in private, small-animal practices. We used three methods to gather clinical questions from the veterinarians: direct observation (asking veterinarians after each encounter), self-report via e-mail, and self-report via data-collection pocket cards. We then classified these questions using a validated taxonomy of question types, as well as by clinical category. A total of 157 clinical questions were collected; 99 were about dogs, 33 were about cats, and 25 were about multiple species or did not specify a species. Nearly half of the questions were rated as high priority, and only 11.5% as low priority. Over half of the questions (53%) were about treatment and 20% were about diagnosis. The two most common question types were "Is drug X indicated in situation Y or for condition Y?" and "How should I treat finding/condition Y (given situation Z)?" Overall, 5 of 57 question-type categories accounted for over half of the questions. The most common clinical categories were pharmacology, endocrine, musculoskeletal, and general surgery. This is the first study to systematically identify and classify the clinical questions of veterinarians. A better understanding of these questions can be used to inform the development of continuing-education (CE) activities that are directly responsive to the information needs of participants.
Read moreExperience Report: Detecting Poor-Responsive UI in Android Applications
Good user interface (UI) design is key to successful mobile apps. UI latency, which can be considered as the time between the commencement of a UI operation and its intended UI update, is a critical consideration for app developers. Current literature still lacks a comprehensive study on how much UI latency a user can tolerate or how to identify UI design defects that cause intolerably long UI latency. As a result, bad UI apps are still common in app markets, leading to extensive user complaints. This paper examines user expectations of UI latency, anddevelops a tool to pinpoint intolerable UI latency in Android apps. To this end, we design an app to conduct a user survey of app UI latency. Through the survey, we find the tendency between user patience and UI latency. Therefore a timely screen update (e.g., loading animations) is critical to heavy-weighted UI operations (i.e. those that incur a long execution time before the final UI update is available). We then design a tool that, by monitoring the UI inputs and updates, can detect apps that do not follow this criterion. The survey and the tool are open-source released on-line. We also apply the tool to many real-world apps. The results demonstrate the effectiveness of the tool in combating app UI design defects.
Read moreEmotions in Computer Vision Service Q&A
Software developers are increasingly using cloud-based services that provide machine learning capabilities to implement `intelligent' features. Studies show that incorporating machine learning into an application increases technical debt, creates data dependencies, and introduces uncertainty due to their non-deterministic behaviour. We know very little about the emotional state of software developers who have to deal with such issues; and the impacts on productivity. This paper presents a preliminary effort to better understand the emotions of developers when experiencing issues with these services with the wider goal of discovering potential service improvements. We conducted a landscape analysis of emotions found in 1,425 Stack Overflow questions about a specific and mature subset of these cloud-based services, namely those that provide computer vision techniques. To speed up the emotion identification process, we trialled an automatic approach using a pre-trained emotion classifier that was specifically trained on Stack Overflow content, EmoTxt, and manually verified its classification results. We found that the identified emotions vary for different types of questions, and a discrepancy exists between automatic and manual emotion analysis due to subjectivity.
Read moreTwo-factor Protection Scheme in Securing the Source Code of Android Applications
While Android has become most popular OS in mobile phone market, more and more Android app developers are suffering from intellectual property infringement because it’s easy to extract the assets stored in the Android apps and to decompile Android apps to Java source code. This issue also poses threats to users’ privacy. In this article we reviewed the existing protection approaches for the protection of the source code and assets in Android apps, demonstrated the reason why Java Native Interface (JNI) approach can help improve the protection provided by existing approaches, developed 4 Android demo apps with 2 experiments conducted to evaluate the effectiveness of protection provided by the combination of Encryption and JNI approaches.
Read moreBenchPress: Analyzing Android App Vulnerability Benchmark Suites
In recent years, various benchmark suites have been developed to evaluate the efficacy of Android security analysis tools. The choice of such benchmark suites used in tool evaluations is often based on the availability and popularity of suites and not on their characteristics and relevance. One of the reasons for such choices is the lack of information about the characteristics and relevance of benchmarks suites. In this context, we empirically evaluated four Android specific benchmark suites: DroidBench, Ghera, IccBench, and UBCBench. For each benchmark suite, we identified the APIs used by the suite that were discussed on Stack Overflow in the context of Android app development and measured the usage of these APIs in a sample of 227K real world apps (coverage). We also compared each pair of benchmark suites to identify the differences between them in terms of API usage. Finally, we identified security-related APIs used in real-world apps but not in any of the above benchmark suites to assess the opportunities to extend benchmark suites (gaps). The findings in this paper can help 1) Android security analysis tool developers choose benchmark suites that are best suited to evaluate their tools (informed by coverage and pairwise comparison) and 2) Android app vulnerability benchmark creators develop and extend benchmark suites (informed by gaps).
Read moreOut of the Question!...How We Are Using Our Students' Virtual Reference Questions to Add a Personal Touch to a Virtual World
Objective - To investigate the types of questions students ask and the language they use in virtual reference. It is hoped that this examination will provide understanding of students’ needs and thus improve/enhance library services. Methods - Over 600 virtual reference transcripts were reviewed, analysed and categorised. This work was focused on three levels of analysis: broad categories based on the general type of question being asked, subcategories based on the specific question and the language that students used to ask their questions. Results - Students are primarily using the library’s virtual reference service for higher-level research assistance rather than using the tool to obtain quick answers to simple questions. The two most common types of questions involved staff providing detailed information or instruction on a topic. More specifically, the most frequently occurring type of question was related to finding journal articles on a given topic. Our analysis of the words students use to ask their questions confirmed that students and librarians often do not speak the same language. Conclusion - The results of our analysis of students’ needs and language can help us understand our users. This study demonstrated that our library can enhance services in five areas: online services, collections, relationships, staff skills, and the library as place.
Read moreThe Effect of Google Search on Software Security: Unobtrusive Security Interventions via Content Re-ranking
Google Search is where most developers start their Web journey looking for code examples to reuse. It is highly likely that code that is linked to the top results will be among those candidates that find their way into production software. However, as a large amount of secure and insecure code has been identified on the Web, the question arises how the providing webpages are ranked by Google and whether the ranking has an effect on software security. We investigate how secure and insecure cryptographic code examples from Stack Overflow are ranked by Google Search. Our results show that insecure code ends up in the top results and is clicked on more often. There is at least a 22.8% chance that one out of the top three Google Search results leads to insecure code. We introduce security-based re-ranking, where the rank of Google Search is updated based on the security and relevance of the provided source code in the results. We tested our re-ranking approach and compared it to Google's original ranking in an online developer study. Participants that used our modified search engine to look for help online submitted more secure and functional results, with statistical significance. In contrast to prior work on helping developers to write secure code, security-based re-ranking completely eradicates the requirement for any action performed by developers. Our intervention remains completely invisible, and therefore the probability of adoption is greatly increased. We believe security-based re-ranking allows Internet-wide improvement of code security and prevents the far-reaching spread of insecure code found on the Web.
Read moreMining Stack Overflow for discovering error patterns in SQL queries
Constructing complex queries in SQL sometimes necessitates the use of language constructs and the invocation of internal functions which inexperienced developers find hard to comprehend or which are unknown to them. In the worst case, bad usage of these constructs might lead to errors, to ineffective queries, or hamper developers in their tasks. This paper presents a mining technique for Stack Overflow to identify error-prone patterns in SQL queries. Identifying such patterns can help developers to avoid the use of error-prone constructs, or if they have to use such constructs, the Stack Overflow posts can help them to properly utilize the language. Hence, our purpose is to provide the initial steps towards a recommendation system that supports developers in constructing SQL queries. Our current implementation supports the MySQL dialect, and Stack Overflow has over 300,000 questions tagged with the MySQL flag in its database. It provides a huge knowledge base where developers can ask questions about real problems. Our initial results indicate that our technique is indeed able to identify patterns among them.
Read moreOlelo: a web application for intuitive exploration of biomedical literature
Researchers usually query the large biomedical literature in PubMed via keywords, logical operators and filters, none of which is very intuitive. Question answering systems are an alternative to keyword searches. They allow questions in natural language as input and results reflect the given type of question, such as short answers and summaries. Few of those systems are available online but they experience drawbacks in terms of long response times and they support a limited amount of question and result types. Additionally, user interfaces are usually restricted to only displaying the retrieved information. For our Olelo web application, we combined biomedical literature and terminologies in a fast in-memory database to enable real-time responses to researchers’ queries. Further, we extended the built-in natural language processing features of the database with question answering and summarization procedures. Combined with a new explorative approach of document filtering and a clean user interface, Olelo enables a fast and intelligent search through the ever-growing biomedical literature. Olelo is available at http://www.hpi.de/plattner/olelo.
Read morePost2Vec: Learning Distributed Representations of Stack Overflow Posts
Past studies have proposed solutions that analyze Stack Overflow content to help users find desired information or aid various downstream software engineering tasks. A common step performed by those solutions is to extract suitable representations of posts; typically, in the form of meaningful vectors. These vectors are then used for different tasks, for example, tag recommendation, relatedness prediction, post classification, and API recommendation. Intuitively, the quality of the vector representations of posts determines the effectiveness of the solutions in performing the respective tasks. In this work, to aid existing studies that analyze Stack Overflow posts, we propose a specialized deep learning architecture Post2Vec which extracts distributed representations of Stack Overflow posts. Post2Vec is aware of different types of content present in Stack Overflow posts, i.e., title, description, and code snippets, and integrates them seamlessly to learn post representations. Tags provided by Stack Overflow users that serve as a common vocabulary that captures the semantics of posts are used to guide Post2Vec in its task. To evaluate the quality of Post2Vec's deep learning architecture, we first investigate its end-to-end effectiveness in tag recommendation task. The results are compared to those of state-of-the-art tag recommendation approaches that also employ deep neural networks. We observe that Post2Vec achieves 15-25 percent improvement in terms of F1-score@5 at a lower computational cost. Moreover, to evaluate the value of representations learned by Post2Vec, we use them for three other tasks, i.e., relatedness prediction, post classification, and API recommendation. We demonstrate that the representations can be used to boost the effectiveness of state-of-the-art solutions for the three tasks by substantial margins (by 10, 7, and 10 percent in terms of F1-score, F1-score, and correctness, respectively). We release our replication package at <uri xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">https://github.com/maxxbw/Post2Vec</uri> .
Read more