Aug 23, 2019 newsletter

Stack Overflow introduces CROKAGE, also known as the Crowd Knowledge Answer Generator, to experiment with search

Stack Overflow introduced a new experimental tool, developed by a group of computer science researchers at the University of Saskatchewan and University of Uberlandia, that helps users find answers to their coding questions more easily. Dubbed CROKAGE (Crowd Knowledge Answer Generator), the new tool takes the description of a programming task and provides relevant programming solutions generated from Stack Overflow that include both code snippets and explanations.

Developers often have to browse dozens of answers on Stack Overflow to synthesize a full solution to their coding problem. The process of finding answers to coding questions is only growing more complex: Stack Overflow is home to a staggering 27 million answers generated by roughly 100 million users. Despite the large amount of knowledge available, developers are impaired by a lexical gap between their searches, which are task descriptions written in English or another spoken language, and actual lines of code. CROKAGE seeks to find the fastest path from a quick search to implementable code.

CROKAGE search results are ranked by relevance and structure: answers with code snippets and code explanations are heavily favored by the search algorithm. Better natural language skills, too, achieved by including function terms from open source libraries in the search engine’s corpus, ensures questions are more clearly and thoroughly understood.

CROKAGE, however, is more than a search tool; it is a knowledge generator. CROKAGE not only understands developers’ questions better, its algorithms actually piece together a coherent and concise answer. CROKAGE collects programming functions that (potentially) implement the requested programming task and includes short explanations, discarding trivial and valueless sentences from answers on Stack Overflow. While better search capabilities remedy only half of the developer knowledge gap, better answers is the key to making knowledge on Stack Overflow more accessible and powerful.

Whereas other tools, like code suggestions, are most useful for boilerplate, repetitive coding, Stack Overflow offers a richer data set that bridges the gap between English (or another spoken language) and code. CROKAGE, however, is still in its early stages of development. The tool is limited to Java queries, with the goal of expanding language coverage in the future. And, if a query is poorly formulated, CROKAGE offers no suggestions on how to improve it. CROKAGE, however, offers a glimpse into the future where artificial intelligence can better parse and present programming knowledge.


The WordPress team plans to forcibly update old websites, totaling roughly 3% of the entire internet

The WordPress team will soon begin forcibly updating outdated WordPress installations. Through a tiered forced auto-update process, WordPress will update batches of sites one version at a time, carefully incrementing the version number for every site until each is up to date (WordPress v4.7). If a site breaks during the update process, as a result of incompatible plugins or themes, WordPress will rollback the update and send an email to the site administrator outlining the consequences of not updating, which the administrator will then need to do manually.

WordPress installations account for an astounding 37% of all internet websites. Sites running versions 3.7 to 4.7 account for 11.7% of all WordPress sites, or about 3% of all internet sites. Auto-updating capabilities were added in WordPress v3.7; any website using a lower version number will remain at its current version, meaning that roughly 1% of WordPress installations will likely be forever irreparable.

WordPress originally planned to update all sites to v4.7 in a single monster update process, without incrementing through intermediate versions, but developers feared a sizeable chunk of the internet would be taken down in one fell swoop. Through the updated plan, if WordPress notices that many sites break during its incremental process, the plan can be halted altogether without destroying the entire ecosystem.

Over the past few years, WordPress developers have been backporting security patches to earlier versions, but as the platform progresses and PHP evolves, backporting becomes increasingly tedious and cumbersome. To make matters worse, older versions of WordPress are notorious attack vectors for hackers, so leaving them unpatched is not an option.

Forcibly updating WordPress is important for accelerating development and resetting its controversial security reputation. Today, WordPress is the engine of the internet that continues to chug along, growing steadily from 13% of all websites in 2011 to 32% in 2018, even as the internet itself has rapidly expanded. Developers often praise its vibrant ecosystem and usability. Even so, WordPress is under siege from paradigm shifts in software development: PHP is falling out of favor and static web pages using decoupled architectures are on the rise. Forced updates are the first steps in a great modernization effort, but WordPress faces an uphill battle in maintaining its dominance.


Most government, news and information, and e-commerce websites are inaccessible to visually impaired users, causing them to lose billions of dollars

A recent report reveals the numerous challenges faced by visually-impaired web users and the lack of accessibility-focused web development. The study, organized by accessibility software company Deque Systems and conducted by Nucleus Research, found that 70 percent of e-commerce, news and information and government categories had significant accessibility issues. Users were often forced to take their business to rival sites.

Among internet retailers, roughly two-thirds of the top ten online retailers had accessibility issues, often unoptimized for the visually impaired. Denying full access to consumers who are blind is leaving as much as $6.9 billion in e-commerce revenue each year to a small handful of accessible alternatives (in North America). Some of the largest retailers — Amazon, Best Buy, and Target — were leaders in fixing accessibility issues in the e-commerce space.

Accessibility is a hot-button issue for many in the developer community. During the development process, accessibility is often an afterthought that requires developers to redo segments of the codebase. Remediation can be expensive, time-consuming, and resource-intensive. For small teams and companies in particular, accessibility is a task that is repeatedly deferred.

To enable a greater push toward accessibility-friendly development, developers have two options. First, web developers can be more proactive during the development process to include necessary accessibility features into websites before being generally available. Designing and building with accessibility in mind ensures that a website is architecturally flexible to accommodate necessary improvements. Second, as many leaders in the developer world argue, schools and bootcamps should teach accessibility concepts as a core part of their curriculums. Development should, by default, be accessible and any methods taught to developers in training should reflect that reality.


Small bytes

  • How to build good software: why bad software happens to good people [CSC]
  • Developers mentoring other developers: practices that work well [PRAGMATIC ENGINEER]
  • The 10x engineer: a fresh take on being a team player [SHAHAR TALMI]
  • What every developer needs to know about NoOps development [SITEPOINT]
  • What is a calculation? Lessons from functional programming [LISTCAST]

Tools

  • GitraHub will find mutual interests between developers based on their GitHub profiles [GITRAHUB]
  • React NodeGUI helps you build performant, native and cross-platform desktop applications with native React + powerful CSS-like styling [GITHUB]
  • Tailwind.run() is an online Tailwind playground [TAILWIND]
  • HackMan is a simple tool for generating boilerplate code directly via the command line [HACKMAN]
  • Tech Interview Handbook is a repository of carefully curated content to help you ace your next technical interview [GITHUB]
  • Chart.xkcd is a chart library that plots "sketchy", "cartoony" or "hand-drawn" styled charts [TIMQIAN]
  • Pagemap is a mini map for web pages [PAGEMAP]
Never miss the big news

Every week, our team will send you three of the most important stories for developers, including our analysis of why they matter. Software development changes fast, but src is your secret weapon to stay up to date in the developer world.

Featured articles
AI Ethics: How Diverging Global Strategies Open a Gaping Regulatory Void

Today global initiatives on AI are a series of regulatory and ethical gambles—a dangerous, potentially existential game.


Can Master Chief win the day for Microsoft Azure?

Why the Xbox will be Azure’s unlikely hero.


Churn Baby, Churn

Understanding churn rates can help developers be more productive and write quality code

Made with by Software. Read more about our mission.